2e20b4349420a78734a410d7bca760b152241dd2
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-11-17  Tom de Vries  <tom@codesourcery.com>
2
3         * tree-ssa-loop.c (pass_tree_loop_init::execute): Improve comments.
4
5 2015-11-17  Tom de Vries  <tom@codesourcery.com>
6
7         * tree-scalar-evolution.c (scev_const_prop): Dump details if replacing
8         uses of ssa_name with constant.
9
10 2015-11-17  Tom de Vries  <tom@codesourcery.com>
11
12         * tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if
13         something changed.
14
15 2015-11-17  Tom de Vries  <tom@codesourcery.com>
16
17         * cfgloop.h (struct loop): Add in_oacc_kernels_region field.
18         * omp-low.c (mark_loops_in_oacc_kernels_region): New function.
19         (expand_omp_target): Call mark_loops_in_oacc_kernels_region.
20
21 2015-11-17  Bernd Schmidt  <bschmidt@redhat.com>
22
23         * regrename.c (regrename_find_superclass): New function, code moved
24         from ...
25         (rename_chains): ... here.  Call it.
26         * regrename.h (regrename_find_superclass): Declare.
27
28         * regrename.c (record_out_operands): Terminate earlyclobbered
29         operands here.
30
31         PR target/66785
32         * regrename.c (record_operand_use): Keep track of failed operands
33         and stop appending if we see any.
34         * regrename.h (struct operand_rr_info): Add a failed field and shrink
35         n_chains to short.
36
37 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
38
39         PR 48568
40         * doc/extend.texi (Common Function Attributes) [visibility]:
41         Add cross-references to matching variable and type attributes.
42         (Common Variable Attributes) [visibility]: Add missing entry.
43
44 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
45
46         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove
47         entries that map directly to optabs.
48
49 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
50
51         * config/i386/i386.c (ix86_builtin_vectorized_function): Remove
52         entries that map directly to optabs.
53
54 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
55
56         * internal-fn.h (direct_internal_fn_info): Add vectorizable flag.
57         * internal-fn.c (direct_internal_fn_array): Update accordingly.
58         * tree-vectorizer.h (vectorizable_function): Delete.
59         * tree-vect-stmts.c: Include internal-fn.h.
60         (vectorizable_internal_function): New function.
61         (vectorizable_function): Inline into...
62         (vectorizable_call): ...here.  Explicitly reject calls that read
63         from or write to memory.  Try using an internal function before
64         falling back on the old vectorizable_function behavior.
65
66 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
67
68         * target.def (builtin_vectorized_function): Take a combined_fn (in
69         the form of an unsigned int) rather than a function decl.
70         (builtin_md_vectorized_function): New.
71         * targhooks.h (default_builtin_vectorized_function): Replace the
72         fndecl argument with an unsigned int.
73         (default_builtin_md_vectorized_function): Declare.
74         * targhooks.c (default_builtin_vectorized_function): Replace the
75         fndecl argument with an unsigned int.
76         (default_builtin_md_vectorized_function): New function.
77         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION):
78         New hook.
79         * doc/tm.texi: Regenerate.
80         * tree-vect-stmts.c (vectorizable_function): Update call to
81         builtin_vectorized_function, also passing internal functions.
82         Call builtin_md_vectorized_function for target-specific builtins.
83         * config/aarch64/aarch64-protos.h
84         (aarch64_builtin_vectorized_function): Replace fndecl argument
85         with an unsigned int.
86         * config/aarch64/aarch64-builtins.c: Include case-cfn-macros.h.
87         (aarch64_builtin_vectorized_function): Update after above changes.
88         Use CASE_CFN_*.
89         * config/arm/arm-protos.h (arm_builtin_vectorized_function): Replace
90         fndecl argument with an unsigned int.
91         * config/arm/arm-builtins.c: Include case-cfn-macros.h
92         (arm_builtin_vectorized_function): Update after above changes.
93         Use CASE_CFN_*.
94         * config/i386/i386.c: Include case-cfn-macros.h
95         (ix86_veclib_handler): Take a combined_fn rather than a
96         built_in_function.
97         (ix86_veclibabi_svml, ix86_veclibabi_acml): Likewise.  Use
98         mathfn_built_in rather than calling builtin_decl_implicit directly.
99         (ix86_builtin_vectorized_function) Update after above changes.
100         Use CASE_CFN_*.
101         * config/rs6000/rs6000.c: Include case-cfn-macros.h
102         (rs6000_builtin_vectorized_libmass): Replace fndecl argument
103         with a combined_fn.  Use CASE_CFN_*.  Use mathfn_built_in rather
104         than calling builtin_decl_implicit directly.
105         (rs6000_builtin_vectorized_function): Update after above changes.
106         Use CASE_CFN_*.  Move BUILT_IN_MD to...
107         (rs6000_builtin_md_vectorized_function): ...this new function.
108         (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION): Define.
109
110 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
111
112         * tree-vect-patterns.c: Include internal-fn.h.
113         (vect_recog_pow_pattern): Use IFN_SQRT instead of BUILT_IN_SQRT*.
114
115 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
116
117         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P)
118         (BUILTIN_CBRT_P, BUILTIN_ROOT_P): Delete.
119
120 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
121
122         * builtins.c (expand_errno_check, expand_builtin_mathfn)
123         (expand_builtin_mathfn_2): Delete.
124         (expand_builtin): Remove handling of functions with
125         internal function equivalents.
126         * internal-fn.def (SET_EDOM): New internal function.
127         * internal-fn.h (set_edom_supported_p): Declare.
128         * internal-fn.c (expand_SET_EDOM): New function.
129         (set_edom_supported_p): Likewise.
130         * tree-call-cdce.c: Include builtins.h and internal-fn.h.
131         Rewrite comment at head of file.
132         (is_call_dce_candidate): Rename to...
133         (can_test_argument_range): ...this.  Don't check gimple_call_lhs
134         or gimple_call_builtin_p here.
135         (edom_only_function): New function.
136         (shrink_wrap_one_built_in_call_with_conds): New function, split out
137         from...
138         (shrink_wrap_one_built_in_call): ...here.
139         (can_use_internal_fn, use_internal_fn): New functions.
140         (shrink_wrap_conditional_dead_built_in_calls): Call use_internal_fn
141         for calls that have an lhs.
142         (pass_call_cdce::gate): Remove optimize_function_for_speed_p check.
143         (pass_call_cdce::execute): Skip blocks that are optimized for size.
144         Check gimple_call_builtin_p here.  Use can_use_internal_fn for
145         calls with an lhs.
146         * opts.c (default_options_table): Enable -ftree-builtin-call-cdce
147         at -O and above.
148
149 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
150
151         * builtins.h (called_as_built_in): Declare.
152         * builtins.c (called_as_built_in): Make external.
153         * internal-fn.h (expand_internal_call): Define a variant that
154         specifies the internal function explicitly.
155         * internal-fn.c (expand_load_lanes_optab_fn)
156         (expand_store_lanes_optab_fn, expand_ANNOTATE, expand_GOMP_SIMD_LANE)
157         (expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE)
158         (expand_GOMP_SIMD_ORDERED_START, expand_GOMP_SIMD_ORDERED_END)
159         (expand_UBSAN_NULL, expand_UBSAN_BOUNDS, expand_UBSAN_VPTR)
160         (expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK, expand_TSAN_FUNC_EXIT)
161         (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB)
162         (expand_UBSAN_CHECK_MUL, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW)
163         (expand_MUL_OVERFLOW, expand_LOOP_VECTORIZED)
164         (expand_mask_load_optab_fn, expand_mask_store_optab_fn)
165         (expand_ABNORMAL_DISPATCHER, expand_BUILTIN_EXPECT, expand_VA_ARG)
166         (expand_UNIQUE, expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS)
167         (expand_GOACC_LOOP, expand_GOACC_REDUCTION, expand_direct_optab_fn)
168         (expand_unary_optab_fn, expand_binary_optab_fn): Add an internal_fn
169         argument.
170         (internal_fn_expanders): Update prototype.
171         (expand_internal_call): Define a variant that specifies the
172         internal function explicitly. Use it to implement the previous
173         interface.
174         * cfgexpand.c (expand_call_stmt): Try to expand calls to built-in
175         functions as calls to internal functions.
176
177 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
178
179         * Makefile.in (MOSTLYCLEANFILES): Add cfn-operators.pd.
180         (generated_files): Likewise.
181         (s-cfn-operators, cfn-operators.pd): New rules.
182         (s-match): Depend on cfn-operators.pd.
183         * gencfn-macros.c: Expand comment to describe -o behavior.
184         (print_define_operator_list): New function.
185         (main): Accept -o.  Call print_define_operator_list.
186         * genmatch.c (main): Add the current directory to the include path.
187         * match.pd (DEFINE_MATH_FN): Delete.  Include cfn-operators.pd
188         instead.
189
190 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
191
192         * doc/match-and-simplify.texi: Document the "null" identifier.
193         * genmatch.c (id_base::NULL_ID): New kind.
194         (null_id): New variable.
195         (get_operator): Add a parameter that says whether null identifiers
196         are allowed.
197         (contains_id): New function.
198         (lower_for): Skip substitutions that would have a null_id in
199         either the match or the result.
200         (parser::parse_for): Allow the null identifier to be used.
201         (parser::parse_operator_list): Likewise.
202         (main): Initialize null_id.
203
204 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
205
206         * match.pd: Use HYPOT and COS rather than hypot and cos.
207         Use CASE_CFN_* macros.  Guard log/exp folds with
208         SCALAR_FLOAT_TYPE_P.
209         * genmatch.c (internal_fn): New enum.
210         (fn_id::fn): Change to an unsigned int.
211         (fn_id::fn_id): Accept internal_fn too.
212         (add_builtin): Rename to...
213         (add_function): ...this and turn into a template.
214         (get_operator): Only try one variation if the original name fails.
215         Only add _EXPR if the original name was all lower case.
216         Try converting internal and built-in function names to their
217         CFN equivalents.
218         (expr::gen_transform): Use maybe_build_call_expr_loc for generic.
219         (dt_simplify::gen_1): Likewise.
220         (dt_node::gen_kids_1): Use gimple_call_combined_fn for gimple
221         and get_call_combined_fn for generic.
222         (dt_simplify::gen): Use combined_fn as the type of fn_ids.
223         (decision_tree::gen): Likewise.
224         (main): Use lower case in the strings for {VIEW_,}CONVERT[012].
225         Use add_function rather than add_builtin.  Register internal
226         functions too.
227         * generic-match-head.c: Include case-cfn-macros.h.
228         * gimple-fold.c (replace_stmt_with_simplification): Use
229         gimple_call_combined_fn to test whether we can keep an
230         existing call.
231         * gimple-match.h (code_helper): Replace built_in_function
232         with combined_fn.
233         * gimple-match-head.c: Include fold-const-call.h, internal-fn.h
234         and case-fn-macros.h.
235         (gimple_resimplify1): Use fold_const_call.
236         (gimple_resimplify2, gimple_resimplify3): Likewise.
237         (build_call_internal, build_call): New functions.
238         (maybe_push_res_to_seq): Use them.
239         (gimple_simplify): Use fold_const_call.  Set *rcode to a combined_fn
240         rather than a built-in function.
241         * tree.h (build_call_expr_internal_loc): Declare.
242         (maybe_build_call_expr_loc): Likewise.
243         * tree.c (build_call_expr_internal_loc_array): New function.
244         (maybe_build_call_expr_loc): Likewise.
245
246 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
247
248         * builtins.h (mathfn_built_in): Add a variant that takes
249         a combined_fn.
250         * builtins.c: Include case-cfn-macros.h.
251         (CASE_MATHFN): Use CASE_CFN_*.
252         (CASE_MATHFN_REENT): Use CFN_ codes.
253         (mathfn_built_in_2, mathfn_built_in_1): Replace built_in_function
254         argument with a combined_fn.
255         (mathfn_built_in): Add a variant that takes a combined_fn.
256         (expand_builtin_int_roundingfn_2): Update callers accordingly.
257         (fold_builtin_sincos, fold_builtin_classify): Likewise.
258
259 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
260
261         * tree-vect-patterns.c: Include case-cfn-macros.h.
262         (vect_recog_pow_pattern): Use combined_fn instead of built-in codes.
263
264 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
265
266         * tree-ssa-math-opts.c: Include case-cfn-macros.h.
267         (execute_cse_sincos_1): Use combined_fn instead of built-in codes.
268         (pass_cse_sincos::execute): Likewise.
269
270 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
271
272         * tree-ssa-reassoc.c: Include case-cfn-macros.h.
273         (stmt_is_power_of_op): Use combined_fn instead of built-in codes.
274         (decrement_power, acceptable_pow_call): Likewise.
275         (attempt_builtin_copysign): Likewise.
276
277 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
278
279         * tree-vrp.c: Include case-cfn-macros.h.
280         (extract_range_basic): Switch on combined_fn rather than handling
281         built-in functions and internal functions separately.
282
283 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
284
285         * fold-const.h (negate_mathfn_p): Take a combined_fn rather
286         than a built_in_function.
287         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
288         a function decl.
289         (integer_valued_real_call_p): Likewise.
290         * fold-const.c: Include case-cfn-macros.h
291         (negate_mathfn_p): Take a combined_fn rather than a built_in_function.
292         (negate_expr_p): Update accordingly.
293         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
294         a function decl.
295         (integer_valued_real_call_p): Likewise.
296         (tree_invalid_nonnegative_warnv_p): Update accordingly.
297         (integer_valued_real_p): Likewise.
298         * gimple-fold.c (gimple_call_nonnegative_warnv_p): Update call
299         to tree_call_nonnegative_warnv_p.
300         (gimple_call_integer_valued_real_p): Likewise
301         integer_valued_real_call_p.
302         * gimple-ssa-backprop.c: Include case-cfn-macros.h.
303         (backprop::process_builtin_call_use): Extend to combined_fn.
304         (strip_sign_op_1): Likewise.
305         (backprop::process_use): Don't check for built-in calls here.
306         (backprop::execute): Likewise.
307         (backprop::optimize_builtin_call): Update call to negate_mathfn_p.
308
309 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
310
311         * fold-const-call.h (fold_const_call): Replace built_in_function
312         arguments with combined_fn arguments.
313         * fold-const-call.c: Include case-cfn-macros.h.
314         (fold_const_call_ss, fold_const_call_cs, fold_const_call_sc)
315         (fold_const_call_cc, fold_const_call_sss, fold_const_call_ccc)
316         (fold_const_call_ssss, fold_const_call_1, fold_const_call): Replace
317         built_in_function arguments with combined_fn arguments.
318         * builtins.c (fold_builtin_sincos, fold_builtin_1, fold_builtin_2)
319         (fold_builtin_3): Update calls to fold_const_call.
320
321 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
322
323         * Makefile.in (HASH_TABLE_H): Add GGC_H.
324         (MOSTLYCLEANFILES, generated_files): Add case-fn-macros.h.
325         (s-case-cfn-macros, case-cfn-macros.h, build/gencfn-macros.o)
326         (build/gencfn-macros$(build_exeext): New rules.
327         (genprogerr): Add cfn-macros.
328         * hash-set.h (hash_set): Use the traits value_type as the key.
329         * gencfn-macros.c: New file.
330
331 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
332
333         * internal-fn.def (DEF_INTERNAL_INT_FN): New macro.
334         (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): New functions.
335         * builtins.c (associated_internal_fn): Handle them.
336
337 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
338
339         * builtins.h (associated_internal_fn): Declare.
340         (replacement_internal_fn): Likewise.
341         * builtins.c: Include internal-fn.h
342         (associated_internal_fn, replacement_internal_fn): New functions.
343         * internal-fn.def (DEF_INTERNAL_FLT_FN): New macro.
344         (ACOS, ASIN, ATAN, COS, EXP, EXP10, EXP2, EXPM1, LOG, LOG10, LOG1P)
345         (LOG2, LOGB, SIGNIFICAND, SIN, SQRT, TAN, CEIL, FLOOR, NEARBYINT)
346         (RINT, ROUND, TRUNC, ATAN2, COPYSIGN, FMOD, POW, REMAINDER, SCALB)
347         (LDEXP): New functions.
348         * internal-fn.c: Include recog.h.
349         (unary_direct, binary_direct): New macros.
350         (expand_direct_optab_fn): New function.
351         (expand_unary_optab_fn): New macro.
352         (expand_binary_optab_fn): Likewise.
353         (direct_unary_optab_supported_p): Likewise.
354         (direct_binary_optab_supported_p): Likewise.
355
356 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
357
358         * coretypes.h (tree_pair): New type.
359         * internal-fn.def (DEF_INTERNAL_OPTAB_FN): New macro.  Use it
360         for MASK_LOAD, LOAD_LANES, MASK_STORE and STORE_LANES.
361         * internal-fn.h (direct_internal_fn_info): New structure.
362         (direct_internal_fn_array): Declare.
363         (direct_internal_fn_p, direct_internal_fn): New functions.
364         (direct_internal_fn_types, direct_internal_fn_supported_p): Declare.
365         * internal-fn.c (not_direct, mask_load_direct, load_lanes_direct)
366         (mask_store_direct, store_lanes_direct): New macros.
367         (direct_internal_fn_array) New array.
368         (get_multi_vector_move): Return the optab handler without asserting
369         that it is available.
370         (expand_LOAD_LANES): Rename to...
371         (expand_load_lanes_optab_fn): ...this and add an optab argument.
372         (expand_STORE_LANES): Rename to...
373         (expand_store_lanes_optab_fn): ...this and add an optab argument.
374         (expand_MASK_LOAD): Rename to...
375         (expand_mask_load_optab_fn): ...this and add an optab argument.
376         (expand_MASK_STORE): Rename to...
377         (expand_mask_store_optab_fn): ...this and add an optab argument.
378         (direct_internal_fn_types, direct_optab_supported_p)
379         (multi_vector_optab_supported_p, direct_internal_fn_supported_p)
380         (direct_internal_fn_supported_p): New functions.
381         (direct_mask_load_optab_supported_p): New macro.
382         (direct_load_lanes_optab_supported_p): Likewise.
383         (direct_mask_store_optab_supported_p): Likewise.
384         (direct_store_lanes_optab_supported_p): Likewise.
385
386 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
387
388         * tree-core.h (internal_fn): Move immediately after the definition
389         of built_in_function.
390         (combined_fn): New enum.
391         * tree.h (as_combined_fn, builtin_fn_p, as_builtin_fn)
392         (internal_fn_p, as_internal_fn): New functions.
393         (get_call_combined_fn, combined_fn_name): Declare.
394         * tree.c (get_call_combined_fn): New function.
395         (combined_fn_name): Likewise.
396         * gimple.h (gimple_call_combined_fn): Declare.
397         * gimple.c (gimple_call_combined_fn): New function.
398
399 2015-11-17  Martin Sebor  <msebor@redhat.com>
400
401         PR c++/68308
402         * cp/init.c (build_new_1): Check for expression constness
403         the right way.
404
405 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
406
407         PR target/53587
408         * doc/invoke.texi (Option Summary): Add -mms-bitfields to x86
409         option list.
410         (x86 Options): Add -mms-bitfields and -mno-ms-bitfields.  Move
411         discussion of the Microsoft structure layout details here from
412         its former home in extend.texi.
413         * doc/extend.texi (x86 Variable Attributes): Replace detailed
414         discussion with pointer to its new location.  Add cross-reference
415         to corresponding type attributes.
416         (x86 Type Attributes): Add cross-references to command-line options
417         and variable attributes.
418
419 2015-11-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
420
421         PR middle-end/68134
422         * targhooks.c (default_get_mask_mode): Filter out
423         scalar modes returned by mode_for_vector.
424
425 2015-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
426
427         PR target/68143
428         * config/arm/arm.c (arm_block_set_unaligned_vect): Keep track of
429         offset from dstbase and use it appropriately in
430         adjust_automodify_address.
431         (arm_block_set_aligned_vect): Likewise.
432
433 2015-11-17  Eric Botcazou  <ebotcazou@adacore.com>
434
435         * config/visium/t-visium (MULTILIB_OPTIONS): Add muser-mode.
436         (MULTILIB_DIRNAMES): Adjust accordingly.
437
438 2015-11-17  James Greenhalgh  <james.greenhalgh@arm.com>
439
440         * config/aarch64/aarch64-cores.def (cortex-a35): New.
441         * config/aarch64/aarch64.c (cortexa35_tunings): New.
442         * config/aarch64/aarch64-tune.md: Regenerate.
443         * doc/invoke.texi (-mcpu): Add Cortex-A35
444
445 2015-11-17  Uros Bizjak  <ubizjak@gmail.com>
446
447         PR target/68263
448         * config/i386/i386.h (BIGGEST_ALIGNMENT): Always define
449         to 32 for IAMCU.
450         * config/i386/sse.md (*mov<mode>_internal): Always enable
451         AVX and SSE unaligned moves for IAMCU.
452
453 2015-11-17  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
454
455         * tree-if-conv.c: Include varasm.h
456         (ref_DR_map): Define.
457         (baseref_DR_map): Like wise
458         (struct ifc_dr): Add new tree predicate field.
459         (hash_memrefs_baserefs_and_store_DRs_read_written_info): New function.
460         (memrefs_read_or_written_unconditionally): Remove.
461         (write_memrefs_written_at_least_once): Remove.
462         (ifcvt_memrefs_wont_trap): Use hash maps to query
463         unconditional read/written information.
464         (if_convertible_loop_p_1):  Initialize hash maps and predicates
465         before hashing data references and delete hashmaps at the end.
466
467 2015-11-16  Thomas Preud'homme <thomas.preudhomme@arm.com>
468
469         PR 56036
470         * doc/invoke.texi (Optimize Options): Move @end table to the right
471         place.
472
473 2015-11-16  Sandra Loosemore  <sandra@codesourcery.com>
474
475         PR 65129
476         * doc/extend.texi (__builtin_assume_aligned): Fix formatting of
477         return value.
478
479 2015-11-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
480
481         * config/rs6000/vsx.md (VSX_L): Do not include IBM extended double
482         128-bit types, just types that fit in a single vector.
483         * config/rs6000/rs6000.md (FMOVE128_GPR): Likewise.
484
485 2015-11-16  David Wohlferd  <dw@LimeGreenSocks.com>
486
487         * doc/md.texi ('#' and '*' constraint modifiers): Do not include these
488         in the user documentation.
489         (define_peephole2, define_split): Similarly.
490
491 2015-11-16 Andris Pavenis <andris.pavenis@iki.fi>
492
493         * lto-streamer-out.c (write_global_references): Adjust integer type.
494         (lto_output_decl_state_refs): Likewise.
495
496 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
497
498         * config/arm/arm-cores.def (cortex-a35): New.
499         * config/arm/arm.c (arm_cortex_a35_tune): New.
500         * config/arm/arm-tables.opt: Regenerate.
501         * config/arm/arm-tune.md: Regenerate.
502         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-a35.
503         * config/arm/t-aprofile: Likewise.
504         * doc/invoke.texi (-mcpu): Likewise.
505
506 2015-11-16  Jim Wilson  <jim.wilson@linaro.org>
507
508         * config/arm/t-aprofile (MULTILIB_MATCHES): Add lines for exynos-m1
509         and qdf24xx and xgene1 to match -march=armv8-a.
510
511 2015-11-16  Segher Boessenkool  <segher@kernel.crashing.org>
512
513         PR rtl-optimization/68330
514         * simplify-rtx.c (simplify_unary_operation_1): Simplify SIGN_EXTEND
515         of LSHIFTRT by a non-zero constant integer.
516
517 2015-11-16  Richard Biener  <rguenther@suse.de>
518
519         PR tree-optimization/68306
520         * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Fix
521         bogus copying from verify_data_ref_alignment and use continue
522         instead of return.
523
524 2015-11-16  Oleg Endo  <olegendo@gcc.gnu.org>
525             Kaz Kojima  <kkojima@gcc.gnu.org>
526
527         PR target/68277
528         * config/sh/sh.md (addsi3_scr): Handle reg overlap of operands[0] and
529         operands[2].
530         (*addsi3): Add another insn_and_split variant for reload.
531
532 2015-11-16  Richard Biener  <rguenther@suse.de>
533
534         PR middle-end/68117
535         * cfgexpand.c (pass_expand::execute): Destroy the edge
536         redirection var map before setting RTL CFG hooks.
537
538 2015-11-16  Alan Lawrence  <alan.lawrence@arm.com>
539
540         * config/i386/sse.md (reduc_splus_v8df): Rename to...
541         (reduc_plus_scal_v8df): ...here; reduce to temp and extract scalar.
542
543         (reduc_splus_v4df): Rename to...
544         (reduc_plus_scal_v4df): ...here; reduce to temp and extract scalar.
545
546         (reduc_splus_v2df): Rename to...
547         (reduc_plus_scal_v2df): ...here; reduce to temp and extract scalar.
548
549         (reduc_splus_v16sf): Rename to...
550         (reduc_plus_scal_v16sf): ...here; reduce to temp and extract scalar.
551
552         (reduc_splus_v8sf): Rename to...
553         (reduc_plus_scal_v8sf): ...here; reduce to temp and extract scalar.
554
555         (reduc_splus_v4sf): Rename to...
556         (reduc_plus_scal_v4sf): ...here; reduce to temp and extract scalar.
557
558         (reduc_<code>_<mode>, all 3 variants): Rename each to...
559         (reduc_<code>_scal_<mode>): ...here; reduce to temp and extract scalar.
560
561         (reduc_umin_v8hf): Rename to...
562         (reduc_umin_scal_v8hf): ...here; reduce to temp and extract scalar.
563
564 2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
565
566         * omp-low.c (pass_omp_simd_clone::gate): If target allows - call
567         without additional conditions.
568         * doc/extend.texi (@item simd): New.
569
570 2015-11-16  Tom de Vries  <tom@codesourcery.com>
571
572         * passes.c (first_pass_instance): Remove variable.
573         (execute_todo): Remove setting of first_pass_instance.
574         * tree-pass.h (first_pass_instance): Remove declaration.
575
576 2015-11-16  Tom de Vries  <tom@codesourcery.com>
577
578         * passes.def: Add arg to pass_ccp pass instantiation.
579         * tree-ssa-ccp.c (ccp_finalize): Add param nonzero_p.  Use nonzero_p
580         instead of first_pass_instance.
581         (do_ssa_ccp): Add and handle param nonzero_p.
582         (pass_ccp::pass_ccp): Initialize nonzero_p.
583         (pass_ccp::set_pass_param): New member function.  Set nonzero_p.
584         (pass_ccp::execute): Call do_ssa_ccp with extra arg.
585         (pass_ccp::nonzero_p): New private member.
586
587 2015-11-16  Tom de Vries  <tom@codesourcery.com>
588
589         * passes.def: Add arg to pass_object_sizes pass instantiation.
590         * tree-object-size.c (pass_object_sizes::pass_object_sizes): Initialize
591         insert_min_max_p.
592         (pass_object_sizes::set_pass_param): New member function.  Set
593         insert_min_max_p.
594         (pass_object_sizes::insert_min_max_p): New private member.
595         (pass_object_sizes::execute): Use insert_min_max_p instead of
596         first_pass_instance.
597
598 2015-11-16  Tom de Vries  <tom@codesourcery.com>
599
600         * passes.def: Add arg to pass_dominator pass instantiation.
601         * tree-pass.h (first_pass_instance): Remove pass_dominator-related bit
602         of comment.
603         * tree-ssa-dom.c (pass_dominator::pass_dominator): Initialize
604         may_peel_loop_headers_p.
605         (pass_dominator::set_pass_param): New member function.  Set
606         may_peel_loop_headers_p.
607         (pass_dominator::may_peel_loop_headers_p): New private member.
608         (pass_dominator::execute): Use may_peel_loop_headers_p instead of
609         first_pass_instance.
610
611 2015-11-16  Tom de Vries  <tom@codesourcery.com>
612
613         * passes.def: Add arg to pass_reassoc pass instantiation.
614         * tree-ssa-reassoc.c (reassoc_insert_powi_p): New static variable.
615         (acceptable_pow_call, reassociate_bb): Use reassoc_insert_powi_p instead
616         of first_pass_instance.
617         (execute_reassoc): Add and handle insert_powi_p parameter.
618         (pass_reassoc::insert_powi_p): New private member.
619         (pass_reassoc::pass_reassoc): Initialize insert_powi_p.
620         (pass_reassoc::set_pass_param): New member function.  Set insert_powi_p.
621         (pass_reassoc::execute): Call execute_reassoc with extra arg.
622
623 2015-11-16  Tom de Vries  <tom@codesourcery.com>
624
625         * gdbhooks.py (class PassNames): Handle extra arg NEXT_PASS argument.
626         * gen-pass-instances.awk (handle_line): Same.
627         * pass_manager.h (class pass_manager): Define and undefine
628         NEXT_PASS_WITH_ARG.
629         * passes.c (opt_pass::set_pass_param): New function.
630         (pass_manager::pass_manager): Define and undefine NEXT_PASS_WITH_ARG.
631         * passes.def: Add extra arg to NEXT_PASS (pass_vrp).
632         * tree-pass.h (gimple_opt::set_pass_param): Declare.
633         * tree-vrp.c (vrp_finalize, execute_vrp): Add and handle
634         warn_array_bounds_p parameter.
635         (pass_vrp::pass_vrp): Initialize warn_array_bounds_p.
636         (pass_vrp::set_pass_param): New function.
637         (pass_vrp::execute): Add warn_array_bounds_p arg to execute_vrp call.
638         (pass_vrp::warn_array_bounds_p): New private member.
639
640 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
641
642         * config/sparc/sparc.c (sparc_emit_probe_stack_range): Adjust.
643         (output_probe_stack_range): Rotate the loop and simplify.
644
645 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
646
647         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_rang): Adjust.
648         (output_probe_stack_range): Rotate the loop and simplify.
649
650 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
651
652         * config/i386/i386.c (ix86_adjust_stack_and_probe): Adjust and use
653         an lea instruction when possible.
654         (output_adjust_stack_and_probe): Rotate the loop and simplify.
655         (ix86_emit_probe_stack_range): Adjust.
656         (output_probe_stack_range): Rotate the loop and simplify.
657
658 2015-11-16  Christian Bruel  <christian.bruel@st.com>
659
660         * config/arm/arm_neon.h: Remove #ifndef check on __ARM_NEON.
661         Replace #ifdef __ARM_FEATURE_CRYPTO, __ARM_FEATURE_FMA, __ARM_FP
662         with appropriate pragma GCC target.
663
664 2015-11-16  Christian Bruel  <christian.bruel@st.com>
665
666         PR target/65837
667         * config/arm/arm-c.c (arm_cpu_builtins): Conditionally set and reset
668         __ARM_FEATURE_FMA and __ARM_NEON_FP, __ARM_FP.
669
670 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
671
672         * config/aarch64/aarch64.c (cortexa57_branch_costs): New.
673         (cortexa57_tunings): Use it.
674
675 2015-11-16  Christian Bruel  <christian.bruel@st.com>
676
677         PR target/65837
678         * config/arm/arm-c.c (arm_cpu_builtins): Set or reset
679         __ARM_FEATURE_CRYPTO, __VFP_FP__, __ARM_NEON__
680         (arm_pragma_target_parse): Change check for arm_cpu_builtins.
681         undefine __ARM_FP.
682         * config/arm/arm.c (arm_can_inline_p): Check FPUs.
683         (arm_valid_target_attribute_rec): Handle -mfpu attribute target.
684         * doc/invoke.texi (-mfpu=): Mention attribute and pragma.
685         * doc/extend.texi (-mfpu=): Describe attribute.
686
687 2015-11-16  Christian Bruel  <christian.bruel@st.com>
688
689         PR target/65837
690         * config/arm/arm-protos.h (arm_init_neon_builtins): Declare.
691         * config/arm/arm.c (arm_valid_target_attribute_tree): Call
692         arm_init_neon_builtins.
693         * config/arm/arm-builtins.c (arm_init_neon_builtins): Split into...
694         (arm_init_neon_builtins_internal)
695         (arm_init_crypto_builtins_internal):
696         Test and set neon_set_p, neon_crypto_set_p.
697         (neon_set_p, neon_crypto_set_p): New static booleans.
698
699 2015-11-16  Christian Bruel  <christian.bruel@st.com>
700
701         PR target/65837
702         * config/arm/arm.c (arm_fpu_desc): Remove.
703         (all_fpus): Make global.
704         (arm_option_override): Use FPU TARGET accessors.
705         (arm_declare_function_name): Likewise.
706         * config/arm/arm.h (TARGET_VFP, TARGET_VFPD32, TARGET_VFP5)
707         (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE, TARGET_NEON_FP16)
708         (TARGET_FP16, TARGET_FMA, TARGET_FPU_ARMV8, TARGET_CRYPTO)
709         (TARGET_NEON): Likewise.
710         (all_fpus): Declare extern.
711         (TARGET_FPU_NAME, TARGET_FPU_MODEL, TARGET_FPU_REV)
712         (TARGET_FPU_REGS, TARGET_FPU_FEATURES): Define all_fpus accessors.
713
714 2015-11-15  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
715
716         PR middle-end/68366
717         * sdbout.c: Include emit-rtl.h and function.h.
718
719 2015-11-15  Gerald Pfeifer  <gerald@pfeifer.com>
720
721         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586.
722         Remove support for FreeBSD 5 and earlier.
723
724 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
725
726         * configure: Regenerate.
727         * configure.ac: Always define ENABLE_OFFLOADING.
728         * cgraph.c (cgraph_node::create): Adjust.
729         * gcc.c (process_command): Likewise.
730         * omp-low.c (create_omp_child_function): Likewise.
731         (expand_omp_target): Likewise.
732         * varpool.c (varpool_node::get_create): Likewise.
733
734 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
735
736         * defaults.h (EH_RETURN_HANDLER_RTX): New default definition.
737         * df-scan.c (df_get_exit_block_use_set): Adjust.
738         * except.c (expand_eh_return): Likewise.
739
740 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
741
742         * config/i386/i386.h (TARGET_PECOFF): Remove define.
743         * defaults.h (TARGET_PECOFF): New default definition.
744         * varasm.c (handle_vtv_comdat_section): Adjust.
745
746 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
747
748         * defaults.h: New definition of SDB_DEBUGGING_INFO.
749         * doc/tm.texi: Regenerate.
750         * doc/tm.texi.in: Adjust.
751         * final.c (rest_of_clean_state): Remove check if
752         SDB_DEBUGGING_INFO is defined.
753         * function.c (number_blocks): Likewise.
754         * output.h: Likewise.
755         * sdbout.c: Likewise.
756         * toplev.c (process_options): Likewise.
757
758 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
759
760         * gsyms.h (enum sdb_type): Remove code for EXTENDED_SDB_BASIC_TYPES.
761         (enum sdb_masks): Likewise.
762         * sdbout.c (plain_type_1): Likewise.
763         * system.h: Poison EXTENDED_SDB_BASIC_TYPES macro.
764
765 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
766
767         * omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_*
768         internal calls - 0 if ordered simd and 1 for ordered threads simd.
769         * tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_*
770         argument is 1, replace it with GOMP_ordered_* call instead of removing
771         it.
772
773 2015-11-13  Rich Felker <dalias@libc.org>
774
775         * config/sh/sh.md (symGOT_load): Suppress __stack_chk_guard
776         address loading hack for FDPIC targets.
777
778 2015-11-13  Ajit Agarwal  <ajitkum@xilinx.com>
779             Jeff Law  <law@redhat.com>
780
781         * Makefile.in (OBJS): Add gimple-ssa-split-paths.o
782         * common.opt (-fsplit-paths): New flag controlling path splitting.
783         * doc/invoke.texi (fsplit-paths): Document.
784         * opts.c (default_options_table): Add -fsplit-paths to -O2.
785         * passes.def: Add split_paths pass.
786         * timevar.def (TV_SPLIT_PATHS): New timevar.
787         * tracer.c: Include "tracer.h"
788         (ignore_bb_p): No longer static.
789         (transform_duplicate): New function, broken out of tail_duplicate.
790         (tail_duplicate): Use transform_duplicate.
791         * tracer.h (ignore_bb_p): Declare
792         (transform_duplicate): Likewise.
793         * tree-pass.h (make_pass_split_paths): Declare.
794         * gimple-ssa-split-paths.c: New file.
795
796 2015-11-13  Kai Tietz  <ktietz70@googlemail.com>
797             Marek Polacek  <polacek@redhat.com>
798             Jason Merrill  <jason@redhat.com>
799
800         * convert.c (maybe_fold_build1_loc): New.
801         (maybe_fold_build2_loc): New.
802         (convert_to_pointer_1): Split out from convert_to_pointer.
803         (convert_to_pointer_nofold): New.
804         (convert_to_real_1): Split out from convert_to_real.
805         (convert_to_real_nofold): New.
806         (convert_to_integer_1): Split out from convert_to_integer.
807         (convert_to_integer_nofold): New.
808         (convert_to_complex_1): Split out from convert_to_complex.
809         (convert_to_complex_nofold): New.
810         * convert.h: Declare new functions.
811         * tree-complex.c (create_one_component_var): Break up line to
812         avoid sequence point issues.
813
814 2015-11-13  Jason Merrill  <jason@redhat.com>
815
816         * fold-const.c (fold_convert_const): Fold changing cv-quals on
817         VECTOR_CST.
818
819         * hash-map.h (hash_map::empty): New.
820
821 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
822
823         * gcc/omp-low.c (scan_sharing_clauses): Accept INDEPENDENT, AUTO & SEQ.
824         (oacc_loop_fixed_partitions): Correct return type to bool.
825         (oacc_loop_auto_partitions): New.
826         (oacc_loop_partition): Take mask argument, call
827         oacc_loop_auto_partitions.
828         (execute_oacc_device_lower): Provide mask to oacc_loop_partition.
829
830 2015-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
831
832         * config/rs6000/constraints.md (we constraint): New constraint for
833         64-bit power9 vector support.
834         (wL constraint): New constraint for the element in a vector that
835         can be addressed by the MFVSRLD instruction.
836
837         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Add
838         declaration.
839         (convert_int_to_float128): Likewise.
840         (rs6000_generate_compare): Add support for ISA 3.0 (power9)
841         hardware support for IEEE 128-bit floating point.
842         (rs6000_expand_float128_convert): Likewise.
843         (convert_float128_to_int): Likewise.
844         (convert_int_to_float128): Likewise.
845
846         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): New unspecs for
847         ISA 3.0 hardware IEEE 128-bit floating point.
848         (UNSPEC_IEEE128_MOVE): Likewise.
849         (UNSPEC_IEEE128_CONVERT): Likewise.
850         (FMA_F): Add support for IEEE 128-bit floating point hardware support.
851         (Ff): Add support for DImode.
852         (Fv): Likewise.
853         (any_fix code iterator): New and updated iterators for IEEE
854         128-bit floating point hardware support.
855         (any_float code iterator): Likewise.
856         (s code attribute): Likewise.
857         (su code attribute): Likewise.
858         (az code attribute): Likewise.
859         (uns code attribute): Likewise.
860         (neg<mode>2, FLOAT128 iterator): Add support for IEEE 128-bit
861         floating point hardware support.
862         (abs<mode>2, FLOAT128 iterator): Likewise.
863         (add<mode>3, IEEE128 iterator): New insns for IEEE 128-bit
864         floating point hardware.
865         (sub<mode>3, IEEE128 iterator): Likewise.
866         (mul<mode>3, IEEE128 iterator): Likewise.
867         (div<mode>3, IEEE128 iterator): Likewise.
868         (copysign<mode>3, IEEE128 iterator): Likewise.
869         (sqrt<mode>2, IEEE128 iterator): Likewise.
870         (neg<mode>2, IEEE128 iterator): Likewise.
871         (abs<mode>2, IEEE128 iterator): Likewise.
872         (nabs<mode>2, IEEE128 iterator): Likewise.
873         (fma<mode>4_hw, IEEE128 iterator): Likewise.
874         (fms<mode>4_hw, IEEE128 iterator): Likewise.
875         (nfma<mode>4_hw, IEEE128 iterator): Likewise.
876         (nfms<mode>4_hw, IEEE128 iterator): Likewise.
877         (extend<SFDF:mode><IEEE128:mode>2_hw): Likewise.
878         (trunc<mode>df2_hw, IEEE128 iterator): Likewise.
879         (trunc<mode>sf2_hw, IEEE128 iterator): Likewise.
880         (fix_fixuns code attribute): Likewise.
881         (float_floatuns code attribute): Likewise.
882         (fix<uns>_<mode>si2_hw): Likewise.
883         (fix<uns>_<mode>di2_hw): Likewise.
884         (float<uns>_<mode>si2_hw): Likewise.
885         (float<uns>_<mode>di2_hw): Likewise.
886         (xscvqp<su>wz_<mode>): Likewise.
887         (xscvqp<su>dz_<mode>): Likewise.
888         (xscv<su>dqp_<mode): Likewise.
889         (ieee128_mfvsrd): Likewise.
890         (ieee128_mfvsrwz): Likewise.
891         (ieee128_mtvsrw): Likewise.
892         (ieee128_mtvsrd): Likewise.
893         (trunc<mode>df2_odd): Likewise.
894         (cmp<mode>_h): Likewise.
895         (128-bit GPR splitters): Don't split a 128-bit move that is a
896         direct move between GPR and vector registers using ISA 3.0 direct
897         move instructions.
898         (maddld4): Add support for the ISA 3.0 integer multiply-add
899         instruction.
900
901         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add ISA 3.0
902         debugging.
903         (rs6000_init_hard_regno_mode_ok): If ISA 3.0 and 64-bit, enable we
904         constraint.  Disable the VSX<->GPR direct move helpers if we have
905         the MFVSRLD and MTVSRDD instructions.
906         (rs6000_secondary_reload_simple_move): Add support for doing
907         vector direct moves directly without additional scratch registers
908         if we have ISA 3.0 instructions.
909         (rs6000_secondary_reload_direct_move): Update comments.
910         (rs6000_output_move_128bit): Add support for ISA 3.0 vector
911         instructions.
912
913         * config/rs6000/vsx.md (vsx_mov<mode>): Add support for ISA 3.0
914         direct move instructions.
915         (vsx_movti_64bit): Likewise.
916         (vsx_extract_<mode>): Likewise.
917
918         * config/rs6000/rs6000.h (VECTOR_ELEMENT_MFVSRLD_64BIT): New
919         macros for ISA 3.0 direct move instructions.
920         (TARGET_DIRECT_MOVE_128): Likewise.
921         (TARGET_MADDLD): Add support for the ISA 3.0 integer multiply-add
922         instruction.
923
924         * doc/md.texi (RS/6000 constraints): Document we, wF, wG, wL
925         constraints.  Update wa documentation to say not to use %x<n> on
926         instructions that only take Altivec registers.
927
928 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
929
930         * Makefile.in (OBJS): Add gcc-rich-location.o.
931         * diagnostic.c (diagnostic_append_note): Pass line_table to
932         rich_location ctor.
933         (emit_diagnostic): Likewise.
934         (inform): Likewise.
935         (inform_n): Likewise.
936         (warning): Likewise.
937         (warning_at): Likewise.
938         (warning_n): Likewise.
939         (pedwarn): Likewise.
940         (permerror): Likewise.
941         (error): Likewise.
942         (error_n): Likewise.
943         (error_at): Likewise.
944         (sorry): Likewise.
945         (fatal_error): Likewise.
946         (internal_error): Likewise.
947         (internal_error_no_backtrace): Likewise.
948         (source_range::debug): Likewise.
949         * gcc-rich-location.c: New file.
950         * gcc-rich-location.h: New file.
951         * genmatch.c (fatal_at): Pass line_table to rich_location ctor.
952         (warning_at): Likewise.
953         * gimple.h (gimple_set_block): Use set_block function.
954         * input.c (dump_line_table_statistics): Dump stats on how many
955         ranges were optimized vs how many needed ad-hoc table.
956         (write_digit_row): Add "map" param; use its range_bits
957         to calculate the per-character offset.
958         (dump_location_info): Print the range and column bits for each
959         ordinary map.  Use the range bits to calculate the per-character
960         offset.  Pass the map as a new param to the various calls to
961         write_digit_row.  Eliminate uses of
962         ORDINARY_MAP_NUMBER_OF_COLUMN_BITS.
963         * print-tree.c (print_node): Print any source range information.
964         * rtl-error.c (diagnostic_for_asm): Likewise.
965         * toplev.c (general_init): Initialize line_table's
966         default_range_bits.
967         * tree-cfg.c (move_block_to_fn): Likewise.
968         (move_block_to_fn): Likewise.
969         * tree-inline.c (copy_phis_for_bb): Likewise.
970         * tree.c (tree_set_block): Likewise.
971         (get_pure_location): New function.
972         (set_source_range): New functions.
973         (set_block): New function.
974         (set_source_range): New functions.
975         * tree.h (CAN_HAVE_RANGE_P): New.
976         (EXPR_LOCATION_RANGE): New.
977         (EXPR_HAS_RANGE): New.
978         (get_expr_source_range): New inline function.
979         (DECL_LOCATION_RANGE): New.
980         (set_source_range): New decls.
981         (get_decl_source_range): New inline function.
982
983 2015-11-13  Alan Lawrence  <alan.lawrence@arm.com>
984
985         PR tree-optimization/67682
986         * tree-vect-slp.c (vect_split_slp_store_group): New.
987         (vect_analyze_slp_instance): During basic block SLP, recurse on
988         subgroups if vect_build_slp_tree fails after 1st vector.
989
990 2015-11-13  Christian Bruel  <christian.bruel@st.com>
991
992         PR target/65837
993         * config/arm/arm.c (arm_option_override): Move NEON check...
994         (arm_option_check_internal): here
995         (arm_file_start): Move .fpu print...
996         (arm_declare_function_name): here
997         (arm_option_print): Dump current fpu name.
998         * config/arm/arm.opt (arm_fpu_index): Mark Save.
999
1000 2015-11-13  Segher Boessenkool  <segher@kernel.crashing.org>
1001             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1002
1003         * combine.c (subst): Don't substitute or simplify when
1004         handling register-wise widening multiply.
1005         (force_to_mode): Likewise.
1006
1007 2015-11-13  Richard Sandiford  <richard.sandiford@arm.com>
1008
1009         PR tree-optimization/68264
1010         * tree-call-cdce.c (gen_one_condition): Update commentary.
1011         (gen_conditions_for_pow_int_base): Invert the sense of the tests
1012         passed to gen_one_condition.
1013         (gen_conditions_for_domain): Likewise.  Use unordered comparisons.
1014         (shrink_wrap_one_built_in_call): Invert the sense of the tests,
1015         using EDGE_FALSE_VALUE for edges to the call block and
1016         EDGE_TRUE_VALUE for the others.
1017
1018 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
1019
1020         * config/nvptx/nvptx.c (nvptx_generate_vector_shuffle): Deal with
1021         complex types.
1022
1023 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
1024
1025         * gimplify.c (oacc_default_clause): Use inform for enclosing scope.
1026
1027 2015-11-13  Tom de Vries  <tom@codesourcery.com>
1028
1029         * gen-pass-instances.awk (handle_line): Rename prefix_len var to
1030         len_of_prefix.
1031
1032 2015-11-13  Tom de Vries  <tom@codesourcery.com>
1033
1034         * gen-pass-instances.awk (handle_line): Add args_str variable.
1035
1036 2015-11-13  Martin Liska  <mliska@suse.cz>
1037
1038         * graphite-poly.c (free_scop): Release scop->drs vector.
1039         * graphite-scop-detection.c (scop_detection::harmful_stmt_in_region):
1040         Release dom vector.
1041         (try_generate_gimple_bb): Use vNULL as a default initialization
1042         for vectors.
1043
1044 2015-11-13  Martin Liska  <mliska@suse.cz>
1045
1046         PR ipa/68311
1047         * ipa-icf.c (sem_item_optimizer::traverse_congruence_split):
1048         Replace array initialization (using a variable post-increment)
1049         that possible triggers multiple unsequenced modifications
1050         with a pair of pushes to a vector.
1051
1052 2015-11-13  Richard Biener  <rguenther@suse.de>
1053
1054         PR tree-optimization/68306
1055         * tree-vect-data-refs.c (verify_data_ref_alignment): Move
1056         loop related checks ...
1057         (vect_verify_datarefs_alignment): ... here.
1058         (vect_slp_analyze_and_verify_node_alignment): Compute and
1059         verify alignment of the single DR that it matters.
1060         * tree-vect-stmts.c (vectorizable_store): Add an assert.
1061         (vectorizable_load): Add a comment.
1062         * tree-vect-slp.c (vect_analyze_slp_cost_1): Fix DR used
1063         for determining load cost.
1064
1065 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
1066
1067         * tree-vect-loop.c (vect_determine_vectorization_factor): Check
1068         mix of boolean and integer vectors in a single statement.
1069         * tree-vect-slp.c (vect_mask_constant_operand_p): New.
1070         (vect_get_constant_vectors): Use vect_mask_constant_operand_p to
1071         determine constant type.
1072         * tree-vect-stmts.c (vectorizable_comparison): Provide vectype
1073         for loop invariants.
1074
1075 2015-11-13  Alan Hayward <alan.hayward@arm.com>
1076
1077         PR tree-optimization/66558
1078         * tree-vect-loop.c (is_integer_induction):Add.
1079         (vectorizable_reduction): Add integer induction checks.
1080
1081 2015-11-13  Christophe Lyon  <christophe.lyon@linaro.org>
1082
1083         Revert [ARM] Remove neon-testgen.ml and generated tests.
1084
1085         2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
1086
1087         [ARM] Remove neon-testgen.ml and generated tests.
1088
1089         * config/arm/neon-testgen.ml: Remove.
1090
1091 2015-11-13  Richard Biener  <rguenther@suse.de>
1092
1093         * tree-vect-loop.c (vect_analyze_loop_2): Add fatal parameter.
1094         Signal fatal failure if early checks fail.
1095         (vect_analyze_loop): If vect_analyze_loop_2 fails fatally
1096         do not bother testing further vector sizes.
1097
1098 2015-11-13  Uros Bizjak  <ubizjak@gmail.com>
1099
1100         * config/i386/predicates.md (misaligned_operand): Return true if
1101         operand is aligned to less than its natural alignmnet.
1102
1103 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
1104
1105         * doc/md.texi (vec_cmp@var{m}@var{n}): New item.
1106         (vec_cmpu@var{m}@var{n}): New item.
1107         (vcond@var{m}@var{n}): Specify comparison is signed.
1108         (vcondu@var{m}@var{n}): New item.
1109         (vcond_mask_@var{m}@var{n}): New item.
1110         (maskload@var{m}@var{n}): New item.
1111         (maskstore@var{m}@var{n}): New item.
1112
1113 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
1114
1115         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
1116         types of stored value and storage are compatible.
1117
1118 2015-11-13  Andris Pavenis  <andris.pavenis@iki.fi>
1119
1120         * gcc.c (POST_LINK_SPEC): Define if not already defined.
1121         (LINK_COMMAND_SPEC): Use post_link.
1122         (post_link_spec): New, initialize to POST_LINK_SPEC.
1123         (post_link): Initialize new static spec.
1124         * doc/tm.texi.in (POST_LINK_SPEC): Document.
1125         * doc/tm.texi: Regenerated.
1126
1127 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
1128
1129         PR driver/67613
1130         * Makefile.in (GCC_OBJS): Add spellcheck.o.
1131         (OBJS): Add spellcheck-tree.o.
1132         * gcc.c: Include "spellcheck.h".
1133         (suggest_option): New function.
1134         (driver::handle_unrecognized_options): Call suggest_option to
1135         provide a hint about misspelled options.
1136         * spellcheck.c: Update file comment.
1137         (levenshtein_distance): Convert 4-param implementation from static
1138         to extern scope.  Remove note about unit tests from leading
1139         comment for const char * implementation.  Move tree
1140         implementation to...
1141         * spellcheck-tree.c: New file.
1142         * spellcheck.h (levenshtein_distance):  Add 4-param decl.
1143
1144 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
1145
1146         * Makefile.in (OBJS): Add spellcheck.o.
1147         * spellcheck.c: New file.
1148         * spellcheck.h: New file.
1149
1150 2015-11-13  James Bowman  <james.bowman@ftdichip.com>
1151
1152         * config/ft32/ft32.md (*sne): New insn pattern.
1153
1154 2015-11-12  Brad Lucier  <lucier@math.purdue.edu>
1155
1156         * gcc/cprop.c (is_too_expensive): Remove.
1157         (gcse.h): Include.
1158         (one_cprop_pass): Call gcse_or_cprop_is_too_expensive, not
1159         is_too_expensive.
1160         * gcc/gcse.h (gcse_or_cprop_is_too_expensive): Declare.
1161         * gcc/gcse.c (is_too_expensive): Rename to ...
1162         (gcse_or_cprop_is_too_expensive): ... this.
1163         Expand warning to add required size of max-gcse-memory.
1164         (one_pre_gcse_pass): Use it.
1165         (one_code_hoisting_pass): Use it.
1166         * gcc/params.def (max-gcse-memory): Increase from 50MB to 128MB.
1167
1168 2015-11-12  James Norris  <jnorris@codesourcery.com>
1169             Joseph Myers  <joseph@codesourcery.com>
1170
1171         * gimple-pretty-print.c (dump_gimple_omp_target): Handle
1172         GF_OMP_TARGET_KIND_OACC_DECLARE.
1173         * gimple.h (enum gf_mask): Add GF_OMP_TARGET_KIND_OACC_DECLARE.
1174         (is_gomple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
1175         * gimplify.c (oacc_declare_returns): New.
1176         (gimplify_bind_expr): Prepend 'exit' stmt to cleanup.
1177         (device_resident_p): New function.
1178         (oacc_default_clause): Handle device_resident clause.
1179         (gimplify_oacc_declare_1, gimplify_oacc_declare): New functions.
1180         (gimplify_expr): Handle OACC_DECLARE.
1181         * omp-builtins.def (BUILT_IN_GOACC_DECLARE): New builtin.
1182         * omp-low.c (expand_omp_target): Handle
1183         GF_OMP_TARGET_KIND_OACC_DECLARE and BUILTIN_GOACC_DECLARE.
1184         (build_omp_regions_1): Handlde GF_OMP_TARGET_KIND_OACC_DECLARE.
1185         (lower_omp_target): Handle GF_OMP_TARGET_KIND_OACC_DECLARE,
1186         GOMP_MAP_DEVICE_RESIDENT and GOMP_MAP_LINK.
1187         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
1188         * tree-pretty-print.c (dump_omp_clause): Handle GOMP_MAP_LINK and
1189         GOMP_MAP_DEVICE_RESIDENT.
1190
1191 2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
1192
1193         [ARM] Remove neon-testgen.ml and generated tests.
1194
1195         * config/arm/neon-testgen.ml: Remove.
1196
1197 2015-11-12  Jim Wilson  <jim.wilson@linaro.org>
1198
1199         * config/aarch64/aarch64-cores.def (qdf24xx): New.
1200         * config/aarch64/aarch64-tune.md: Regenerated.
1201         * config/arm/arm-cores.def (qdf24xx): New.
1202         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Regenerated.
1203         * config/arm/bpabi.h (BE8_LINK_SPEC): Add qdf24xx support.
1204         * doc/invoke.texi (AArch64 Options/-mtune): Add "qdf24xx".
1205         (ARM Options/-mtune): Likewise.
1206
1207 2015-11-12  Martin Liska  <mliska@suse.cz>
1208
1209         * config/i386/i386.c (ix86_valid_target_attribute_p):
1210         Finalize options at the of the function.
1211         * gcc.c (driver_get_configure_time_options): Call newly
1212         introduced init_opts_obstack.
1213         * lto-wrapper.c (main): Likewise.
1214         * opts.c (init_opts_obstack): New function.
1215         (init_options_struct): Call newly introduced init_opts_obstack.
1216         * opts.h (init_options_struct): Declare.
1217
1218 2015-11-12  Martin Liska  <mliska@suse.cz>
1219
1220         PR ipa/68035
1221         * ipa-icf.c (void sem_item::set_hash): New function.
1222         (sem_function::get_hash): Use renamed m_hash member variable.
1223         (sem_item::update_hash_by_addr_refs): Utilize get_hash.
1224         (sem_item::update_hash_by_local_refs): Likewise.
1225         (sem_variable::get_hash): Use renamed m_hash member variable.
1226         (sem_item_optimizer::update_hash_by_addr_refs): Utilize get_hash.
1227         (sem_item_optimizer::build_hash_based_classes): Utilize set_hash.
1228         (sem_item_optimizer::build_graph): As the hash value of an item
1229         is lazy initialized, force the calculation.
1230         * ipa-icf.h (set_hash): Declare new function and rename hash member
1231         variable to m_hash.
1232
1233 2015-11-12  Richard Biener  <rguenther@suse.de>
1234
1235         * tree-vectorizer.h (vect_slp_analyze_data_ref_dependences):
1236         Rename to vect_slp_analyze_instance_dependence.
1237         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
1238         Remove WAR special-case.
1239         (vect_slp_analyze_node_dependences): Instead add more specific
1240         code here, not relying on other instances being vectorized.
1241         (vect_slp_analyze_instance_dependence): Adjust accordingly.
1242         * tree-vect-slp.c (vect_build_slp_tree_1): Remove excessive
1243         vertical space in dump files.
1244         (vect_print_slp_tree): Likewise.
1245         (vect_analyze_slp_instance): Dump a header for the final SLP tree.
1246         (vect_slp_analyze_bb_1): Delay computing relevant stmts and
1247         not vectorized stmts until after dependence analysis removed
1248         instances.  Merge alignment and dependence checks.
1249         * tree-vectorizer.c (pass_slp_vectorize::execute): Clear visited
1250         flag on all stmts.
1251
1252 2015-11-12  Evandro Menezes  <e.menezes@samsung.com>
1253
1254         * config/aarch64/aarch64-protos.h (tune_params): Add new members
1255         "max_case_values" and "cache_line_size".
1256         * config/aarch64/aarch64.c (aarch64_case_values_threshold): New
1257         function.
1258         (aarch64_override_options_internal): Tune heuristics based on new
1259         members in "tune_params".
1260         (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1261
1262 2015-11-12  Richard Biener  <rguenther@suse.de>
1263
1264         PR tree-optimization/68306
1265         * tree-vect-data-refs.c (verify_data_ref_alignment): Remove
1266         relevant and vectorizable checks here.
1267         (vect_verify_datarefs_alignment): Add relevant check here.
1268
1269 2015-11-12  Nathan Sidwell  <nathan@codesourcery.com>
1270
1271         * gimplify.c (oacc_default_clause): New.
1272         (omp_notice_variable): Call it.
1273
1274 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
1275
1276         PR tree-optimization/68305
1277         * tree-vect-slp.c (vect_get_constant_vectors): Support
1278         COND_EXPR with SSA_NAME as a condition.
1279
1280 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1281
1282         * config/visium/visium-protos.h (notice_update_cc): Delete.
1283         (print_operand): Likewise.
1284         (print_operand_address): Likewise.
1285
1286 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
1287
1288         * config/alpha/alpha.h (FUNCTION_VALUE, LIBCALL_VALUE,
1289         FUNCTION_VALUE_REGNO_P): Remove.
1290         * config/alpha/alpha-protos.h (function_value): Remove.
1291         * config/alpha/alpha.c (function_value): Rename to...
1292         (alpha_function_value_1): ... this.  Make static.
1293         (alpha_function_value, alpha_libcall_value,
1294         alpha_function_value_regno_p): New functions.
1295         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1296         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1297
1298 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
1299
1300         * config/alpha/alpha.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1301         * config/alpha/alpha.c (alpha_memory_latency): Make static.
1302         (alpha_register_move_cost, alpha_memory_move_cost): New functions.
1303         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
1304
1305 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1306
1307         PR target/67265
1308         * config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete
1309         assertion on the CFA register.
1310
1311 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
1312
1313         * expr.c (do_store_flag): Expand vector comparison as
1314         VEC_COND_EXPR if vector comparison is not supported by target.
1315
1316 2015-11-12  Renlin Li  <renlin.li@arm.com>
1317
1318         * config/arm/arm.md (addsi3_compare_op2): Make the order of
1319         assembly pattern consistent with constraint order.
1320
1321 2015-11-12  Tom de Vries  <tom@codesourcery.com>
1322
1323         * gen-pass-instances.awk (handle_line): Simplify match regexp.
1324
1325 2015-11-12  Tom de Vries  <tom@codesourcery.com>
1326
1327         * gen-pass-instances.awk (handle_line): Simplify init of
1328         postfix_starts_at.
1329
1330 2015-11-12  Tom de Vries  <tom@codesourcery.com>
1331
1332         * gen-pass-instances.awk (handle_line): Rename var where to
1333         call_starts_at.
1334
1335 2015-11-12  Claudiu Zissulescu  <claziss@synopsys.com>
1336
1337         * config/arc/arc.c (gen_compare_reg): Swap operands also when we
1338         do not expand to rtl.
1339
1340 2015-11-12  Richard Biener  <rguenther@suse.de>
1341
1342         PR tree-optimization/58497
1343         * tree-vect-generic.c: Include gimplify.h.
1344         (tree_vec_extract): Lookup constant/constructor DEFs.
1345         (do_cond): Unshare cond.
1346
1347 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
1348
1349         * config/i386/i386.c (ix86_legitimate_combined_insn): Reject
1350         combined insn if the alignment of vector mode memory operand
1351         is less than ssememalign.
1352
1353 2015-11-12  Tom de Vries  <tom@codesourcery.com>
1354
1355         * gen-pass-instances.awk (handle_line): Print parentheses and
1356         pass_name explicitly.
1357
1358 2015-11-12  Tom de Vries  <tom@codesourcery.com>
1359
1360         * gen-pass-instances.awk (handle_line): Add pass_num, prefix
1361         and postfix vars.
1362
1363 2015-11-12  Tom de Vries  <tom@codesourcery.com>
1364
1365         * gen-pass-instances.awk (handle_line): Add comments.
1366
1367 2015-11-12  Tom de Vries  <tom@codesourcery.com>
1368
1369         * gen-pass-instances.awk (handle_line): Rename len_of_end to
1370         len_of_close.
1371
1372 2015-11-12  Tom de Vries  <tom@codesourcery.com>
1373
1374         * gen-pass-instances.awk (handle_line): Add len_of_call variable.
1375
1376 2015-11-12  Tom de Vries  <tom@codesourcery.com>
1377
1378         * gen-pass-instances.awk (handle_line): Restructure using early-out.
1379
1380 2015-11-12  Tom de Vries  <tom@codesourcery.com>
1381
1382         * gen-pass-instances.awk (handle_line): Unify semicolon use.
1383
1384 2015-11-12  Tom de Vries  <tom@codesourcery.com>
1385
1386         * gen-pass-instances.awk (handle_line): Remove unused var line_length.
1387
1388 2015-11-12  Tom de Vries  <tom@codesourcery.com>
1389
1390         * gen-pass-instances.awk: Add emacs indent setting.
1391
1392 2015-11-12  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1393
1394         * fold-const.c (fold_binary_loc) : Move Convert A/B/C to A/(B*C)
1395         to match.pd.
1396         Move Convert A/(B/C) to (A/B)*C to match.pd.
1397         Move Convert C1/(X*C2) into (C1/C2)/X to match.pd.
1398         Move Optimize (X & (-A)) / A where A is a power of 2, to
1399         X >> log2(A) to match.pd.
1400
1401         * match.pd (rdiv (rdiv:s @0 @1) @2): New simplifier.
1402         (rdiv @0 (rdiv:s @1 @2)): New simplifier.
1403         (div (convert? (bit_and @0 INTEGER_CST@1)) INTEGER_CST@2):
1404         New simplifier.
1405         (rdiv REAL_CST@0 (mult @1 REAL_CST@2)): New simplifier.
1406
1407 2015-11-12  Charles Baylis  <charles.baylis@linaro.org>
1408
1409         * config/arm/neon.md: (neon_vld2_lane<mode>): Remove unused max
1410         variable.
1411         (neon_vst2_lane<mode>): Likewise.
1412         (neon_vld3_lane<mode>): Likewise.
1413         (neon_vst3_lane<mode>): Likewise.
1414         (neon_vld4_lane<mode>): Likewise.
1415         (neon_vst4_lane<mode>): Likewise.
1416
1417 2015-11-11  Aditya Kumar  <aditya.k7@samsung.com>
1418             Sebastian Pop  <s.pop@samsung.com>
1419
1420         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
1421         New member codegen_error
1422         (translate_isl_ast_for_loop): Remove call to single_succ_edge and
1423         early return.
1424         (translate_isl_ast_node_user): Early return in case of error.
1425         (translate_isl_ast_to_gimple::translate_isl_ast): Same.
1426         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): New.
1427         (add_parameters_to_ivs_params): Remove macro.
1428         (graphite_regenerate_ast_isl): Add if_region pointer to region.
1429         * graphite-poly.c (new_poly_dr): Remove macro.
1430         (print_pdr): Same.
1431         (new_gimple_poly_bb): Same.
1432         (free_gimple_poly_bb): Same.
1433         (print_scop_params): Same.
1434         * graphite-poly.h (struct poly_dr): Same.
1435         (struct poly_bb): Add new_bb.
1436         (gbb_from_bb): Remove dead code.
1437         (pbb_from_bb): Same.
1438         * graphite-scop-detection.c (parameter_index_in_region_1): Same.
1439         (parameter_index_in_region): Same.
1440         (find_scop_parameters): Same.
1441         (build_cross_bb_scalars_def): New.
1442         (build_cross_bb_scalars_use): New.
1443         (graphite_find_cross_bb_scalar_vars): New
1444         (try_generate_gimple_bb): Reads and Writes.
1445         (build_alias_set): Move.
1446         (gather_bbs::before_dom_children): Gather bbs visited.
1447         (build_scops): call build_alias_set.
1448         * graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Delete.
1449         (remove_simple_copy_phi): Delete.
1450         (remove_invariant_phi): Delete.
1451         (simple_copy_phi_p): Delete.
1452         (reduction_phi_p): Delete.
1453         (isl_id_for_dr): Remove unused param.
1454         (parameter_index_in_region_1): Remove macro usage.
1455         (set_scop_parameter_dim): Same.
1456         (add_param_constraints): Same.
1457         (add_conditions_to_constraints): Same
1458         (build_scop_iteration_domain): Same.
1459         (pdr_add_alias_set): Comment.
1460         (add_scalar_version_numbers): New.
1461         (build_poly_dr): ISL id.
1462         (build_scop_drs): Move.
1463         (build_poly_sr_1): Same.
1464         (insert_stmts): Remove.
1465         (build_poly_sr): New.
1466         (new_pbb_from_pbb): Delete.
1467         (insert_out_of_ssa_copy_on_edge): Delete.
1468         (create_zero_dim_array): Delete.
1469         (scalar_close_phi_node_p): Delete.
1470         (propagate_expr_outside_region): Delete.
1471         (rewrite_close_phi_out_of_ssa): Delete.
1472         (rewrite_phi_out_of_ssa): Delete.
1473         (rewrite_degenerate_phi): Delete.
1474         (rewrite_reductions_out_of_ssa): Delete.
1475         (rewrite_cross_bb_scalar_dependence): Delete.
1476         (handle_scalar_deps_crossing_scop_limits):
1477         (rewrite_cross_bb_scalar_deps): Delete.
1478         (build_poly_scop): Remove calls to out-of-ssa functions.
1479         * graphite.c (graphite_transform_loops): Early return in case of
1480         codegen error.
1481         * sese.c (debug_rename_map_1): Delete.
1482         (debug_rename_map): Delete.
1483         (sese_record_loop): Remove macro.
1484         (build_sese_loop_nests): Same.
1485         (new_sese_info): Same.
1486         (free_sese_info): Same.
1487         (sese_insert_phis_for_liveouts):
1488         (is_loop_closed_ssa_use): New.
1489         (number_of_phi_nodes): New.
1490         (bb_contains_loop_close_phi_nodes): New.
1491         (bb_contains_loop_phi_nodes): New.
1492         (phi_uses_name): New.
1493         (is_valid_rename):
1494         (get_rename): Add old_bb and loop_phi for more precise matching of
1495         exprs.
1496         (set_rename): Pass region.
1497         (later_of_the_two): New.
1498         (gsi_insert_earliest): New.
1499         (collect_all_ssa_names): New.
1500         (substitute_ssa_name): New.
1501         (rename_all_uses): New.
1502         (get_rename_from_scev): New.
1503         (rename_uses): Pass old_bb for more precise matching of exprs.
1504         (get_def_bb_for_const): New.
1505         (get_new_name): New.
1506         (get_loc): New.
1507         (get_edges): New.
1508         (copy_loop_phi_args): New.
1509         (copy_loop_phi_nodes): New.
1510         (get_loop_init_value): New.
1511         (find_init_value): New.
1512         (find_init_value_close_phi): New.
1513         (copy_loop_close_phi_args): New.
1514         (copy_loop_close_phi_nodes): New.
1515         (add_phi_arg_for_new_expr): New.
1516         (copy_cond_phi_args): New.
1517         (copy_cond_phi_nodes): New.
1518         (copy_phi_nodes): New.
1519         (should_copy_to_new_region): New.
1520         (set_rename_for_each_def): New.
1521         (graphite_copy_stmts_from_block): Early return in case of error.
1522         (copy_bb_and_scalar_dependences): Same.
1523         * sese.h (vec_find): New.
1524         (SESE_PARAMS): Delete.
1525         (SESE_LOOPS): Delete.
1526         (SESE_LOOP_NEST): Delete.
1527         (sese_contains_loop): Remove macro usage.
1528         (sese_nb_params): Same.
1529         (struct gimple_poly_bb): Added read_scalar_refs, write_scalar_refs.
1530
1531 2015-11-11  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
1532
1533         * graphite-sese-to-poly.c (build_scop_original_schedule): Call
1534         isl_union_map_add_map on every pbb->schedule.
1535
1536 2015-11-11  Tom de Vries  <tom@codesourcery.com>
1537
1538         * tree-parloops.c (create_parallel_loop): Return void.
1539
1540 2015-11-11  Tom de Vries  <tom@codesourcery.com>
1541
1542         * tree-parloops.c (transform_to_exit_first_loop_alt): Insert new exit
1543         block only when needed.
1544
1545 2015-11-11  Uros Bizjak  <ubizjak@gmail.com>
1546
1547         * config/alpha/alpha-protos.h (print_operand): Remove.
1548         (print_operand_address): Remove.
1549         * config/alpha/alpha.h (PRINT_OPERAND): Remove.
1550         (PRINT_OPERAND_ADDRESS): Remove.
1551         (PRINT_OPERAND_PUNCT_VALID_P): Remove.
1552         * config/alpha/alpha.c (TARGET_PRINT_OPERAND): New hook define.
1553         (TARGET_PRINT_OPERAND_ADDRESS): New hook define.
1554         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
1555         (print_operand_address): Rename to...
1556         (alpha_print_operand_address): ...this and make static.
1557         (print_operand): Rename to...
1558         (alpha_print_operand): ...this and make static.
1559         (alpha_print_operand_punct_valid_p): New static function.
1560
1561 2015-11-11  Richard Biener  <rguenther@suse.de>
1562
1563         * tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment):
1564         Declare.
1565         (vect_analyze_data_refs_alignment): Make loop vect specific.
1566         (vect_verify_datarefs_alignment): Likewise.
1567         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences):
1568         Add missing continue.
1569         (vect_compute_data_ref_alignment): Export.
1570         (vect_compute_data_refs_alignment): Merge into...
1571         (vect_analyze_data_refs_alignment): ... this.
1572         (verify_data_ref_alignment): Split out from ...
1573         (vect_verify_datarefs_alignment): ... here.
1574         (vect_slp_analyze_and_verify_node_alignment): New function.
1575         (vect_slp_analyze_and_verify_instance_alignment): Likewise.
1576         * tree-vect-slp.c (vect_supported_load_permutation_p): Remove
1577         misplaced checks on alignment.
1578         (vect_slp_analyze_bb_1): Add fatal output parameter.  Do
1579         alignment analysis after SLP discovery and do it per instance.
1580         (vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not
1581         bother to re-try using different vector sizes.
1582
1583 2015-11-11  Nathan Sidwell  <nathan@codesourcery.com>
1584             Cesar Philippidis  <cesar@codesourcery.com>
1585
1586         * gimplify.c (enum omp_region_type): Add ORT_ACC,
1587         ORT_ACC_DATA, ORT_ACC_PARALLEL, ORT_ACC_KERNELS.  Adjust ORT_NONE.
1588         (gimple_add_tmp_var): Add ORT_ACC checks.
1589         (gimplify_var_or_parm_decl): Likewise.
1590         (omp_firstprivatize_variable): Likewise. Use ORT_TARGET_DATA as a mask.
1591         (omp_add_variable): Look in outer contexts for openacc and allow
1592         reductions with other sharing. Add ORT_ACC and ORT_TARGET_DATA checks.
1593         (omp_notice_variable, omp_is_private, omp_check_private): Add
1594         ORT_ACC checks.
1595         (gimplify_scan_omp_clauses: Treat ORT_ACC as ORT_WORKSHARE.
1596         Permit private openacc reductions.
1597         (gimplify_oacc_cache): Specify ORT_ACC.
1598         (gimplify_omp_workshare): Adjust OpenACC region types.
1599         (gimplify_omp_target_update): Likewise.
1600         * omp-low.c (scan_sharing_clauses): Remove Openacc firstprivate sorry.
1601         (lower-rec_input_clauses): Don't handle openacc firstprivate
1602         references here.
1603         (lower_omp_target): Emit initializers for openacc firstprivate vars.
1604
1605 2015-11-11  Eric Botcazou  <ebotcazou@adacore.com>
1606
1607         PR target/67265
1608         * ira.c (ira_setup_eliminable_regset): Do not necessarily create the
1609         frame pointer for stack checking if non-call exceptions aren't used.
1610         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
1611
1612 2015-11-11  Segher Boessenkool  <segher@kernel.crashing.org>
1613
1614         * simplify-rtx.c (simplify_truncation): Simplify TRUNCATE of AND of
1615         [LA]SHIFTRT.
1616
1617 2015-11-11  Martin Liska  <mliska@suse.cz>
1618             Richard Biener  <rguenther@suse.de>
1619
1620         PR rtl-optimization/68287
1621         * lra-lives.c (lra_create_live_ranges_1): Reserve the right
1622         number of elements.
1623
1624 2015-11-11  Simon Dardis  <simon.dardis@imgtec.com>
1625
1626         * config/mips/mips.c (mips_breakable_sequence_p): New function.
1627         (mips_break_sequence): New function.
1628         (mips_reorg_process_insns): Use them. Use compact branches in selected
1629         situations.
1630
1631 2015-11-11  Alan Lawrence  <alan.lawrence@arm.com>
1632
1633         * fold-const.c (get_array_ctor_element_at_index): Fix whitespace, typo.
1634
1635 2015-11-11  Jiong Wang  <jiong.wang@arm.com>
1636             Jim Wilson  <wilson@gcc.gnu.org>
1637
1638         PR target/67305
1639         * config/arm/arm.md (neon_vector_mem_operand): Return FALSE if strict
1640         be true and eliminable registers mentioned.
1641
1642 2015-11-11  Claudiu Zissulescu  <claziss@synopsys.com>
1643
1644         * common/config/arc/arc-common.c (arc_handle_option): Handle ARCv2
1645         options.
1646         * config/arc/arc-opts.h: Add ARCv2 CPUs.
1647         * config/arc/arc-protos.h (arc_secondary_reload_conv): Prototype.
1648         * config/arc/arc.c (arc_secondary_reload): Handle subreg (reg)
1649         situation, and store instructions with large offsets.
1650         (arc_secondary_reload_conv): New function.
1651         (arc_init): Add ARCv2 options.
1652         (arc_conditional_register_usage): Select the proper register usage
1653         for ARCv2 processors.
1654         (arc_handle_interrupt_attribute): ILINK2 is only valid for ARCv1
1655         architecture.
1656         (arc_compute_function_type): Likewise.
1657         (arc_print_operand): Handle new ARCv2 punctuation characters.
1658         (arc_return_in_memory): ARCv2 ABI returns in registers up to 16 bytes.
1659         (workaround_arc_anomaly, arc_asm_insn_p, arc_loop_hazard): New
1660         function.
1661         (arc_reorg, arc_hazard): Use it.
1662         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __HS__ and __EM__.
1663         (ASM_SPEC): Add ARCv2 options.
1664         (TARGET_NORM): ARC HS has norm instructions by default.
1665         (TARGET_OPTFPE): Use optimized floating point emulation for ARC HS.
1666         (TARGET_AT_DBR_CONDEXEC): Only for ARC600 family.
1667         (TARGET_EM, TARGET_HS, TARGET_V2, TARGET_MPYW, TARGET_MULTI): Define.
1668         (SIGNED_INT16, TARGET_MPY, TARGET_ARC700_MPY, TARGET_ANY_MPY):
1669         Likewise.
1670         (TARGET_ARC600_FAMILY, TARGET_ARCOMPACT_FAMILY): Likewise.
1671         (TARGET_LP_WR_INTERLOCK): Likewise.
1672         * config/arc/arc.md
1673         (commutative_binary_mult_comparison_result_used, movsicc_insn)
1674         (mulsi3, mulsi3_600_lib, mulsidi3, mulsidi3_700, mulsi3_highpart)
1675         (umulsi3_highpart_i, umulsi3_highpart_int, umulsi3_highpart)
1676         (umulsidi3, umulsidi3_700, cstoresi4, simple_return, p_return_i):
1677         Use it for ARCv2.
1678         (mulhisi3, mulhisi3_imm, mulhisi3_reg, umulhisi3, umulhisi3_imm)
1679         (umulhisi3_reg, umulhisi3_reg, mulsi3_v2, nopv, bswapsi2)
1680         (prefetch, divsi3, udivsi3 modsi3, umodsi3, arcset, arcsetltu)
1681         (arcsetgeu, arcsethi, arcsetls, reload_*_load, reload_*_store)
1682         (extzvsi): New pattern.
1683         * config/arc/arc.opt: New ARCv2 options.
1684         * config/arc/arcEM.md: New file.
1685         * config/arc/arcHS.md: Likewise.
1686         * config/arc/constraints.md (C3p): New constraint, accepts 1 and 2
1687         values.
1688         (Cm2): A signed 9-bit integer constant constraint.
1689         (C62): An unsigned 6-bit integer constant constraint.
1690         (C16): A signed 16-bit integer constant constraint.
1691         * config/arc/predicates.md (mult_operator): Add ARCv2 processort.
1692         (short_const_int_operand): New predicate.
1693         * config/arc/t-arc-newlib: Add ARCv2 multilib options.
1694         * doc/invoke.texi: Add documentation for -mcpu=<archs/arcem>
1695         -mcode-density and -mdiv-rem.
1696
1697 2015-11-11  Julia Koval  <julia.koval@intel.com>
1698
1699         * config/i386/i386.c (m_SKYLAKE_AVX512): Fix typo.
1700
1701 2015-11-11  Julia Koval  <julia.koval@intel.com>
1702
1703         * config/i386/i386.c: Handle "skylake" and "skylake-avx512".
1704
1705 2015-11-11  Martin Liska  <mliska@suse.cz>
1706
1707         * gimple-ssa-strength-reduction.c (create_phi_basis):
1708         Use auto_vec.
1709         * passes.c (release_dump_file_name): New function.
1710         (pass_init_dump_file): Used from this function.
1711         (pass_fini_dump_file): Likewise.
1712         * tree-sra.c (convert_callers_for_node): Use xstrdup_for_dump.
1713         * var-tracking.c (vt_initialize): Use pool_allocator.
1714
1715 2015-11-11  Richard Biener  <rguenth@gcc.gnu.org>
1716             Jiong Wang      <jiong.wang@arm.com>
1717
1718         PR tree-optimization/68234
1719         * tree-vrp.c (vrp_visit_phi_node): Extend SCEV check to those loop PHI
1720         node which estimiated to be VR_VARYING initially.
1721
1722 2015-11-11  Robert Suchanek  <robert.suchanek@imgtec.com>
1723
1724         * regname.c (scan_rtx_reg): Check the matching number of consecutive
1725         registers when tying chains.
1726         (build_def_use): Move terminated_this_insn earlier in the function.
1727
1728 2015-11-10  Mike Frysinger  <vapier@gentoo.org>
1729
1730         * configure.ac: Use = with test and not ==.
1731         * configure: Regenerated.
1732
1733 2015-11-11  David Edelsohn  <dje.gcc@gmail.com>
1734
1735         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and
1736         machine asserts.  Update defines for 64 bit.
1737
1738 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
1739
1740         PR target/63870
1741         * config/arm/neon.md (neon_vld1_lane<mode>): Remove error for invalid
1742         lane number.
1743         (neon_vst1_lane<mode>): Likewise.
1744         (neon_vld2_lane<mode>): Likewise.
1745         (neon_vst2_lane<mode>): Likewise.
1746         (neon_vld3_lane<mode>): Likewise.
1747         (neon_vst3_lane<mode>): Likewise.
1748         (neon_vld4_lane<mode>): Likewise.
1749         (neon_vst4_lane<mode>): Likewise.
1750
1751 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
1752
1753         PR target/63870
1754         * config/arm/arm-builtins.c: (arm_load1_qualifiers) Use
1755         qualifier_struct_load_store_lane_index.
1756         (arm_storestruct_lane_qualifiers) Likewise.
1757         * config/arm/neon.md: (neon_vld1_lane<mode>) Reverse lane numbers for
1758         big-endian.
1759         (neon_vst1_lane<mode>) Likewise.
1760         (neon_vld2_lane<mode>) Likewise.
1761         (neon_vst2_lane<mode>) Likewise.
1762         (neon_vld3_lane<mode>) Likewise.
1763         (neon_vst3_lane<mode>) Likewise.
1764         (neon_vld4_lane<mode>) Likewise.
1765         (neon_vst4_lane<mode>) Likewise.
1766
1767 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
1768
1769         PR target/63870
1770         * config/arm/arm-builtins.c (enum arm_type_qualifiers): New enumerator
1771         qualifier_struct_load_store_lane_index.
1772         (builtin_arg): New enumerator NEON_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
1773         (arm_expand_neon_args): New parameter. Remove ellipsis. Handle NEON
1774         argument qualifiers.
1775         (arm_expand_neon_builtin): Handle new NEON argument qualifier.
1776         * config/arm/arm.h (NEON_ENDIAN_LANE_N): New macro.
1777
1778 2015-11-10  Nathan Sidwell  <nathan@codesourcery.com>
1779
1780         * config/nvptx/nvptx.opt (moptimize): New flag.
1781         * config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize
1782         default.
1783         (nvptx_optimize_inner): New.
1784         (nvptx_process_pars): Call it when optimizing.
1785         * doc/invoke.texi (Nvidia PTX Options): Document -moptimize.
1786
1787 2015-11-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1788
1789         * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
1790         Remove redundant code.
1791
1792 2015-11-10  Jeff Law  <law@redhat.com>
1793
1794         * config/ft32/ft32.c (ft32_print_operand): Supply mode to
1795         call to output_address.
1796         * config/moxie/moxie.c (moxie_print_operand_address): Similarly.
1797         Add unnamed machine_mode argument.
1798
1799 2015-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
1800
1801         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add power9 to hosts that
1802         default to 64-bit.
1803
1804 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
1805
1806         * config/i386/i386.md (*movabs<mode>_1): Add explicit
1807         size directives for -masm=intel.
1808         (*movabs<mode>_2): Ditto.
1809
1810 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
1811
1812         * config/i386/i386.c (ix86_print_operand): Remove dead code that
1813         tried to avoid (%rip) for call operands.
1814
1815 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
1816
1817         * config/i386/i386.c (ix86_print_operand_address_as): Add no_rip
1818         argument.  Do not use RIP relative addressing when no_rip is set.
1819         (ix86_print_operand): Update call to ix86_print_operand_address_as.
1820         (ix86_print_operand_address): Ditto.
1821         * config/i386/i386.md (*movabs<mode>_1): Use %P modifier for
1822         absolute movabs operand 0.  Add square braces for -masm=intel.
1823         (*movabs<mode>_2): Ditto for operand 1.
1824
1825 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1826
1827         * config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
1828         combine_vcvtf2i pattern.
1829
1830 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1831
1832         * config/arm/arm.c (neon_valid_immediate): Remove integer
1833         CONST_DOUBLE handling.  It should never occur.
1834
1835 2015-11-10  Matthew Wahab  <matthew.wahab@arm.com>
1836
1837         * config/aarch64/atomics.md (unspecv): Move to iterators.md.
1838         (ATOMIC_LDOP): Likewise.
1839         (atomic_ldop): Likewise.
1840         * config/aarch64/iterators.md (unspecv): Moved from atomics.md.
1841         (ATOMIC_LDOP): Likewise.
1842         (atomic_ldop): Likewise.
1843
1844 2015-11-10  Martin Liska  <mliska@suse.cz>
1845
1846         * alloc-pool.h (allocate_raw): New function.
1847         (operator new (size_t, object_allocator<T> &a)): Use the
1848         function instead of object_allocator::allocate).
1849
1850 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
1851
1852         * config/i386/sse.md (HALFMASKMODE): New attribute.
1853         (DOUBLEMASKMODE): New attribute.
1854         (vec_pack_trunc_qi): New.
1855         (vec_pack_trunc_<mode>): New.
1856         (vec_unpacks_lo_hi): New.
1857         (vec_unpacks_lo_si): New.
1858         (vec_unpacks_lo_di): New.
1859         (vec_unpacks_hi_hi): New.
1860         (vec_unpacks_hi_<mode>): New.
1861
1862 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
1863
1864         * optabs.c (expand_binop_directly): Allow scalar mode for
1865         vec_pack_trunc_optab.
1866         * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
1867         boolean vector producers from pattern sequence when computing VF.
1868         * tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add
1869         vect_recog_mask_conversion_pattern.
1870         (search_type_for_mask): Choose the smallest
1871         type if different size types are mixed.
1872         (build_mask_conversion): New.
1873         (vect_recog_mask_conversion_pattern): New.
1874         (vect_pattern_recog_1): Allow scalar mode for boolean vectype.
1875         * tree-vect-stmts.c (vectorizable_mask_load_store): Support masked
1876         load with pattern.
1877         (vectorizable_conversion): Support boolean vectors.
1878         (free_stmt_vec_info): Allow patterns for statements with no lhs.
1879         * tree-vectorizer.h (NUM_PATTERNS): Increase to 14.
1880
1881 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
1882
1883         * config/i386/i386-protos.h (ix86_expand_sse_movcc): New.
1884         * config/i386/i386.c (ix86_expand_sse_movcc): Make public.
1885         Cast mask to FP mode if required.
1886         * config/i386/sse.md (vcond_mask_<mode><avx512fmaskmodelower>): New.
1887         (vcond_mask_<mode><avx512fmaskmodelower>): New.
1888         (vcond_mask_<mode><sseintvecmodelower>): New.
1889         (vcond_mask_<mode><sseintvecmodelower>): New.
1890         (vcond_mask_v2div2di): New.
1891         (vcond_mask_<mode><sseintvecmodelower>): New.
1892         (vcond_mask_<mode><sseintvecmodelower>): New.
1893
1894 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
1895
1896         * optabs-query.h (get_vcond_mask_icode): New.
1897         * optabs-tree.c (expand_vec_cond_expr_p): Use
1898         get_vcond_mask_icode for VEC_COND_EXPR with mask.
1899         * optabs.c (expand_vec_cond_mask_expr): New.
1900         (expand_vec_cond_expr): Use get_vcond_mask_icode when possible.
1901         * optabs.def (vcond_mask_optab): New.
1902         * tree-vect-patterns.c (vect_recog_bool_pattern): Don't
1903         generate redundant comparison for COND_EXPR.
1904         * tree-vect-stmts.c (vect_is_simple_cond): Allow SSA_NAME
1905         as a condition.
1906         (vectorizable_condition): Likewise.
1907         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
1908         cond_exp with no embedded comparison.
1909         (vect_build_slp_tree_1): Likewise.
1910
1911 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
1912
1913         * config/i386/sse.md (maskload<mode>): Rename to ...
1914         (maskload<mode><sseintvecmodelower>): ... this.
1915         (maskstore<mode>): Rename to ...
1916         (maskstore<mode><sseintvecmodelower>): ... this.
1917         (maskload<mode><avx512fmaskmodelower>): New.
1918         (maskstore<mode><avx512fmaskmodelower>): New.
1919
1920 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
1921
1922         * internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
1923         (expand_MASK_STORE): Adjust to maskstore optab changes.
1924         * optabs-query.c (can_vec_mask_load_store_p): Add MASK_MODE arg.
1925          Adjust to maskload, maskstore optab changes.
1926         * optabs-query.h (can_vec_mask_load_store_p): Add MASK_MODE arg.
1927         * optabs.def (maskload_optab): Transform into convert optab.
1928         (maskstore_optab): Likewise.
1929         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Adjust to
1930         can_vec_mask_load_store_p signature change.
1931         (predicate_mem_writes): Use boolean mask.
1932         * tree-vect-stmts.c (vectorizable_mask_load_store): Adjust to
1933         can_vec_mask_load_store_p signature change.  Allow invariant masks.
1934         (vectorizable_operation): Ignore type precision for boolean vectors.
1935
1936 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
1937
1938         * expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
1939         (const_vector_mask_from_tree): New.
1940         (const_vector_from_tree): Use const_vector_mask_from_tree
1941         for boolean vectors.
1942         * optabs-query.h (get_vec_cmp_icode): New.
1943         * optabs-tree.c (expand_vec_cmp_expr_p): New.
1944         * optabs-tree.h (expand_vec_cmp_expr_p): New.
1945         * optabs.c (vector_compare_rtx): Add OPNO arg.
1946         (expand_vec_cond_expr): Adjust to vector_compare_rtx change.
1947         (expand_vec_cmp_expr): New.
1948         * optabs.def (vec_cmp_optab): New.
1949         (vec_cmpu_optab): New.
1950         * optabs.h (expand_vec_cmp_expr): New.
1951         * tree-vect-generic.c (expand_vector_comparison): Add vector
1952         comparison optabs check.
1953         * tree-vect-loop.c (vect_determine_vectorization_factor):  Ignore mask
1954         operations for VF.  Add mask type computation.
1955         * tree-vect-stmts.c (get_mask_type_for_scalar_type): New.
1956         (vectorizable_comparison): New.
1957         (vect_analyze_stmt): Add vectorizable_comparison.
1958         (vect_transform_stmt): Likewise.
1959         (vect_init_vector): Support boolean vector invariants.
1960         (vect_get_vec_def_for_operand): Add VECTYPE arg.
1961         (vectorizable_condition): Directly provide vectype for invariants
1962         used in comparison.
1963         * tree-vectorizer.h (get_mask_type_for_scalar_type): New.
1964         (enum vect_var_kind): Add vect_mask_var.
1965         (enum stmt_vec_info_type): Add comparison_vec_info_type.
1966         (vectorizable_comparison): New.
1967         (vect_get_vec_def_for_operand): Add VECTYPE arg.
1968         * tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var.
1969         (vect_create_destination_var): Likewise.
1970         * tree-vect-patterns.c (check_bool_pattern): Check fails
1971         if we can vectorize comparison directly.
1972         (search_type_for_mask): New.
1973         (vect_recog_bool_pattern): Support cases when bool pattern check fails.
1974         * tree-vect-slp.c (vect_build_slp_tree_1): Allow
1975         comparison statements.
1976         (vect_get_constant_vectors): Support boolean vector constants.
1977         * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): New.
1978         (ix86_expand_int_vec_cmp): New.
1979         (ix86_expand_fp_vec_cmp): New.
1980         * config/i386/i386.c (ix86_expand_sse_cmp): Allow NULL for
1981         op_true and op_false.
1982         (ix86_int_cmp_code_to_pcmp_immediate): New.
1983         (ix86_fp_cmp_code_to_pcmp_immediate): New.
1984         (ix86_cmp_code_to_pcmp_immediate): New.
1985         (ix86_expand_mask_vec_cmp): New.
1986         (ix86_expand_fp_vec_cmp): New.
1987         (ix86_expand_int_sse_cmp): New.
1988         (ix86_expand_int_vcond): Use ix86_expand_int_sse_cmp.
1989         (ix86_expand_int_vec_cmp): New.
1990         (ix86_get_mask_mode): New.
1991         (TARGET_VECTORIZE_GET_MASK_MODE): New.
1992         * config/i386/sse.md (avx512fmaskmodelower): New.
1993         (vec_cmp<mode><avx512fmaskmodelower>): New.
1994         (vec_cmp<mode><sseintvecmodelower>): New.
1995         (vec_cmpv2div2di): New.
1996         (vec_cmpu<mode><avx512fmaskmodelower>): New.
1997         (vec_cmpu<mode><sseintvecmodelower>): New.
1998         (vec_cmpuv2div2di): New.
1999
2000 2015-11-10  Richard Biener  <rguenther@suse.de>
2001
2002         PR tree-optimization/68240
2003         * tree-ssa-sccvn.c (cond_stmts_equal_p): Handle commutative compares
2004         properly.
2005         (visit_phi): For PHIs with just a single executable edge
2006         take its value directly.
2007         (expressions_equal_p): Handle VN_TOP properly.
2008
2009 2015-11-10  Richard Biener  <rguenther@suse.de>
2010
2011         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
2012         Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF
2013         conservatively.
2014
2015 2015-11-10  Richard Biener  <rguenther@suse.de>
2016
2017         PR tree-optimization/56118
2018         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Make equal
2019         cost favor vectorized version.
2020
2021 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2022
2023         * config/aarch64/aarch64.md (<neg_not_op><mode>cc): New define_expand.
2024         * config/aarch64/iterators.md (NEG_NOT): New code iterator.
2025         (neg_not_op): New code attribute.
2026
2027 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2028
2029         * ifcvt.c (noce_try_inverse_constants): New function.
2030         (noce_process_if_block): Call it.
2031         * optabs.h (emit_conditional_neg_or_complement): Declare prototype.
2032         * optabs.def (negcc_optab, notcc_optab): Declare.
2033         * optabs.c (emit_conditional_neg_or_complement): New function.
2034         * doc/tm.texi (Standard Names): Document negcc, notcc names.
2035
2036 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2037
2038         PR rtl-optimization/68236
2039         * haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
2040         if insn_queue doesn't exist.
2041         (haifa_sched_finish): Reset insn_queue to NULL.
2042
2043 2015-11-10  Robert Suchanek  <robert.suchanek@imgtec.com>
2044
2045         * regrename.c (create_new_chain): Initialize renamed and tied_chain.
2046         (build_def_use): Initialize terminated_this_insn.
2047         (find_best_rename_reg): Pick and check register from the tied chain.
2048         (regrename_do_replace): Mark head as renamed.
2049         (struct du_head *terminated_this_insn). New static variable.
2050         (scan_rtx_reg): Tie chains in move insns.  Set terminated_this_insn.
2051         * regrename.h (struct du_head): Add tied_chain, renamed members.
2052
2053 2015-11-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2054
2055         PR bootstrap/68256
2056         * config/aarch64/aarch64.c (aarch64_use_constant_blocks_p):
2057         Return false.
2058
2059 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2060
2061         PR target/57845
2062         * config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do
2063         not promote the mode for aggregate types.
2064
2065 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
2066
2067         * omp-low.h (replace_oacc_fn_attrib, build_oacc_routine_dims): Declare.
2068         * omp-low.c (build_oacc_routine_dims): New.
2069
2070 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2071
2072         * config/rs6000/constraints.md (wF constraint): New constraints
2073         for power9/toc fusion.
2074         (wG constraint): Likewise.
2075
2076         * config/rs6000/predicates.md (u6bit_cint_operand): New
2077         predicate, recognize 0..63.
2078         (upper16_cint_operand): New predicate for power9 and toc fusion.
2079         (fpr_reg_operand): Likewise.
2080         (toc_fusion_or_p9_reg_operand): Likewise.
2081         (toc_fusion_mem_raw): Likewise.
2082         (toc_fusion_mem_wrapped): Likewise.
2083         (fusion_gpr_addis): If power9 fusion, allow fusion for a larger
2084         address range.
2085         (fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load
2086         instead.
2087         (fusion_addis_mem_combo_load): Add support for power9 fusion of
2088         floating point loads, floating point stores, and gpr stores.
2089         (fusion_addis_mem_combo_store): Likewise.
2090         (fusion_offsettable_mem_operand): Likewise.
2091
2092         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Add declarations.
2093         (emit_fusion_load_store): Likewise.
2094         (fusion_p9_p): Likewise.
2095         (expand_fusion_p9_load): Likewise.
2096         (expand_fusion_p9_store): Likewise.
2097         (emit_fusion_p9_load): Likewise.
2098         (emit_fusion_p9_store): Likewise.
2099         (fusion_wrap_memory_address): Likewise.
2100
2101         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new
2102         elements for power9 fusion.
2103         (rs6000_debug_print_mode): Rework debug information to print more
2104         information about fusion.
2105         (rs6000_init_hard_regno_mode_ok): Setup for power9 fusion support.
2106         (rs6000_legitimate_address_p): Recognize toc fusion as a valid
2107         offsettable memory address.
2108         (rs6000_rtx_costs): Update costs for new ISA 3.0 instructions.
2109         (emit_fusion_gpr_load): Move most of the code from
2110         emit_fusion_gpr_load into emit_fusion-addis that handles both
2111         power8 and power9 fusion.
2112         (emit_fusion_addis): Likewise.
2113         (emit_fusion_load_store): Likewise.
2114         (fusion_wrap_memory_address): Add support for TOC fusion.
2115         (fusion_split_address): Likewise.
2116         (fusion_p9_p): Add support for power9 fusion.
2117         (expand_fusion_p9_load): Likewise.
2118         (expand_fusion_p9_store): Likewise.
2119         (emit_fusion_p9_load): Likewise.
2120         (emit_fusion_p9_store): Likewise.
2121
2122         * config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for
2123         new instructions in ISA 3.0.
2124         (TARGET_CTZ): Likewise.
2125         (TARGET_TOC_FUSION_INT): Macros for power9 fusion support.
2126         (TARGET_TOC_FUSION_FP): Likewise.
2127
2128         * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc
2129         fusion unspecs.
2130         (UNSPEC_FUSION_ADDIS): Likewise.
2131         (QHSI mode iterator): New iterator for power9 fusion.
2132         (GPR_FUSION): Likewise.
2133         (FPR_FUSION): Likewise.
2134         (mod<mode>3): Add support for ISA 3.0 modulus instructions.
2135         (umod<mode>3): Likewise.
2136         (divmod peephole): Likewise.
2137         (udivmod peephole): Likewise.
2138         (ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar
2139         instructions.
2140         (ctz<mode>2_h): Likewise.
2141         (ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction.
2142         (ashdi3_extswsli_dot): Likewise.
2143         (ashdi3_extswsli_dot2): Likewise.
2144         (power9 fusion splitter): New power9/toc fusion support.
2145         (toc_fusionload_<mode>): Likewise.
2146         (toc_fusionload_di): Likewise.
2147         (fusion_gpr_load_<mode>): Update predicate function.
2148         (power9 fusion peephole2s): New power9/toc fusion support.
2149         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
2150         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
2151         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
2152         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
2153         (fusion_p9_<mode>_constant): Likewise.
2154
2155 2015-11-09  Steve Ellcey  <sellcey@imgtec.com>
2156
2157         * optabs.c (prepare_libcall_arg): New function.
2158         (expand_fixed_convert): Add call to prepare_libcall_arg.
2159
2160 2015-11-09  Nikolai Bozhenov  <n.bozhenov@samsung.com>
2161
2162         * sched-int.h (dump_rgn_dependencies_dot): Declare
2163         * sched-rgn.c (dump_rgn_dependencies_dot): New function
2164         * print-rtl.h (print_insn): Add prototype
2165
2166         * haifa-sched.c (setup_sched_dump): Don't redirect output to stderr.
2167         * common.opt (-fsched-verbose): Set default value to 1.
2168         * invoke.texi (-fsched-verbose): Update the option's description.
2169
2170 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2171
2172         * config/visium/visium.h (PRINT_OPERAND): Delete.
2173         (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
2174         (PRINT_OPERAND_ADDRESS): Likewise.
2175         * config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
2176         to...
2177         (visium_print_operand_punct_valid_p): ...this.  New function.
2178         (TARGET_PRINT_OPERAND): Define to...
2179         (print_operand): Rename to...
2180         (visium_print_operand): ...this.
2181         (TARGET_PRINT_OPERAND_ADDRESS): Define to...
2182         (visium_output_address): Rename to...
2183         (visium_print_operand_address): ...this.
2184         (print_operand_address): Delete.
2185
2186 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2187
2188         PR middle-end/68259
2189         * tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>:
2190         Check that the type of the first operand is an aggregate type.
2191
2192 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
2193
2194         * omp-low.c: Fix some OpenACC comment typos.
2195         (lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call.
2196         * omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM,
2197         BUILT_IN_GOACC_GET_NUM_THREADS): Delete.
2198
2199 2015-11-09  Uros Bizjak  <ubizjak@gmail.com>
2200
2201         * config/i386/i386.md (*strmovqi_1): Fix insn enable condition.
2202
2203 2015-11-09  Jeff Law  <law@redhat.com>
2204
2205         * tree-ssanames.c (verify_ssaname_freelists): Simplify check for
2206         being in gimple/ssa form.  Remove redundant check for SSA_NAME.
2207         Fix comment typo.
2208
2209 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2210             Peter Bergner  <bergner@vnet.ibm.com>
2211
2212         * config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
2213         ISA 3.0 (power9).
2214         (-mpower9-vector): Likewise.
2215         (-mpower9-dform): Likewise.
2216         (-mpower9-minmax): Likewise.
2217         (-mtoc-fusion): Likewise.
2218         (-mmodulo): Likewise.
2219         (-mfloat128-hardware): Likewise.
2220
2221         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
2222         mask for ISA 3.0 (power9).
2223         (POWERPC_MASKS): Add new ISA 3.0 switches.
2224         (power9 cpu): Add power9 cpu.
2225
2226         * config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for power9.
2227         (ASM_CPU_SPEC): Likewise.
2228         (EXTRA_SPECS): Likewise.
2229
2230         * config/rs6000/rs6000-opts.h (enum processor_type): Add
2231         PROCESSOR_POWER9.
2232
2233         * config/rs6000/rs6000.c (power9_cost): Initial cost setup for power9.
2234         (rs6000_debug_reg_global): Add support for power9 fusion.
2235         (rs6000_setup_reg_addr_masks): Cache mode size.
2236         (rs6000_option_override_internal): Until real power9 tuning is
2237         added, use -mtune=power8 for -mcpu=power9.
2238         (rs6000_setup_reg_addr_masks): Do not allow pre-increment,
2239         pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
2240         of Altivec registers.
2241         (rs6000_option_override_internal): Add support for ISA 3.0 switches.
2242         (rs6000_loop_align): Add support for power9 cpu.
2243         (rs6000_file_start): Likewise.
2244         (rs6000_adjust_cost): Likewise.
2245         (rs6000_issue_rate): Likewise.
2246         (insn_must_be_first_in_group): Likewise.
2247         (insn_must_be_last_in_group): Likewise.
2248         (force_new_group): Likewise.
2249         (rs6000_register_move_cost): Likewise.
2250         (rs6000_opt_masks): Likewise.
2251
2252         * config/rs6000/rs6000.md (cpu attribute): Add power9.
2253         * config/rs6000/rs6000-tables.opt: Regenerate.
2254
2255         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
2256         _ARCH_PWR9 if power9 support is available.
2257
2258         * config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
2259         * config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.
2260
2261         * configure.ac: Determine if the assembler supports the ISA 3.0
2262         instructions.
2263         * config.in (HAVE_AS_POWER9): Likewise.
2264         * configure: Regenerate.
2265
2266         * doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
2267         switches.
2268
2269 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2270
2271         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
2272         Remove integer CONST_DOUBLE handling.  It should never occur.
2273
2274 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2275
2276         PR target/68129
2277         * config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
2278         * config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE):
2279         Delete VOIDmode case.  Assert that mode is not VOIDmode.
2280         * config/aarch64/predicates.md (const0_operand): Remove const_double
2281         match.
2282
2283 2015-11-09  Martin Liska  <mliska@suse.cz>
2284
2285         * ipa-inline-analysis.c (estimate_function_body_sizes): Call
2286         body_info release function.
2287         * ipa-prop.c (ipa_release_body_info): New function.
2288         (ipa_analyze_node): Call the function.
2289         (ipa_node_params::~ipa_node_params): Release known_csts.
2290         * ipa-prop.h (ipa_release_body_info): Declare.
2291
2292 2015-11-09  Martin Liska  <mliska@suse.cz>
2293
2294         * gcc.c (record_temp_file): Release name string.
2295         * ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead of vec.
2296         * lra-lives.c (free_live_range_list): Utilize
2297         lra_live_range_pool for allocation and deallocation.
2298         (create_live_range): Likewise.
2299         (copy_live_range): Likewise.
2300         (lra_merge_live_ranges): Likewise.
2301         (remove_some_program_points_and_update_live_ranges): Likewise.
2302         (lra_create_live_ranges_1): Release point_freq_vec that can
2303         be not freed from previous iteration of the function.
2304         * tree-eh.c (lower_try_finally_switch): Use auto_vec instead of vec.
2305         * tree-sra.c (sra_deinitialize): Release all vectors in
2306         base_access_vec.
2307         * tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
2308         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
2309         Release edge_info for a removed edge.
2310         (thread_through_all_blocks): Free region vector.
2311         * tree-ssa.h (free_dom_edge_info): Declare function extern.
2312
2313 2015-11-09  Ilya Enkovich  <enkovich.gnu@gmail.com>
2314
2315         * optabs.c (expand_vec_cond_expr): Always get sign from type.
2316         * tree.c (wide_int_to_tree): Support negative values for boolean.
2317         (build_nonstandard_boolean_type): Use signed type for booleans.
2318
2319 2015-11-09  Richard Biener  <rguenther@suse.de>
2320
2321         PR tree-optimization/68248
2322         * tree-vect-generic.c (expand_vector_operations_1): Handle scalar rhs2.
2323
2324 2015-11-09  Richard Biener  <rguenther@suse.de>
2325
2326         PR tree-optimization/56118
2327         * tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare.
2328         * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export.
2329         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New
2330         function.
2331         (vect_slp_analyze_data_ref_dependences): Instead of computing
2332         all dependences of the region DRs just analyze the code motions
2333         SLP vectorization will perform.  Remove SLP instances that
2334         cannot have their store/load motions applied.
2335         (vect_analyze_data_refs): Allow DRs without a vectype
2336         in BB vectorization.
2337
2338 2015-11-09  Julian Brown  <julian@codesourcery.com>
2339
2340         * final.c (output_asm_insn): Pass VOIDmode to output_address.
2341         (output_address): Add MODE argument. Pass to print_operand_address
2342         hook.
2343         * targhooks.c (default_print_operand_address): Add MODE argument.
2344         * targhooks.h (default_print_operand_address): Update prototype.
2345         * output.h (output_address): Update prototype.
2346         * target.def (print_operand_address): Add MODE argument.
2347         * config/vax/vax.c (print_operand_address): Pass VOIDmode to
2348         output_address.
2349         (print_operand): Pass access mode to output_address.
2350         * config/mcore/mcore.c (mcore_print_operand_address): Add MODE
2351         argument.
2352         (mcore_print_operand): Update calls to mcore_print_operand_address.
2353         * config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to
2354         output_address.
2355         * config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to
2356         output_address.
2357         * config/tilegx/tilegx.c (output_memory_reference_mode): Remove
2358         global.
2359         (tilegx_print_operand): Don't set above global. Update calls to
2360         output_address.
2361         (tilegx_print_operand_address): Add MODE argument. Use instead of
2362         output_memory_reference_mode global.
2363         * config/frv/frv.c (frv_print_operand_address): Add MODE argument.
2364         (frv_print_operand): Pass mode to frv_print_operand_address calls.
2365         * config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to
2366         output_address.
2367         * config/cris/cris.c (cris_print_operand_address): Add MODE argument.
2368         (cris_print_operand): Pass mode to output_address calls.
2369         * config/spu/spu.c (print_operand): Pass mode to output_address calls.
2370         * config/aarch64/aarch64.h (aarch64_print_operand)
2371         (aarch64_print_operand_address): Remove prototypes.
2372         * config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete
2373         global.
2374         (aarch64_print_operand): Make static. Update calls to output_address.
2375         (aarch64_print_operand_address): Add MODE argument. Use instead of
2376         aarch64_memory_reference_mode global.
2377         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target
2378         hooks.
2379         * config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
2380         Delete macro definitions.
2381         * config/pa/pa.c (pa_print_operand): Pass mode in output_address calls.
2382         * config/xtensa/xtensa.c (print_operand): Pass mode in
2383         output_address calls.
2384         * config/h8300/h8300.c (h8300_print_operand_address): Add MODE
2385         argument.
2386         (h83000_print_operand): Update calls to h8300_print_operand_address
2387         and output_address.
2388         * config/ia64/ia64.c (ia64_print_operand_address): Add MODE argument.
2389         * config/tilepro/tilepro.c (output_memory_reference_mode): Delete
2390         global.
2391         (tilepro_print_operand): Pass mode to output_address.
2392         (tilepro_print_operand_address): Add MODE argument. Use instead of
2393         output_memory_reference_mode.
2394         * config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer)
2395         (nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode
2396         to output_address calls.
2397         (nvptx_print_operand_address): Add MODE argument.
2398         * config/alpha/alpha.c (print_operand): Pass mode argument in
2399         output_address calls.
2400         * config/m68k/m68k.c (print_operand): Pass mode argument in
2401         output_address call.
2402         * config/avr/avr.c (avr_print_operand_address): Add MODE argument.
2403         (avr_print_operand): Update calls to avr_print_operand_address.
2404         * config/sparc/sparc.c (sparc_print_operand_address): Add MODE
2405         argument. Update calls to output_address.
2406         (sparc_print_operand): Pass mode to output_address.
2407         * config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE
2408         argument.
2409         (iq2000_print_operand): Pass mode in output_address calls.
2410         * config/stormy16/stormy16.c (xstormy16_print_operand_address): Add
2411         MODE argument.
2412         (xstormy16_print_operand): Pass mode to
2413         xstormy16_print_operand_address calls.
2414         * config/mips/mips.c (mips_print_operand): Update calls to
2415         output_address.
2416         (mips_print_operand_address): Add MODE argument.
2417         * config/epiphany/epiphany.c (epiphany_print_operand): Update calls
2418         to output_address.
2419         (epiphany_print_operand_address): Add MODE argument. Add FIXME note.
2420         * config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to
2421         output_address.
2422         * config/rx/rx.c (rx_print_operand_address): Add MODE argument.
2423         (rx_print_operand): Update calls to output_address,
2424         rx_print_operand_address.
2425         * config/nds32/nds32.c (nds32_print_operand): Update calls to
2426         output_address.
2427         (nds32_print_operand_address): Add MODE argument.
2428         * config/rs6000/rs6000.c (print_operand): Pass mem mode to
2429         output_address calls.
2430         * config/c6x/c6x.c (print_address_offset): Pass mem mode to
2431         output_address call.
2432         (c6x_print_address_operand): Update calls to output_address.
2433         (c6x_print_operand_address): Pass mode to above.
2434         * config/v850/v850.c (v850_print_operand_address): Add MODE argument.
2435         (v850_print_operand): Pass mode to v850_print_operand_address,
2436         output_address.
2437         * config/mmix/mmix.c (mmix_print_operand_address): Add MODE argument.
2438         (mmix_print_operand): Pass mode in output_address calls.
2439         * config/sh/sh.c (sh_print_operand_address): Add MODE argument.
2440         (sh_print_operand): Pass mem mode to output_address,
2441         sh_print_operand_address.
2442         * config/cr16/cr16.c (cr16_print_operand_address): Add MODE argument.
2443         (cr16_print_operand): Pass mode to output_address,
2444         cr16_print_operand_address.
2445         * config/bfin/bfin.c (print_address_operand): Pass VOIDmode to
2446         output_address.
2447         * config/microblaze/microblaze.c (print_operand): Pass mode to
2448         output_address.
2449         * config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to
2450         output_address.
2451         (nios2_print_operand_address): Add MODE argument. Update call to
2452         nios2_print_operand_address.
2453         * config/s390/s390.c (print_operand): Pass mode to output_address.
2454         * config/m32c/m32c.c (m32c_print_operand_address): Add MODE argument.
2455         * config/arc/arc.c (arc_print_operand): Pass VOIDmode to
2456         output_address.
2457         * config/arm/arm.c (arm_print_operand_address): Add MODE argument.
2458         Use instead of output_memory_reference_mode.
2459         (output_memory_reference_mode): Delete global.
2460         (arm_print_operand): Pass mem mode to output_address.
2461         * config/m32r/m32r.c (m32r_print_operand_address): Add MODE argument.
2462         (m32r_print_operand): Pass mode to output_address.
2463         * config/msp430/msp430.c (msp430_print_operand_addr): Add MODE
2464         argument.
2465         (msp430_print_operand): Pass mode to msp430_print_operand_addr.
2466         * config/i386/i386.c (ix86_print_operand): Pass mode to
2467         output_address calls.
2468         (ix86_print_operand_address): Add MODE argument.
2469
2470 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2471
2472         PR middle-end/68251
2473         * tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
2474         * tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
2475         * tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
2476         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
2477
2478 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2479
2480         PR rtl-optimization/67749
2481         * ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE
2482         case before emitting the two blocks.  Instead modify the register
2483         in the corresponding final insn of the basic block.
2484
2485 2015-11-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2486
2487         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in
2488         assembler syntax.
2489         Support Solaris ld.
2490         Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1.
2491
2492         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to
2493         HAVE_INITFINI_ARRAY_SUPPORT.
2494         * config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT value.
2495
2496         * configure.ac (gcc_cv_as_sparc_nobits): Remove.
2497         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
2498         Don't check HAVE_AS_SPARC_NOBITS.
2499         Heed SECTION_NOTYPE.
2500
2501         * configure: Regenerate.
2502         * config.in: Regenerate.
2503
2504 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2505
2506         PR middle-end/68253
2507         * fold-const.c (fold_truth_andor_1): Initialize new variables to 0.
2508
2509 2015-11-09  Richard Henderson  <rth@redhat.com>
2510
2511         * config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS,
2512         __SEG_GS, __SEG_TLS.
2513         (ix86_register_pragmas): Register address spaces __seg_fs,
2514         __seg_gs, __seg_tls.
2515         * config/i386/i386-protos.h (enum ix86_address_seg): Remove.
2516         (ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New.
2517         (struct ix86_address): Use addr_space_t instead of ix86_address_seg.
2518         * config/i386/i386.c (ix86_decompose_address): Likewise.
2519         (ix86_legitimate_address_p): Likewise.
2520         (memory_address_length): Likewise.  Check mem address space too.
2521         (ix86_print_operand): Use ix86_print_operand_address_as.
2522         (ix86_print_operand_address_as): Rename from
2523         ix86_print_operand_address, add new addr_space_t parameter.
2524         Validate that either the parameter or the ix86_address segment
2525         is default address space.  Handle ADDR_SPACE_SEG_TLS.
2526         (ix86_print_operand_address): New.
2527         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New.
2528         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New.
2529         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New.
2530         (ix86_addr_space_zero_address_valid): New.
2531         (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
2532         * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants.
2533         * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise.
2534         * config/i386/predicates.md (address_no_seg_operand): Likewise.
2535         (vsib_address_operand): Likewise.
2536         (address_mpx_no_base_operand): Likewise.
2537         (address_mpx_no_index_operand): Likewise.
2538         * doc/extend.texi (x86 Named Address Spaces): New section.
2539
2540         * config/i386/i386.c (ix86_check_no_addr_space): New.
2541         (decide_alg): Add have_as parameter.
2542         (alg_usable_p): Likewise; disable rep algorithms if set.
2543         (ix86_expand_set_or_movmem): Notice if either MEM has a
2544         non-default address space.
2545         (ix86_expand_strlen): Likewise.
2546         * config/i386/i386.md (strmov, strset): Likewise.
2547         (*strmovdi_rex_1): Use ix86_check_no_addr_space.
2548         (*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi,
2549         *strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1,
2550         *rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1,
2551         *cmpstrnqi_1, *strlenqi_1): Likewise.
2552
2553         * config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx.
2554         (*movabs<mode>_2): Likewise.
2555
2556         * dwarf2out.c (modified_type_die): Pass the address space number
2557         through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class.
2558         * target.def (TARGET_ADDR_SPACE_DEBUG): New.
2559         * targhooks.c (default_addr_space_debug): New.
2560         * targhooks.h (default_addr_space_debug): Declare.
2561         * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it.
2562         * doc/tm.texi: Rebuild.
2563
2564         * gimple.c (check_loadstore): Return false when 0 is a valid address.
2565         * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold
2566         null when 0 is valid in the source address space.
2567         * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
2568         * targhooks.c (default_addr_space_zero_address_valid): New.
2569         * targhooks.h (default_addr_space_zero_address_valid): Declare.
2570         * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it.
2571         * doc/tm.texi: Rebuild.
2572
2573         * cselib.c (add_mem_for_addr): Compare address spaces when
2574         matching memories.
2575         (cselib_lookup_mem): Likewise.
2576         * fold-const.c (operand_equal_p): Check address spaces of
2577         pointer types before checking integer constants.
2578
2579         PR tree-opt/66768
2580         * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of
2581         the correct type for the base.
2582
2583 2015-11-09  Jeff Law  <law@redhat.com>
2584
2585         * tree-into-ssa.c (names_to_release): No longer static.
2586         * tree-into-ssa.h (names_to_release): Declare.
2587         * tree-ssanames.c (verify_ssaname_freelists): New debug function.
2588         (release_free_names_and_compact_live_names): New function extracted
2589         from pass_release_ssa_names::execute.
2590         (pass_release_ssa_names::execute): Use it.
2591
2592 2015-11-09  Alan Modra  <amodra@gmail.com>
2593
2594         * gensupport.c (add_mnemonic_string): Make len param a size_t.
2595         (gen_mnemonic_setattr): Make "size" var a size_t.  Use
2596         obstack_blank_fast to shrink obstack.  Cast obstack_next_free
2597         return value.
2598
2599 2015-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
2600
2601         PR rtl-optimization/68182
2602         * bb-reorder.c (reorder_basic_blocks_simple): Treat a conditional
2603         branch with only one successor just like unconditional branches.
2604
2605 2015-11-08  Jeff Law  <law@redhat.com>
2606
2607         * tree-ssa-threadupdate.c (register_jump_thraed): Assert that a
2608         non-FSM path has no edges marked with EDGE_DFS_BACK.
2609         (ssa_redirect_edges): No longer call mark_loop_for_removal.
2610         (thread_single_edge, def_split_header_continue_p): Remove.
2611         (bb_ends_with_multiway_branch): Likewise.
2612         (thread_through_loop_header): Remove cases of threading from
2613         latch through the header.  Simplify knowing we won't thread
2614         the latch.
2615         (thread_through_all_blocks): Simplify knowing that only the FSM
2616         threader needs to handle backedges.
2617
2618 2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
2619
2620         * doc/extend.texi (type attributes): Document scalar_storage_order.
2621         (Structure-Packing Pragmas): Rename into...
2622         (Structure-Layout Pragmas): ...this.  Document scalar_storage_order.
2623         * doc/invoke.texi (C Dialect Options): Document -fsso-struct
2624         (Warnings): Document -Wno-scalar-storage-order.
2625         * flag-types.h (enum scalar_storage_order_kind): New enumeration.
2626         * calls.c (store_unaligned_arguments_into_pseudos): Adjust calls to
2627         extract_bit_field and store_bit_field.
2628         (initialize_argument_information): Adjust call to store_expr.
2629         (load_register_parameters): Adjust call to extract_bit_field.
2630         * expmed.c (check_reverse_storage_order_support): New function.
2631         (check_reverse_float_storage_order_support): Likewise.
2632         (flip_storage_order): Likewise.
2633         (store_bit_field_1): Add REVERSE parameter.  Flip the storage order
2634         of the value if it is true.  Pass REVERSE to recursive call after
2635         adjusting the target offset.
2636         Do not use extraction or movstrict instruction if REVERSE is true.
2637         Pass REVERSE to store_fixed_bit_field.
2638         (store_bit_field): Add REVERSE parameter and pass to it to above.
2639         (store_fixed_bit_field): Add REVERSE parameter and pass to it to
2640         store_split_bit_field and store_fixed_bit_field_1.
2641         (store_fixed_bit_field_1):  Add REVERSE parameter.  Flip the storage
2642         order of the value if it is true and adjust the target offset.
2643         (store_split_bit_field): Add REVERSE parameter and pass it to
2644         store_fixed_bit_field.  Adjust the target offset if it is true.
2645         (extract_bit_field_1): Add REVERSE parameter.  Flip the storage order
2646         of the value if it is true.  Pass REVERSE to recursive call after
2647         adjusting the target offset.
2648         Do not use extraction or subreg instruction if REVERSE is true.
2649         Pass REVERSE to extract_fixed_bit_field.
2650         (extract_bit_field): Add REVERSE parameter and pass to it to above.
2651         (extract_fixed_bit_field): Add REVERSE parameter and pass to it to
2652         extract_split_bit_field and extract_fixed_bit_field_1.
2653         (extract_fixed_bit_field_1): Add REVERSE parameter.  Flip the storage
2654         order of the value if it is true and adjust the target offset.
2655         (extract_split_bit_field): Add REVERSE parameter and pass it to
2656         extract_fixed_bit_field.  Adjust the target offset if it is true.
2657         * expmed.h (flip_storage_order): Declare.
2658         (store_bit_field): Adjust prototype.
2659         (extract_bit_field): Likewise.
2660         * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
2661         (emit_group_store): Adjust call to store_bit_field.
2662         (copy_blkmode_from_reg): Likewise.
2663         (copy_blkmode_to_reg): Likewise.
2664         (write_complex_part): Likewise.
2665         (read_complex_part): Likewise.
2666         (optimize_bitfield_assignment_op): Add REVERSE parameter.  Assert
2667         that it isn't true if the target is a register.
2668         <PLUS_EXPR>: If it is, do not optimize unless bitsize is equal to 1,
2669         and flip the storage order of the value.
2670         <BIT_IOR_EXPR>: Flip the storage order of the value.
2671         (get_bit_range): Adjust call to get_inner_reference.
2672         (expand_assignment): Adjust calls to get_inner_reference, store_expr,
2673         optimize_bitfield_assignment_op and store_field.  Handle MEM_EXPRs
2674         with reverse storage order.
2675         (store_expr_with_bounds): Add REVERSE parameter and pass it to
2676         recursive calls and call to store_bit_field.  Force the value into a
2677         register if it is true and then flip the storage order of the value.
2678         (store_expr): Add REVERSE parameter and pass it to above.
2679         (categorize_ctor_elements_1): Adjust call to
2680         initializer_constant_valid_p.
2681         (store_constructor_field): Add REVERSE parameter and pass it to
2682         recursive calls and call to store_field.
2683         (store_constructor): Add REVERSE parameter and pass it to calls to
2684         store_constructor_field and store_expr.  Set it to true for an
2685         aggregate type with TYPE_REVERSE_STORAGE_ORDER.
2686         (store_field): Add REVERSE parameter and pass it to recursive calls
2687         and calls to store_expr and store_bit_field.  Temporarily flip the
2688         storage order of the value with record type and integral mode and
2689         adjust the shift if it is true.
2690         (get_inner_reference): Add PREVERSEP parameter and set it to true
2691         upon encoutering a reference with reverse storage order.
2692         (expand_expr_addr_expr_1): Adjust call to get_inner_reference.
2693         (expand_constructor): Adjust call to store_constructor.
2694         (expand_expr_real_2) <CASE_CONVERT>: Pass TYPE_REVERSE_STORAGE_ORDER
2695         of the union type to store_expr in the MEM case and assert that it
2696         isn't set in the REG case.  Adjust call to store_field.
2697         (expand_expr_real_1) <MEM_REF>: Handle reverse storage order.
2698         <normal_inner_ref>: Add REVERSEP variable and adjust calls to
2699         get_inner_reference and extract_bit_field. Temporarily flip the
2700         storage order of the value with record type and integral mode and
2701         adjust the shift if it is true.  Flip the storage order of the value
2702         at the end if it is true.
2703         <VIEW_CONVERT_EXPR>: Add REVERSEP variable and adjust call to
2704         get_inner_reference.  Do not fetch an inner reference if it is true.
2705         * expr.h (store_expr_with_bounds): Ajust prototype.
2706         (store_expr): Likewise.
2707         * fold-const.c (make_bit_field_ref): Add REVERSEP parameter and set
2708         REF_REVERSE_STORAGE_ORDER on the reference according to it.
2709         (optimize_bit_field_compare): Deal with reverse storage order.
2710         Adjust calls to get_inner_reference and make_bit_field_ref.
2711         (decode_field_reference): Add PREVERSEP parameter and adjust call to
2712         get_inner_reference.
2713         (fold_truth_andor_1): Deal with reverse storage order.  Adjust calls
2714         to decode_field_reference and make_bit_field_ref.
2715         (fold_unary_loc) <CASE_CONVERT>: Adjust call to get_inner_reference.
2716         <VIEW_CONVERT_EXPR>: Propagate the REF_REVERSE_STORAGE_ORDER flag.
2717         (fold_comparison): Adjust call to get_inner_reference.
2718         (split_address_to_core_and_offset): Adjust call to
2719         get_inner_reference.
2720         * gimple-expr.c (useless_type_conversion_p): Return false for array
2721         types with different TYPE_REVERSE_STORAGE_ORDER flag.
2722         * gimplify.c (gimplify_expr) <MEM_REF>: Propagate the
2723         REF_REVERSE_STORAGE_ORDER flag.
2724         * lto-streamer-out.c (hash_tree): Deal with TYPE_REVERSE_STORAGE_ORDER.
2725         * output.h (assemble_real): Adjust prototype.
2726         * print-tree.c (print_node): Convey TYPE_REVERSE_STORAGE_ORDER.
2727         * stor-layout.c (finish_record_layout): Propagate the
2728         TYPE_REVERSE_STORAGE_ORDER flag to the variants.
2729         * tree-core.h (TYPE_REVERSE_STORAGE_ORDER): Document.
2730         (TYPE_SATURATING): Adjust.
2731         (REF_REVERSE_STORAGE_ORDER): Document.
2732         * tree-dfa.c (get_ref_base_and_extent): Add PREVERSE parameter and
2733         set it to true upon encoutering a reference with reverse storage order.
2734         * tree-dfa.h (get_ref_base_and_extent): Adjust prototype.
2735         * tree-inline.c (remap_gimple_op_r): Propagate the
2736         REF_REVERSE_STORAGE_ORDER flag.
2737         (copy_tree_body_r): Likewise.
2738         * tree-outof-ssa.c (insert_value_copy_on_edge): Adjust call to
2739         store_expr.
2740         * tree-streamer-in.c (unpack_ts_base_value_fields): Deal with
2741         TYPE_REVERSE_STORAGE_ORDER and REF_REVERSE_STORAGE_ORDER.
2742         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
2743         * tree.c (stabilize_reference) <BIT_FIELD_REF>: Propagate the
2744         REF_REVERSE_STORAGE_ORDER flag.
2745         (verify_type_variant): Deal with TYPE_REVERSE_STORAGE_ORDER.
2746         (gimple_canonical_types_compatible_p): Likewise.
2747         * tree.h (TYPE_REVERSE_STORAGE_ORDER): New flag.
2748         (TYPE_SATURATING): Adjust.
2749         (REF_REVERSE_STORAGE_ORDER): New flag.
2750         (reverse_storage_order_for_component_p): New inline predicate.
2751         (storage_order_barrier_p): Likewise.
2752         (get_inner_reference): Adjust prototype.
2753         * varasm.c: Include expmed.h.
2754         (assemble_variable_contents): Adjust call to output_constant.
2755         (assemble_real): Add REVERSE parameter.  Flip the storage
2756         order of the value if REVERSE is true.
2757         (compare_constant) <CONSTRUCTOR>: Compare TYPE_REVERSE_STORAGE_ORDER.
2758         (assemble_constant_contents): Adjust call to output_constant.
2759         (output_constant_pool_2): Adjust call to assemble_real.
2760         (initializer_constant_valid_p_1) <CONSTRUCTOR>: Deal with
2761         TYPE_REVERSE_STORAGE_ORDER.
2762         (initializer_constant_valid_p): Add REVERSE parameter.
2763         (output_constant): Add REVERSE parameter.
2764         <INTEGER_TYPE>: Flip the storage order of the value if REVERSE is true.
2765         <REAL_TYPE>: Adjust call to assemble_real.
2766         <COMPLEX_TYPE>: Pass it to recursive calls.
2767         <ARRAY_TYPE>: Likewise.  Adjust call to output_constructor.
2768         <RECORD_TYPE>: Likewise.  Adjust call to output_constructor.
2769         (struct oc_local_state): Add REVERSE field.
2770         (output_constructor_array_range): Adjust calls to output_constant.
2771         (output_constructor_regular_field): Likewise.
2772         (output_constructor_bitfield): Adjust call to output_constructor.
2773         Flip the storage order of the value if REVERSE is true.
2774         (output_constructor): Add REVERSE parameter.  Set it to true for an
2775         aggregate type with TYPE_REVERSE_STORAGE_ORDER.  Adjust call to
2776         output_constructor_bitfield.
2777         * varasm.h (initializer_constant_valid_p): Default REVERSE to false.
2778         * asan.c (instrument_derefs): Adjust call to get_inner_reference.
2779         * builtins.c (get_object_alignment_2): Likewise.
2780         * cfgexpand.c (expand_debug_expr): Adjust call to get_inner_reference
2781         and get_ref_base_and_extent.
2782         * dbxout.c (dbxout_expand_expr): Likewise.
2783         * dwarf2out.c (add_var_loc_to_decl): Likewise.
2784         (loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise.
2785         (loc_list_from_tree): Likewise.
2786         (fortran_common): Likewise.
2787         * gimple-fold.c (gimple_fold_builtin_memory_op): Adjust calls to
2788         get_ref_base_and_extent.
2789         (get_base_constructor): Likewise.
2790         (fold_const_aggregate_ref_1): Likewise.
2791         * gimple-laddress.c (pass_laddress::execute): Adjust call to
2792         get_inner_reference.
2793         * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust call to
2794         get_inner_reference and bail out on reverse storage order.
2795         * ifcvt.c (noce_emit_move_insn): Adjust calls to store_bit_field.
2796         * ipa-cp.c (ipa_get_jf_ancestor_result): Adjust call to
2797         build_ref_for_offset.
2798         * ipa-polymorphic-call.c (set_by_invariant): Adjust call to
2799         get_ref_base_and_extent.
2800         (ipa_polymorphic_call_context): Likewise.
2801         (extr_type_from_vtbl_ptr_store): Likewise.
2802         (check_stmt_for_type_change): Likewise.
2803         (get_dynamic_type): Likewise.
2804         * ipa-prop.c (ipa_load_from_parm_agg_1): Adjust call to
2805         get_ref_base_and_extent.
2806         (compute_complex_assign_jump_func): Likewise.
2807         (get_ancestor_addr_info): Likewise.
2808         (compute_known_type_jump_func): Likewise.
2809         (determine_known_aggregate_parts): Likewise.
2810         (ipa_get_adjustment_candidate): Likewise.
2811         (ipa_modify_call_arguments): Set REF_REVERSE_STORAGE_ORDER on MEM_REF.
2812         * ipa-prop.h (ipa_parm_adjustment): Add REVERSE field.
2813         (build_ref_for_offset): Adjust prototype.
2814         * simplify-rtx.c (delegitimize_mem_from_attrs): Adjust call to
2815         get_inner_reference.
2816         * tree-affine.c (tree_to_aff_combination): Adjust call to
2817         get_inner_reference.
2818         (get_inner_reference_aff): Likewise.
2819         * tree-data-ref.c (split_constant_offset_1): Likewise.
2820         (dr_analyze_innermost): Likewise.  Bail out if reverse storage order.
2821         * tree-scalar-evolution.c (interpret_rhs_expr): Adjust call to
2822         get_inner_reference.
2823         * tree-sra.c (struct access): Add REVERSE and move WRITE around.
2824         (dump_access): Print new fields.
2825         (create_access): Adjust call to get_ref_base_and_extent and set the
2826         REVERSE flag according to the result.
2827         (completely_scalarize_record): Set the REVERSE flag.
2828         (scalarize_elem): Add REVERSE parameter.
2829         (build_access_from_expr_1): Preserve storage order barriers.
2830         (build_accesses_from_assign): Likewise.
2831         (build_ref_for_offset): Add REVERSE parameter and set the
2832         REF_REVERSE_STORAGE_ORDER flag accordingly.
2833         (build_ref_for_model): Adjust call to build_ref_for_offset and clear
2834         the REF_REVERSE_STORAGE_ORDER flag if there are components.
2835         (analyze_access_subtree): Likewise.
2836         (create_artificial_child_access): Set the REVERSE flag.
2837         (get_access_for_expr): Adjust call to get_ref_base_and_extent.
2838         (turn_representatives_into_adjustments): Propagate REVERSE flag.
2839         (ipa_sra_check_caller): Adjust call to get_inner_reference.
2840         * tree-ssa-alias.c (ao_ref_base): Adjust call to
2841         get_ref_base_and_extent.
2842         (aliasing_component_refs_p): Likewise.
2843         (stmt_kills_ref_p_1): Likewise.
2844         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
2845         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <MEM_REF>: New.
2846         Return true if reverse storage order.
2847         <BIT_FIELD_REF>: Likewise.
2848         <COMPONENT_REF>: Likewise.
2849         <ARRAY_REF>: Likewise.
2850         <ARRAY_RANGE_REF>: Likewise.
2851         (split_address_cost): Likewise.  Bail out if reverse storage order.
2852         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Adjust call to
2853         get_inner_reference.  Bail out if reverse storage order.
2854         (bswap_replace): Adjust call to get_inner_reference.
2855         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <MEM_REF>: Set
2856         the REF_REVERSE_STORAGE_ORDER flag.
2857         <BIT_FIELD_REF>: Likewise.
2858         * tree-ssa-sccvn.c (vn_reference_eq): Return false on storage order
2859         barriers.
2860         (copy_reference_ops_from_ref) <MEM_REF>: Set REVERSE field according
2861         to the REF_REVERSE_STORAGE_ORDER flag.
2862         <BIT_FIELD_REF>: Likewise.
2863         <VIEW_CONVERT_EXPR>: Set it for storage order barriers.
2864         (contains_storage_order_barrier_p): New predicate.
2865         (vn_reference_lookup_3): Adjust calls to get_ref_base_and_extent.
2866         Punt on storage order barriers if necessary.
2867         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add REVERSE.
2868         * tree-ssa-structalias.c (get_constraint_for_component_ref): Adjust
2869         call to get_ref_base_and_extent.
2870         (do_structure_copy): Likewise.
2871         * tree-vect-data-refs.c (vect_check_gather): Adjust call to
2872         get_inner_reference.
2873         (vect_analyze_data_refs): Likewise.  Bail out if reverse storage order.
2874         * tsan.c (instrument_expr): Adjust call to get_inner_reference.
2875         * ubsan.c (instrument_bool_enum_load): Likewise.
2876         (instrument_object_size): Likewise.
2877         * var-tracking.c (track_expr_p): Adjust call to
2878         get_ref_base_and_extent.
2879         * config/mips/mips.c (r10k_safe_mem_expr_p): Adjust call to
2880         get_inner_reference.
2881         * config/s390/s390.c (s390_expand_atomic): Adjust call to
2882         store_bit_field.
2883         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust call to
2884         extract_bit_field.
2885         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
2886
2887 2015-11-07  Eric Botcazou  <ebotcazou@adacore.com>
2888
2889         * config/sparc/sparc.opt (mfix-at697f): Add final period.
2890
2891 2015-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
2892
2893         PR rtl-optimization/67864
2894         * common/config/i386/i386-common.c (ix86_option_optimization_table)
2895         <OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC
2896         at -Os and up.
2897
2898 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
2899
2900         * trans-mem.c (is_tm_pure_call): Use gimple_call_flags for
2901         internal functions.
2902
2903 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
2904
2905         * builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
2906         * builtins.c, genmatch.c, tree-core.h: Don't undef them here.
2907
2908 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
2909
2910         * internal-fn.def: #undef DEF_INTERNAL_FN at the end.
2911         * internal-fn.c: Don't undef it here.
2912         * tree-core.h: Likewise.
2913
2914 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
2915
2916         * builtins.c (fold_builtin_nan): Delete.
2917         (fold_builtin_memcmp): Remove case where both arguments are constant.
2918         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
2919         (fold_builtin_strspn, fold_builtin_strcspn): Likewise.
2920         (fold_builtin_1): Remove BUILT_IN_NAN* handling.
2921         * fold-const-call.c: Include fold-const.h.
2922         (host_size_t_cst_p): New function.
2923         (build_cmp_result, fold_const_builtin_nan): Likewise.
2924         (fold_const_call_1): New function, split out from...
2925         (fold_const_call): ...here (for all three interfaces).  Handle
2926         constant nan, nans, strlen, strcmp, strncmp, strspn and strcspn.
2927
2928 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
2929
2930         * builtins.c (fold_builtin_bitop, fold_builtin_bswap): Delete.
2931         (fold_builtin_1): Don't call them.
2932         * fold-const-call.c: Include tm.h.
2933         (fold_const_call_ss): New variant for integer-to-integer folds.
2934         (fold_const_call): Call it.
2935
2936 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
2937
2938         * builtins.c (fold_builtin_classify): Move constant cases to...
2939         * fold-const-call.c (fold_const_call_ss): ...here.
2940
2941 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
2942
2943         * builtins.h (c_getstr): Move to...
2944         * fold-const.h (c_getstr): ...here.
2945         * builtins.c (c_getstr): Move to...
2946         * fold-const.c (c_getstr): ...here.
2947
2948 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
2949
2950         * builtins.def (BUILTIN_RINT, BUILTIN_RINTF, BUILTIN_RINTL): Use
2951         ATTR_MATHFN_FPROUNDING rather than ATTR_MATHFN_FPROUNDING_ERRNO.
2952
2953 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
2954
2955         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Try to update
2956         the dominance info; free it if we can't.
2957         (pass_call_cdce::execute): Don't free the dominance info here.
2958
2959 2015-11-06  Jeff Law <law@redhat.com>
2960
2961         * tree-ssa-threadedge.c (dummy_simplify): Remove.
2962         (thread_around_empty_blocks): Remove backedge_seen_p argument.
2963         If we thread to a backedge, then return false.  Update recursive
2964         call to eliminate backedge_seen_p argument.
2965         (thread_through_normal_block): Remove backedge_seen_p argument.
2966         Remove backedge_seen_p argument from calls to
2967         thread_around_empty_blocks.  Remove checks on backedge_seen_p.
2968         If we thread to a backedge, then return 0.
2969         (thread_across_edge): Remove bookkeeping for backedge_seen.  Don't
2970         pass it to thread_through_normal_block or thread_through_empty_blocks.
2971         For joiner handling, if we see a backedge, do not try normal
2972         threading.
2973
2974 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
2975
2976         * graphite-optimize-isl.c (optimize_isl): Call isl_union_map_is_equal.
2977         * graphite-poly.c (new_scop): Initialize original_schedule.
2978         (free_scop): Free original_schedule.
2979         * graphite-poly.h (struct scop): Add field original_schedule.
2980         * graphite-sese-to-poly.c (build_scop_original_schedule): New.
2981         (build_poly_scop): Call build_scop_original_schedule.
2982
2983 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
2984
2985         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
2986         (build_pbb_minimal_scattering_polyhedrons): New.
2987         (build_scop_scattering): Remove.
2988         (build_scop_minimal_scattering): New.
2989         (build_scop_scattering): Call build_pbb_minimal_scattering_polyhedrons.
2990         (build_poly_scop): Call build_scop_minimal_scattering.
2991
2992 2015-11-06  Jeff Law <law@redhat.com>
2993
2994         * cfg-flags.def (IGNORE): New edge flag.
2995         * tree-vrp.c (identify_jump_threads): Mark and clear edges
2996         scheduled for removal with EDGE_IGNORE around call into
2997         jump threader.  Do no thread across edges with EDGE_IGNORE,
2998         but do allow threading across those with EDGE_DFS_BACK.
2999
3000 2015-11-06  David Wohlferd  <dw@LimeGreenSocks.com>
3001
3002         * doc/md.texi (multi-alternative constraints): Don't document
3003         alternatives inherently tied to reload for the user documentation.
3004
3005 2015-11-06  Michael Collison  <michael.collison@linaro.org>
3006             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3007
3008         Revert:
3009         2015-08-01  Michael Collison  <michael.collison@linaro.org
3010                     Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3011
3012         * config/arm/arm.md (*arm_smin_cmp): New pattern.
3013         (*arm_umin_cmp): Likewise.
3014
3015 2015-11-06  Jakub Jelinek  <jakub@redhat.com>
3016
3017         * gimplify.c (gimplify_omp_ordered): Fix up diagnostics wording.
3018         * omp-low.c (check_omp_nesting_restrictions): Update for the
3019         various new OpenMP 4.5 nesting restrictions, clarified
3020         nesting glossary, closely nested region relationship clarified
3021         to mean explicit or implicit parallel regions (target/teams),
3022         use %</%> or %qs where appropriate.
3023
3024 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
3025             Sebastian Pop  <s.pop@samsung.com>
3026
3027         * graphite-scop-detection.c (loop_is_valid_scop): Call
3028         optimize_loop_nest_for_speed_p.
3029
3030 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
3031             Sebastian Pop  <s.pop@samsung.com>
3032
3033         * graphite-optimize-isl.c (optimize_isl): Call
3034         isl_options_set_schedule_maximize_band_depth.
3035
3036 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
3037             Sebastian Pop  <s.pop@samsung.com>
3038
3039         * graphite-scop-detection.c (scop_detection::merge_sese): Entry
3040         and exit edges should not be a part of irreducible loop.
3041         (scop_detection::can_represent_loop_1): Loops should not be
3042         irreducible.
3043         (scop_detection::harmful_stmt_in_region): All the basic block
3044         should belong to reducible loops.
3045
3046 2015-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
3047
3048         * config/aarch64/aarch64-simd-builtins.def: Update builtins
3049         tables: add tbl3v16qi, qtbl[34]*, tbx4v16qi, qtbx[34]*.
3050         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): Rename to...
3051         (aarch64_tbl3<mode>) ... this, which supports v16qi too.
3052         (aarch64_tbx4v8qi): Rename to...
3053         aarch64_tbx4<mode>): ... this.
3054         (aarch64_qtbl3<mode>): New pattern.
3055         (aarch64_qtbx3<mode>): New pattern.
3056         (aarch64_qtbl4<mode>): New pattern.
3057         (aarch64_qtbx4<mode>): New pattern.
3058         * config/aarch64/arm_neon.h (vqtbl2_s8, vqtbl2_u8, vqtbl2_p8)
3059         (vqtbl2q_s8, vqtbl2q_u8, vqtbl2q_p8, vqtbl3_s8, vqtbl3_u8)
3060         (vqtbl3_p8, vqtbl3q_s8, vqtbl3q_u8, vqtbl3q_p8, vqtbl4_s8)
3061         (vqtbl4_u8, vqtbl4_p8, vqtbl4q_s8, vqtbl4q_u8, vqtbl4q_p8)
3062         (vqtbx2_s8, vqtbx2_u8, vqtbx2_p8, vqtbx2q_s8, vqtbx2q_u8)
3063         (vqtbx2q_p8, vqtbx3_s8, vqtbx3_u8, vqtbx3_p8, vqtbx3q_s8)
3064         (vqtbx3q_u8, vqtbx3q_p8, vqtbx4_s8, vqtbx4_u8, vqtbx4_p8)
3065         (vqtbx4q_s8, vqtbx4q_u8, vqtbx4q_p8): Rewrite using builtin
3066         functions.
3067
3068 2015-11-06  Mike Stump  <mikestump@comcast.net>
3069
3070         PR debug/66728
3071         * dwarf2out.c (get_full_len): Return a value based upon the actual
3072         precision needed for the value.
3073         (add_const_value_attribute): Use a maximal wide-int for
3074         CONST_WIDE_INTs, not VOIDmode.
3075         (output_die): Don't ever output NULL with printf.
3076
3077         * rtl.h (get_precision of rtx_mode_t): Ensure we never process
3078         BLKmode nor VOIDmode values.
3079
3080 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
3081
3082         * diagnostic-color.c (color_dict): Eliminate "caret"; add "range1"
3083         and "range2".
3084         (parse_gcc_colors): Update comment to describe default GCC_COLORS.
3085         * diagnostic-core.h (warning_at_rich_loc): New declaration.
3086         (error_at_rich_loc): New declaration.
3087         (permerror_at_rich_loc): New declaration.
3088         (inform_at_rich_loc): New declaration.
3089         * diagnostic-show-locus.c (adjust_line): Delete.
3090         (struct point_state): New struct.
3091         (class colorizer): New class.
3092         (class layout_point): New class.
3093         (class layout_range): New class.
3094         (struct line_bounds): New.
3095         (class layout): New class.
3096         (colorizer::colorizer): New ctor.
3097         (colorizer::~colorizer): New dtor.
3098         (layout::layout): New ctor.
3099         (layout::print_source_line): New method.
3100         (layout::print_annotation_line): New method.
3101         (layout::get_state_at_point): New method.
3102         (layout::get_x_bound_for_row): New method.
3103         (diagnostic_show_locus): Reimplement in terms of class layout.
3104         (diagnostic_print_caret_line): Delete.
3105         * diagnostic.c (diagnostic_initialize): Replace
3106         MAX_LOCATIONS_PER_MESSAGE with rich_location::MAX_RANGES.
3107         (diagnostic_set_info_translated): Convert param from location_t
3108         to rich_location *.  Eliminate calls to set_location on the
3109         message in favor of storing the rich_location ptr there.
3110         (diagnostic_set_info): Convert param from location_t to
3111         rich_location *.
3112         (diagnostic_build_prefix): Break out array into...
3113         (diagnostic_kind_color): New variable.
3114         (diagnostic_get_color_for_kind): New function.
3115         (diagnostic_report_diagnostic): Colorize the option_text
3116         using the color for the severity.
3117         (diagnostic_append_note): Update for change in signature of
3118         diagnostic_set_info.
3119         (diagnostic_append_note_at_rich_loc): New function.
3120         (emit_diagnostic): Update for change in signature of
3121         diagnostic_set_info.
3122         (inform): Likewise.
3123         (inform_at_rich_loc): New function.
3124         (inform_n): Update for change in signature of diagnostic_set_info.
3125         (warning): Likewise.
3126         (warning_at): Likewise.
3127         (warning_at_rich_loc): New function.
3128         (warning_n): Update for change in signature of diagnostic_set_info.
3129         (pedwarn): Likewise.
3130         (permerror): Likewise.
3131         (permerror_at_rich_loc): New function.
3132         (error): Update for change in signature of diagnostic_set_info.
3133         (error_n): Likewise.
3134         (error_at): Likewise.
3135         (error_at_rich_loc): New function.
3136         (sorry): Update for change in signature of diagnostic_set_info.
3137         (fatal_error): Likewise.
3138         (internal_error): Likewise.
3139         (internal_error_no_backtrace): Likewise.
3140         (source_range::debug): New function.
3141         * diagnostic.h (struct diagnostic_info): Eliminate field
3142         "override_column".  Add field "richloc".
3143         (struct diagnostic_context): Add field "colorize_source_p".
3144         (diagnostic_override_column): Delete.
3145         (diagnostic_set_info): Convert param from location_t to
3146         rich_location *.
3147         (diagnostic_set_info_translated): Likewise.
3148         (diagnostic_append_note_at_rich_loc): New function.
3149         (diagnostic_num_locations): New function.
3150         (diagnostic_expand_location): Get the location from the
3151         rich_location.
3152         (diagnostic_print_caret_line): Delete.
3153         (diagnostic_get_color_for_kind): New declaration.
3154         * genmatch.c (linemap_client_expand_location_to_spelling_point): New.
3155         (error_cb): Update for change in signature of "error" callback.
3156         (fatal_at): Likewise.
3157         (warning_at): Likewise.
3158         * input.c (linemap_client_expand_location_to_spelling_point): New.
3159         * pretty-print.c (text_info::set_range): New method.
3160         (text_info::get_location): New method.
3161         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): Eliminate this macro.
3162         (struct text_info): Eliminate "locations" array in favor of
3163         "m_richloc", a rich_location *.
3164         (textinfo::set_location): Add a "caret_p" param, and reimplement
3165         in terms of a call to set_range.
3166         (textinfo::get_location): Eliminate inline implementation in favor of
3167         an out-of-line reimplementation.
3168         (textinfo::set_range): New method.
3169         * rtl-error.c (diagnostic_for_asm): Update for change in signature
3170         of diagnostic_set_info.
3171         * tree-diagnostic.c (default_tree_printer): Update for new
3172         "caret_p" param for textinfo::set_location.
3173         * tree-pretty-print.c (percent_K_format): Likewise.
3174
3175 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3176
3177         Properly apply.
3178         2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3179         * config/aarch64/aarch64.c
3180         (aarch64_can_use_per_function_literal_pools_p): New.
3181         (aarch64_use_blocks_for_constant_p): Adjust declaration
3182         and use aarch64_can_use_function_literal_pools_p.
3183         (aarch64_select_rtx_section): Update.
3184
3185 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3186
3187         * config/arm/arm-ldmstm.ml: Rewrite to generate unified asm templates.
3188         * config/arm/arm.c (arm_asm_trampoline_template): Make unified asm safe.
3189         (arm_output_multireg_pop): Likewise.
3190         (output_move_double):  Likewise.
3191         (output_move_quad):  Likewise.
3192         (output_return_instruction): Likewise.
3193         (arm_print_operand): Remove support for %( and %. print modifiers.
3194         (arm_output_shift): Make unified asm.
3195         (arm_declare_function_name): Likewise.
3196         * config/arm/arm.h (TARGET_UNIFIED_ASM): Delete.
3197         (ASM_APP_OFF): Adjust.
3198         (ASM_OUTPUT_REG_PUSH): Undo special casing for TARGET_ARM.
3199         (ASM_OUTPUT_REG_POP): Likewise.
3200         * config/arm/arm.md: Adjust uses of %., %(, %)
3201         * config/arm/sync.md: Likewise.
3202         * config/arm/thumb2.md: Likewise.
3203         * config/arm/ldmstm.md: Regenerate.
3204         * config/arm/arm.opt (masm-unified-syntax): Do not special case Thumb.
3205         * doc/invoke.texi (masm-unified-syntax): Update documentation.
3206
3207 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
3208
3209         * input.c (dump_line_table_statistics): Dump stats on adhoc table.
3210
3211 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
3212
3213         * tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
3214         add OEP_MATCH_SIDE_EFFECTS.
3215         * fold-const.c (operand_equal_p): Update documentation; handle
3216         OEP_MATCH_SIDE_EFFECTS.
3217         * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Use
3218         OEP_MATCH_SIDE_EFFECTS.
3219
3220 2015-11-06  Benedikt Huber  <benedikt.huber@theobroma-systems.com>
3221             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
3222
3223         * config/aarch64/aarch64-builtins.c: Builtins for rsqrt and rsqrtf.
3224         * config/aarch64/aarch64-protos.h: Declare.
3225         * config/aarch64/aarch64-simd.md: Matching expressions for frsqrte and
3226         frsqrts.
3227         * config/aarch64/aarch64-tuning-flags.def: Added recip_sqrt.
3228         * config/aarch64/aarch64.c: New functions. Emit rsqrt estimation
3229         code when applicable.
3230         * config/aarch64/aarch64.md: Added enum entries.
3231         * config/aarch64/aarch64.opt: Added option -mlow-precision-recip-sqrt.
3232
3233 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
3234
3235         PR ipa/68057
3236         PR ipa/68220
3237         * ipa-polymorphic-call.c
3238         (ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
3239         issue when offset is out of range.
3240         (contains_type_p): Fix out of range check, clear dynamic flag.
3241
3242 2015-11-06  Arnout Vandecappelle  <arnout@mind.be>
3243
3244         * config.gcc (e6500): Fix cpu_is_64bit typo.
3245
3246 2015-11-06  Alan Lawrence  <alan.lawrence@arm.com>
3247
3248         * tree-sra.c (completely_scalarize): Properly handle negative array
3249         indices using offset_int.
3250
3251 2015-11-06  Richard Biener  <rguenther@suse.de>
3252
3253         * alloc-pool.h (object_allocator::allocate): Default-initialize
3254         object.
3255
3256 2015-11-06  Richard Biener  <rguenther@suse.de>
3257
3258         * tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor.
3259         * lra.c (init_reg_info): Truncate copy_vec instead of
3260         re-allocating a new one and leaking the old.
3261         * ipa-inline-analysis.c (estimate_function_body_sizes): Free
3262         bb_infos vec.
3263         * sched-deps.c (sched_deps_finish): Free the dn/dl pools.
3264         * postreload-gcse.c (free_mem): Free modify_mem_list and
3265         canon_modify_mem_list.
3266
3267 2015-11-06  Ilya Enkovich  <enkovich.gnu@gmail.com>
3268
3269         PR tree-optimization/68145
3270         * tree-vect-stmts.c (vectorizable_operation): Fix
3271         determination for booleans.
3272
3273 2015-11-06  Tom de Vries  <tom@codesourcery.com>
3274
3275         * tree-cfg.c (gimple_split_block_before_cond_jump): Split before
3276         cond_jump, instead of split after last nondebug insn before cond_jump.
3277         * tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
3278         returning.
3279
3280 2015-11-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3281
3282         PR target/68088
3283         * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
3284         subregs from accumulator and make sure it's a register.
3285
3286 2015-11-06  Simon Dardis  <simon.dardis@imgtec.com>
3287
3288         * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
3289         low part to scalar.
3290         (reduc_uplus_<mode>): Remove.
3291         (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
3292         loongson_extract_lo_<mode>.
3293         (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
3294         reduc_smax_<mode>, reduc_smax_<mode>, use vec
3295         loongson_extract_lo_<mode>.
3296         (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.
3297
3298 2015-11-06  Richard Biener  <rguenther@suse.de>
3299
3300         * tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
3301         members.
3302         (vect_stmt_in_region_p): Declare.
3303         * tree-vect-slp.c (new_bb_vec_info): Work on a region.
3304         (destroy_bb_vec_info): Likewise.
3305         (vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
3306         (vect_get_and_check_slp_defs): Likewise.
3307         (vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
3308         (vect_slp_bb): Likewise.
3309         * tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
3310         in terms of vect_stmt_in_region_p.
3311         (vect_pattern_recog): Iterate over the BB region.
3312         * tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
3313         * tree-vectorizer.c (vect_stmt_in_region_p): New function.
3314         (pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.
3315         * config/i386/i386.c: Include gimple-iterator.h.
3316         * config/aarch64/aarch64.c: Likewise.
3317
3318 2015-11-06  Alexandre Oliva <aoliva@redhat.com>
3319
3320         PR rtl-optimization/67753
3321         PR rtl-optimization/64164
3322         * function.c (assign_parm_setup_block): Avoid allocating a
3323         stack slot if we don't have an ABI-reserved one.  Emit the
3324         copy to target_reg in the conversion seq if the copy from
3325         entry_parm is in it too.  Don't use the conversion seq to copy
3326         a PARALLEL to a REG or a CONCAT.
3327
3328 2015-11-06  Richard Biener  <rguenther@suse.de>
3329
3330         * tree-hash-traits.h (tree_operand_hash): Provide equal, not
3331         equal_keys.
3332
3333 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
3334             Thomas Schwinge  <thomas@codesourcery.com>
3335             James Norris  <jnorris@codesourcery.com>
3336
3337
3338         * gimplify.c (gimplify_scan_omp_clauses): Add support for
3339         OMP_CLAUSE_TILE.  Update handling of OMP_CLAUSE_INDEPENDENT.
3340         (gimplify_adjust_omp_clauses): Likewise.
3341         * omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
3342         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
3343         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
3344         * tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
3345         (omp_clause_code_name): Likewise.
3346         (walk_tree_1): Handle OMP_CLAUSE_TILE.
3347         * tree.h (OMP_TILE_LIST): New macro.
3348
3349 2015-11-05  Martin Sebor  <msebor@redhat.com>
3350
3351         PR c++/67942
3352         * doc/invoke.texi (-Wplacement-new): Document new option.
3353
3354 2015-11-05  Alan Lawrence  <alan.lawrence@arm.com>
3355
3356         PR tree-optimization/65963
3357         * tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
3358         LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.
3359
3360 2015-11-05  James Greenhalgh  <james.greenhalgh@arm.com>
3361
3362         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
3363         (noce_convert_multiple_sets): Likewise.
3364         (noce_process_if_block): Call them.
3365
3366 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
3367
3368         * gimple-fold.c: Include omp-low.h.
3369         (fold_internal_goacc_dim): New.
3370         (gimple_fold_call): Call it.
3371
3372 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
3373             Ilya Verbin  <ilya.verbin@intel.com>
3374
3375         * builtin-types.def
3376         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
3377         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
3378         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
3379         SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
3380         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
3381         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
3382         (struct cgraph_simd_clone_arg): Adjust comment.
3383         * omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
3384         to GOMP_target_ext.  Add num_teams and thread_limit arguments.
3385         (BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
3386         to GOMP_target_data_ext.
3387         (BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
3388         to GOMP_target_update_ext.
3389         (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
3390         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
3391         BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
3392         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
3393         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
3394         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
3395         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
3396         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
3397         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
3398         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
3399         * tree-core.h (enum omp_clause_schedule_kind): Add
3400         OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
3401         OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
3402         OMP_CLAUSE_SCHEDULE_LAST value.
3403         * tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
3404         OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
3405         * tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
3406         OMP_FOR_CHECK.  Remove comment.
3407         * tree-pretty-print.c (dump_omp_clause): Handle
3408         GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
3409         Simplify.  Print schedule clause modifiers.
3410         * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
3411         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
3412         cases.
3413         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
3414         (omp_default_clause): Tweak for
3415         private/firstprivate/is_device_ptr variables on target
3416         construct and use_device_ptr on target data.
3417         (omp_check_private): Likewise.
3418         (omp_notice_variable): For references check whether what it refers
3419         to has mappable type, rather than the reference itself.
3420         (omp_is_private): Diagnose linear iteration variables on non-simd
3421         constructs.
3422         (omp_no_lastprivate): Return true only for Fortran.
3423         (gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
3424         GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
3425         Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
3426         GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
3427         based array sections.  Use GOMP_MAP_ALWAYS_P.  Fix up handling of
3428         lastprivate and linear when combined with distribute.  Gimplify
3429         variable low-bound for array reduction.  Look through
3430         POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
3431         reductions.
3432         (gimplify_adjust_omp_clauses_1): For implicit references to
3433         variables with reference type and when not ref to scalar or
3434         ref to pointer, map what they refer to using tofrom and
3435         use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
3436         (gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
3437         from target exit data.  Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
3438         Drop OMP_CLAUSE_MAP_PRIVATE support.  Use GOMP_MAP_ALWAYS_P.
3439         Diagnose the same var on both firstprivate and lastprivate on
3440         distribute construct.
3441         (gimplify_omp_for): Fix up handling of predetermined
3442         lastprivate or linear iter vars when combined with distribute.
3443         (find_omp_teams, computable_teams_clause, optimize_target_teams): New
3444         functions.
3445         (gimplify_omp_workshare): Call optimize_target_teams.
3446         * omp-low.c (struct omp_region): Add sched_modifiers field.
3447         (struct omp_for_data): Likewise.
3448         (omp_any_child_fn_dumped): New variable.
3449         (extract_omp_for_data): Fill in sched_modifiers, and mask out
3450         OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
3451         from sched_kind.
3452         (determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
3453         bits of OMP_CLAUSE_SCHED_KIND.
3454         (scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
3455         drop OMP_CLAUSE_MAP_PRIVATE support.  Look through POINTER_PLUS_EXPR
3456         for array section reductions.
3457         (add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
3458         for distribute parallel for, if there are lastprivate clauses on the
3459         for.
3460         (lower_rec_input_clauses): Handle non-zero low-bound on array
3461         section reductions.
3462         (lower_reduction_clauses): Likewise.
3463         (lower_send_clauses): Look through POINTER_PLUS_EXPR
3464         for array section reductions.
3465         (expand_parallel_call): Use nonmonotonic entrypoints for
3466         nonmonotonic: dynamic/guided.
3467         (expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
3468         child_fn if current_function_decl has assembler name set, but child_fn
3469         does not.  Dump the header and IL of the child function when not in SSA
3470         form.
3471         (expand_omp_target): Likewise.  Pass num_teams and thread_limit
3472         arguments to BUILT_IN_GOMP_TARGET.
3473         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
3474         Initialize the extra _looptemp_ clause to fd->loop.n2.
3475         (expand_omp_for): Use nonmonotonic entrypoints for
3476         nonmonotonic: dynamic/guided.  Initialize region->sched_modifiers.
3477         (expand_omp): Clear omp_any_child_fn_dumped.  Dump function header
3478         again if we have dumped any child functions.
3479         (lower_omp_for_lastprivate): Determine the right count variable
3480         for distribute simd, or distribute parallel for{, simd}.
3481         (lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
3482         and GOMP_MAP_ALWAYS_POINTER.  Drop OMP_CLAUSE_MAP_PRIVATE
3483         support.
3484         (simd_clone_clauses_extract): Handle variable step
3485         for references and arguments passed by reference.
3486         (simd_clone_mangle): Mangle ref/uval/val variable steps.
3487         (simd_clone_adjust_argument_types): Handle
3488         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
3489         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
3490         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
3491         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
3492         (simd_clone_linear_addend): New function.
3493         (simd_clone_adjust): Handle variable step like similarly
3494         to constant step, use simd_clone_linear_addend to determine
3495         the actual step at runtime.
3496
3497 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
3498
3499         * target.def (goacc.dim_limit): New hook.
3500         * targhooks.h (default_goacc_dim_limit): Declare.
3501         * doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
3502         * doc/tm.texi: Rebuilt.
3503         * omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
3504         * omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
3505         (default_goacc_dim_limit): New.
3506         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
3507         (nvptx_goacc_dim_limit) New.
3508         (TARGET_GOACC_DIM_LIMIT): Override.
3509         * tree-vrp.c: Include omp-low.h, target.h.
3510         (extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
3511         IFN_GOACC_DIM_POS.
3512
3513 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
3514
3515         * tree-vect-generic.c (do_compare): Use -1 for true
3516         result instead of 1.
3517
3518 2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3519
3520         * config/aarch64/aarch64.c
3521         (aarch64_can_use_per_function_literal_pools_p): New.
3522         (aarch64_use_blocks_for_constant_p): Adjust declaration
3523         and use aarch64_can_use_function_literal_pools_p.
3524         (aarch64_select_rtx_section): Update.
3525
3526 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
3527
3528         * targhooks.c (default_get_mask_mode): Use BLKmode in
3529         case target doesn't support required vector mode.
3530         * stor-layout.c (layout_type); Check for BLKmode.
3531
3532 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
3533             Sebastian Pop  <s.pop@samsung.com>
3534
3535         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
3536         Remove use of parameter_rename_map.
3537         (copy_def): Remove.
3538         (copy_internal_parameters): Remove.
3539         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
3540         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
3541         (free_sese_info): Do not free parameter_rename_map.
3542         (set_rename): Do not use parameter_rename_map.
3543         (rename_uses): Update call to set_rename.
3544         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
3545         * sese.h (parameter_rename_map_t): Remove.
3546         (struct sese_info_t): Remove field parameter_rename_map.
3547
3548 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
3549             Sebastian Pop  <s.pop@samsung.com>
3550
3551         * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
3552         (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
3553         * graphite-scop-detection.c (dot_all_scops_1): Moved out of
3554         anonymous namespace.
3555         * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
3556         (isl_id_for_pbb): Use a buffer of size 10.
3557         (isl_id_for_ssa_name): Same.
3558         * sese.c (set_rename): Add more dumps.
3559
3560 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
3561
3562         * omp-low.c (struct omp_context): Remove reduction_map field.
3563         (lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
3564         (new_omp_context, delete_omp_context, scan_omp_target): Remove
3565         reduction_map handling.
3566         (lower_omp_target): Remove obsolete openacc reduction handling.
3567
3568 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
3569
3570         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.
3571
3572 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
3573             Cesar Philippidis  <cesar@codesourcery.com>
3574
3575         * config/nvptx/nvptx.c: Include gimple headers.
3576         (worker_red_size, worker_red_align, worker_red_name,
3577         worker_red_sym): New.
3578         (nvptx_option_override): Initialize worker reduction buffer.
3579         (nvptx_file_end): Write out worker reduction buffer var.
3580         (nvptx_expand_shuffle, nvptx_expand_worker_addr,
3581         nvptx_expand_cmp_swap): New builtin expanders.
3582         (enum nvptx_builtins): New.
3583         (nvptx_builtin_decls): New.
3584         (nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
3585         (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
3586         (nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
3587         nvptx_lockless_update): New helpers.
3588         (nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
3589         nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
3590         (nvptx_goacc_reduction): New.
3591         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
3592         TARGET_BUILTIN_DECL): Override.
3593         (TARGET_GOACC_REDUCTION): Override.
3594
3595 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
3596             Cesar Philippidis  <cesar@codesourcery.com>
3597
3598         * internal-fn.def (GOACC_REDUCTION): New.
3599         * internal-fn.h (enum ifn_goacc_reduction_kind): New.
3600         * internal-fn.c (expand_GOACC_REDUCTION): New.
3601         * target.def (goacc.reduction): New OpenACC hook.
3602         * targhooks.h (default_goacc_reduction): Declare.
3603         * doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
3604         * doc/tm.texi: Rebuilt.
3605         * omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
3606         scan_sharing_clauses): Remove oacc reduction handling here.
3607         (lower_rec_input_clauses): Don't handle OpenACC reductions here.
3608         (oacc_lower_reduction_var_helper): Delete.
3609         (lower_oacc_reductions): New.
3610         (lower_reduction_clauses): Don't handle OpenACC reductions here.
3611         (lower_oacc_head_tail): Call lower_oacc_reductions.
3612         (oacc_gimple_assign, oacc_init_reduction_array,
3613         oacc_initialize_reduction_data, oacc_finalize_reduction_data,
3614         oacc_process_reduction_data): Delete.
3615         (lower_omp_target): Remove old OpenACC reduction handling.  Insert
3616         dummy OpenACC gang reduction for reductions at outer level.
3617         (oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
3618         (default_goacc_reduction): New.
3619         (execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.
3620
3621 2015-11-04  Martin Liska  <mliska@suse.cz>
3622
3623         * cgraphunit.c (cgraph_node::expand_thunk): Call
3624         allocate_struct_function before init_function_start.
3625         (cgraph_node::expand): Use push_cfun and pop_cfun.
3626         * config/i386/i386.c (ix86_code_end): Call
3627         allocate_struct_function before init_function_start.
3628         * config/rs6000/rs6000.c (rs6000_code_end): Likewise.
3629         * function.c (init_function_start): Move preamble to all
3630         callers.
3631         * passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
3632         (execute_one_pass): Handle newly added TODO_discard_function.
3633         (execute_pass_list_1): Terminate if cfun equals to NULL.
3634         (execute_pass_list): Do not push and pop cfun, expect that
3635         cfun is set.
3636         * tree-pass.h (TODO_discard_function): Define.
3637
3638 2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>
3639
3640         * cfganal.c (inverted_post_order_compute): Remove conditional
3641         compilation, use flag_checking.
3642         * config.in: Regenerate.
3643         * configure: Regenerate.
3644         * configure.ac: Remove ENABLE_CHECKING.
3645         * genconditions.c: Do not #undef ENABLE_CHECKING.
3646         * sese.h (bb_in_region): Comment out broken check.
3647         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove
3648         conditional compilation, use flag_checking.
3649
3650 2015-11-04  Tom de Vries  <tom@codesourcery.com>
3651
3652         PR tree-optimization/67742
3653         * tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type
3654         field.
3655         (push_fields_onto_fieldstack): Handle restrict_pointed_type field.
3656         (create_variable_info_for_1): Add and handle handle_param parameter.
3657         Add restrict handling.
3658         (create_variable_info_for): Call create_variable_info_for_1 with extra
3659         arg.
3660         (make_param_constraints): Drop restrict_name parameter.  Ignore
3661         vi->only_restrict_pointers.
3662         (intra_create_variable_infos): Call create_variable_info_for_1 with
3663         extra arg.  Remove restrict handling.  Call make_param_constraints with
3664         one fewer arg.
3665
3666 2015-11-04  Tom de Vries  <tom@codesourcery.com>
3667
3668         * tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type
3669         variable.
3670
3671 2015-11-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3672
3673         * config/arm/coff.h: Remove.
3674
3675 2015-11-03  Eric Botcazou  <ebotcazou@adacore.com>
3676
3677         * gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
3678         check for aggregate types and beef up comment for mode check.
3679
3680 2015-11-03  Richard Biener  <rguenther@suse.de>
3681
3682         * tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
3683         data references here.
3684         * tree-vect-loop.c: Include cgraph.h.
3685         (vect_analyze_loop_2): Collect data references here.
3686         * tree-vect-slp.c (find_bb_location): Inline ...
3687         (vect_slp_bb): ... here.  Renamed from vect_slp_analyze_bb.
3688         Factor in vect_slp_transform_bb.
3689         (vect_slp_transform_bb): Removed.
3690         (vect_slp_analyze_bb_1): Collect data references here.
3691         * tree-vectorizer.c (pass_slp_vectorize::execute): Call
3692         vect_slp_bb.
3693         * tree-vectorizer.h (vect_slp_bb): Declare.
3694         (vect_slp_analyze_bb): Remove.
3695         (vect_slp_transform_bb): Remove.
3696         (find_bb_location): Remove.
3697         (vect_analyze_data_refs): Remove stmt count reference parameter.
3698
3699 2015-11-03  Evgeny Stupachenko  <evstupac@gmail.com>
3700
3701         * multiple_target.c (create_dispatcher_calls): Add target check
3702         on ifunc.
3703         (create_target_clone): Change assembler name for versioned declarations.
3704
3705 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
3706             Chung-Lin Tang  <cltang@codesourcery.com>
3707
3708         * builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
3709         * omp-low.c (check_omp_nesting_restrictions): Allow
3710         GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
3711         contexts.
3712
3713 2015-11-03  Bilyan Borisov  <bilyan.borisov@arm.com>
3714
3715         * config/aarch64/aarch64-simd-builtins.def (fmulx): New.
3716         * config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
3717         * config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
3718         builtin.
3719         (vmulxq_f32): Likewise.
3720         (vmulx_f64): New.
3721         (vmulxq_f64): Rewrite to call fmulx builtin.
3722         (vmulxs_f32): Likewise.
3723         (vmulxd_f64): Likewise.
3724         (vmulx_lane_f32): Remove.
3725         * config/aarch64/iterators.md (UNSPEC): Add fmulx.
3726
3727 2015-11-03  Alan Lawrence  <alan.lawrence@arm.com>
3728
3729         * config/aarch64/aarch64.md (*movhf_aarch64): Use
3730         aarch64_reg_or_fp_zero for second operand.
3731
3732 2015-11-03  Alexandre Oliva <aoliva@redhat.com>
3733
3734         * gimple-expr.c: Include hash-set.h and rtl.h.
3735         (mark_addressable_queue): New var.
3736         (mark_addressable): Factor actual marking into...
3737         (mark_addressable_1): ... this.  Queue it up during expand.
3738         (mark_addressable_2): New.
3739         (flush_mark_addressable_queue): New.
3740         * gimple-expr.h (flush_mark_addressable_queue): Declare.
3741         * cfgexpand.c: Include gimple-expr.h.
3742         (pass_expand::execute): Flush mark_addressable queue.
3743
3744 2015-11-02  Alexandre Oliva <aoliva@redhat.com>
3745
3746         * tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
3747         bb_no_side_effects_p tests...
3748         (tree_ssa_ifcombine_bb): ... here.
3749
3750         PR tree-optimization/68083
3751         * tree-ssa-ifcombine.c: Include tree-ssa.h.
3752         (bb_no_side_effects_p): Test for undefined uses too.
3753         * tree-ssa.c (gimple_uses_undefined_value_p): New.
3754         * tree-ssa.h (gimple_uses_undefined_value_p): Declare.
3755
3756 2015-11-02  Jeff Law <law@redhat.com>
3757
3758         * tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
3759         cases where the loop latch edge is in the middle of an FSM path.
3760
3761 2015-11-03  Tom de Vries  <tom@codesourcery.com>
3762
3763         * tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
3764         (make_param_constraints): ... this.  Add and handle restrict_name
3765         parameter.  Handle is_full_var case.
3766         (intra_create_variable_infos): Use make_param_constraints.
3767
3768 2015-11-03  Tom de Vries  <tom@codesourcery.com>
3769
3770         * tree-ssa-structalias.c (make_restrict_var_constraints): Replace
3771         make_copy_constraint call with make_constraint_from call.
3772
3773 2015-11-02  Andreas Tobler  <andreast@gcc.gnu.org>
3774
3775         * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
3776         PIE executables.
3777
3778 2015-11-02  Richard Sandiford  <richard.sandiford@arm.com>
3779
3780         * builtins.h (fold_fma): Move to fold-const-call.h.
3781         * builtins.c: Include fold-const-call.h.
3782         (mathfn_built_in_2): New function, split out from...
3783         (mathfn_built_in_1): ...here.
3784         (do_real_to_int_conversion, fold_const_builtin_pow)
3785         (fold_const_builtin_logb, fold_const_builtin_significand)
3786         (fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
3787         (do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
3788         (fold_builtin_sincos): Use fold_const_call to handle constants.
3789         (fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
3790         checks for ERROR_MARK.  Use fold_const_call to handle constant
3791         folds for math functions.
3792         (fold_fma): Move to fold-const-call.c.
3793         * fold-const.c: Include fold-const-call.h.
3794         * Makefile.in (OBJS): Add fold-const-call.o.
3795         (PLUGIN_HEADERS): Add fold-const-call.h.
3796         * realmpfr.h (real_from_mpfr): Allow the format to be specified
3797         directly.
3798         * realmpfr.c (real_from_mpfr): Likewise.
3799         * fold-const-call.h, fold-const-call.c: New files.
3800
3801 2015-11-02  Julian Brown  <julian@codesourcery.com>
3802
3803         * config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
3804         brackets and semicolon.
3805
3806 2015-11-02  Alan Lawrence  <alan.lawrence@arm.com>
3807
3808         Revert:
3809         2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
3810
3811         PR tree-optimization/65963
3812         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
3813         LSHIFT_EXPRs as equivalent MULT_EXPRs.
3814
3815 2015-11-02  Thomas Schwinge  <thomas@codesourcery.com>
3816
3817         PR middle-end/68166
3818         * fold-const.c: Include "md5.h".
3819
3820 2015-11-01  Jeff Law <law@redhat.com>
3821
3822         * vmsdbgout.c: Revert unused header file reduction patch.
3823
3824         * config/mcore/mcore.c: Include regs.h.
3825
3826 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
3827
3828         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.
3829
3830 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
3831
3832         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
3833         same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
3834         live as for using it elsewhere, for TARGET_MINIMAL_TOC.
3835
3836 2015-10-31  Markus Trippelsdorf  <markus@trippelsdorf.de>
3837
3838         * ggc-common.c: Restore needed header for checking=release.
3839
3840 2015-10-31  Tom de Vries  <tom@codesourcery.com>
3841
3842         * fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding.
3843
3844 2015-10-31  Tom de Vries  <tom@codesourcery.com>
3845
3846         * tree-ssa-structalias.c (intra_create_variable_infos): Don't expect
3847         existing varinfo for arguments.
3848
3849 2015-10-31  Tom de Vries  <tom@codesourcery.com>
3850
3851         * tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to
3852         create_function_info_for.  Dump constraints generated during
3853         create_function_info_for. Move intra_create_variable_infos call and
3854         function-return-values-escape bit to ...
3855         (create_function_info_for): ... here, and merge
3856         intra_create_variable_infos call with argument loop.  Add and handle
3857         nonlocal_p parameter.
3858
3859 2015-10-31  Tom de Vries  <tom@codesourcery.com>
3860
3861         * tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
3862         updating is alap, and seperated from preceding code.  Make sure
3863         insert_vi_for_tree is seperated from surrounding code.
3864
3865 2015-10-31  Tom de Vries  <tom@codesourcery.com>
3866
3867         * tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.
3868
3869 2015-10-30  Jeff Law <law@redhat.com>
3870             Nathan Sidwell  <nathan@acm.org>
3871
3872         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused
3873         args.
3874         (MOVE_MAX): Set to 8.
3875
3876 2015-10-30  Cesar Philippidis  <cesar@codesourcery.com>
3877
3878         * cgraph.c: Include context.h for offloading.
3879         * varpool.c: Include context.h and omp-low.h.
3880
3881 2015-10-30  Anatoly Sokolov  <aesok@post.ru>
3882
3883         * rtl.h (contains_symbol_ref_p): Declare.
3884         (SYMBOL_REF_P): Define.
3885         * rtlanal.c (contains_symbol_ref_p: New function.
3886         * lra-constraints.c (contains_symbol_ref_p): Remove.
3887         * var-tracking.c (contains_symbol_ref): Remove.
3888         (track_expr_p): Use contains_symbol_ref_p instead of
3889         contains_symbol_ref.
3890
3891 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
3892
3893         * gimple-fold.c (fold_array_ctor_reference): Move searching code to:
3894         * fold-const.c (get_array_ctor_element_at_index): New.
3895         (fold): Remove binary-search through CONSTRUCTOR, call previous.
3896
3897         * fold-const.h (get_array_ctor_element_at_index): New.
3898
3899 2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>
3900
3901         * Makefile.in (OBJS): Add multiple_target.o.
3902         * attrib.c (make_attribute): Moved from config/i386/i386.c
3903         * config/i386/i386.c (make_attribute): Deleted.
3904         * multiple_target.c (create_dispatcher_calls): New.
3905         (get_attr_len): Ditto.
3906         (get_attr_str): Ditto.
3907         (separate_attrs): Ditto.
3908         (is_valid_asm_symbol): Ditto.
3909         (create_new_asm_name): Ditto.
3910         (create_target_clone): Ditto.
3911         (expand_target_clones): Ditto.
3912         (ipa_target_clone): Ditto.
3913         (ipa_dispatcher_calls): Ditto.
3914         * passes.def (pass_target_clone): Two new ipa passes.
3915         * tree-pass.h (make_pass_target_clone): Ditto.
3916         * doc/extend.texi (target_clones): New attribute description.
3917
3918 2015-10-30  Vladimir Makarov  <vmakarov@redhat.com>
3919
3920         PR rtl-optimization/68106
3921         * lra-remat.c (input_regno_present_p): Process hard regs
3922         explicitly present in machine description insns.
3923         (call_used_input_regno_present_p): Ditto.
3924         (calculate_gen_cands): Ditto.
3925         (do_remat): Ditto.
3926
3927 2015-10-30  Jim Wilson  <jim.wilson@linaro.org>
3928
3929         * config/arm/neon-testgen.ml: Fix comment typo.
3930
3931 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3932
3933         * rtlanal.c (reg_set_p): Expand function comment.
3934
3935 2015-10-30  Andrew MacLeod  <amacleod@redhat.com>
3936
3937         * alias.c: Remove unused headers.
3938         * asan.c: Likewise.
3939         * attribs.c: Likewise.
3940         * auto-inc-dec.c: Likewise.
3941         * auto-profile.c: Likewise.
3942         * bb-reorder.c: Likewise.
3943         * bitmap.c: Likewise.
3944         * bt-load.c: Likewise.
3945         * builtins.c: Likewise.
3946         * caller-save.c: Likewise.
3947         * calls.c: Likewise.
3948         * ccmp.c: Likewise.
3949         * cfg.c: Likewise.
3950         * cfganal.c: Likewise.
3951         * cfgbuild.c: Likewise.
3952         * cfgcleanup.c: Likewise.
3953         * cfgexpand.c: Likewise.
3954         * cfghooks.c: Likewise.
3955         * cfgloop.c: Likewise.
3956         * cfgloopanal.c: Likewise.
3957         * cfgloopmanip.c: Likewise.
3958         * cfgrtl.c: Likewise.
3959         * cgraph.c: Likewise.
3960         * cgraphbuild.c: Likewise.
3961         * cgraphclones.c: Likewise.
3962         * cgraphunit.c: Likewise.
3963         * cilk-common.c: Likewise.
3964         * combine-stack-adj.c: Likewise.
3965         * combine.c: Likewise.
3966         * compare-elim.c: Likewise.
3967         * convert.c: Likewise.
3968         * coverage.c: Likewise.
3969         * cppbuiltin.c: Likewise.
3970         * cprop.c: Likewise.
3971         * cse.c: Likewise.
3972         * cselib.c: Likewise.
3973         * data-streamer-in.c: Likewise.
3974         * data-streamer-out.c: Likewise.
3975         * data-streamer.c: Likewise.
3976         * dbxout.c: Likewise.
3977         * dce.c: Likewise.
3978         * ddg.c: Likewise.
3979         * debug.c: Likewise.
3980         * df-core.c: Likewise.
3981         * df-problems.c: Likewise.
3982         * df-scan.c: Likewise.
3983         * dfp.c: Likewise.
3984         * dojump.c: Likewise.
3985         * dominance.c: Likewise.
3986         * domwalk.c: Likewise.
3987         * double-int.c: Likewise.
3988         * dse.c: Likewise.
3989         * dumpfile.c: Likewise.
3990         * dwarf2asm.c: Likewise.
3991         * dwarf2cfi.c: Likewise.
3992         * dwarf2out.c: Likewise.
3993         * emit-rtl.c: Likewise.
3994         * except.c: Likewise.
3995         * explow.c: Likewise.
3996         * expmed.c: Likewise.
3997         * expr.c: Likewise.
3998         * final.c: Likewise.
3999         * fixed-value.c: Likewise.
4000         * fold-const.c: Likewise.
4001         * function.c: Likewise.
4002         * fwprop.c: Likewise.
4003         * gcse.c: Likewise.
4004         * generic-match-head.c: Likewise.
4005         * ggc-common.c: Likewise.
4006         * gimple-builder.c: Likewise.
4007         * gimple-expr.c: Likewise.
4008         * gimple-fold.c: Likewise.
4009         * gimple-iterator.c: Likewise.
4010         * gimple-low.c: Likewise.
4011         * gimple-match-head.c: Likewise.
4012         * gimple-pretty-print.c: Likewise.
4013         * gimple-ssa-isolate-paths.c: Likewise.
4014         * gimple-ssa-strength-reduction.c: Likewise.
4015         * gimple-streamer-in.c: Likewise.
4016         * gimple-streamer-out.c: Likewise.
4017         * gimple-walk.c: Likewise.
4018         * gimple.c: Likewise.
4019         * gimplify-me.c: Likewise.
4020         * gimplify.c: Likewise.
4021         * godump.c: Likewise.
4022         * graph.c: Likewise.
4023         * graphds.c: Likewise.
4024         * haifa-sched.c: Likewise.
4025         * hw-doloop.c: Likewise.
4026         * ifcvt.c: Likewise.
4027         * init-regs.c: Likewise.
4028         * internal-fn.c: Likewise.
4029         * ipa-chkp.c: Likewise.
4030         * ipa-comdats.c: Likewise.
4031         * ipa-cp.c: Likewise.
4032         * ipa-devirt.c: Likewise.
4033         * ipa-icf-gimple.c: Likewise.
4034         * ipa-icf.c: Likewise.
4035         * ipa-inline-analysis.c: Likewise.
4036         * ipa-inline-transform.c: Likewise.
4037         * ipa-inline.c: Likewise.
4038         * ipa-polymorphic-call.c: Likewise.
4039         * ipa-profile.c: Likewise.
4040         * ipa-prop.c: Likewise.
4041         * ipa-pure-const.c: Likewise.
4042         * ipa-ref.c: Likewise.
4043         * ipa-reference.c: Likewise.
4044         * ipa-split.c: Likewise.
4045         * ipa-utils.c: Likewise.
4046         * ipa-visibility.c: Likewise.
4047         * ipa.c: Likewise.
4048         * ira-build.c: Likewise.
4049         * ira-color.c: Likewise.
4050         * ira-conflicts.c: Likewise.
4051         * ira-costs.c: Likewise.
4052         * ira-emit.c: Likewise.
4053         * ira-lives.c: Likewise.
4054         * ira.c: Likewise.
4055         * jump.c: Likewise.
4056         * langhooks.c: Likewise.
4057         * lcm.c: Likewise.
4058         * lists.c: Likewise.
4059         * loop-doloop.c: Likewise.
4060         * loop-init.c: Likewise.
4061         * loop-invariant.c: Likewise.
4062         * loop-iv.c: Likewise.
4063         * loop-unroll.c: Likewise.
4064         * lower-subreg.c: Likewise.
4065         * lra-assigns.c: Likewise.
4066         * lra-coalesce.c: Likewise.
4067         * lra-constraints.c: Likewise.
4068         * lra-eliminations.c: Likewise.
4069         * lra-lives.c: Likewise.
4070         * lra-remat.c: Likewise.
4071         * lra-spills.c: Likewise.
4072         * lra.c: Likewise.
4073         * lto-cgraph.c: Likewise.
4074         * lto-compress.c: Likewise.
4075         * lto-opts.c: Likewise.
4076         * lto-section-in.c: Likewise.
4077         * lto-section-out.c: Likewise.
4078         * lto-streamer-in.c: Likewise.
4079         * lto-streamer-out.c: Likewise.
4080         * lto-streamer.c: Likewise.
4081         * mcf.c: Likewise.
4082         * mode-switching.c: Likewise.
4083         * modulo-sched.c: Likewise.
4084         * optabs.c: Likewise.
4085         * opts-global.c: Likewise.
4086         * passes.c: Likewise.
4087         * plugin.c: Likewise.
4088         * postreload-gcse.c: Likewise.
4089         * postreload.c: Likewise.
4090         * predict.c: Likewise.
4091         * print-tree.c: Likewise.
4092         * profile.c: Likewise.
4093         * real.c: Likewise.
4094         * realmpfr.c: Likewise.
4095         * recog.c: Likewise.
4096         * ree.c: Likewise.
4097         * reg-stack.c: Likewise.
4098         * regcprop.c: Likewise.
4099         * reginfo.c: Likewise.
4100         * regrename.c: Likewise.
4101         * regstat.c: Likewise.
4102         * reload.c: Likewise.
4103         * reload1.c: Likewise.
4104         * reorg.c: Likewise.
4105         * resource.c: Likewise.
4106         * rtl-chkp.c: Likewise.
4107         * rtl-error.c: Likewise.
4108         * rtlanal.c: Likewise.
4109         * rtlhooks.c: Likewise.
4110         * sanopt.c: Likewise.
4111         * sched-deps.c: Likewise.
4112         * sched-ebb.c: Likewise.
4113         * sched-rgn.c: Likewise.
4114         * sdbout.c: Likewise.
4115         * sel-sched-dump.c: Likewise.
4116         * sel-sched-ir.c: Likewise.
4117         * sel-sched.c: Likewise.
4118         * sese.c: Likewise.
4119         * shrink-wrap.c: Likewise.
4120         * simplify-rtx.c: Likewise.
4121         * stack-ptr-mod.c: Likewise.
4122         * statistics.c: Likewise.
4123         * stmt.c: Likewise.
4124         * stor-layout.c: Likewise.
4125         * store-motion.c: Likewise.
4126         * stringpool.c: Likewise.
4127         * symtab.c: Likewise.
4128         * target-globals.c: Likewise.
4129         * targhooks.c: Likewise.
4130         * toplev.c: Likewise.
4131         * tracer.c: Likewise.
4132         * trans-mem.c: Likewise.
4133         * tree-affine.c: Likewise.
4134         * tree-call-cdce.c: Likewise.
4135         * tree-cfg.c: Likewise.
4136         * tree-cfgcleanup.c: Likewise.
4137         * tree-chkp-opt.c: Likewise.
4138         * tree-chkp.c: Likewise.
4139         * tree-chrec.c: Likewise.
4140         * tree-complex.c: Likewise.
4141         * tree-data-ref.c: Likewise.
4142         * tree-dfa.c: Likewise.
4143         * tree-diagnostic.c: Likewise.
4144         * tree-dump.c: Likewise.
4145         * tree-eh.c: Likewise.
4146         * tree-emutls.c: Likewise.
4147         * tree-if-conv.c: Likewise.
4148         * tree-inline.c: Likewise.
4149         * tree-into-ssa.c: Likewise.
4150         * tree-iterator.c: Likewise.
4151         * tree-loop-distribution.c: Likewise.
4152         * tree-nested.c: Likewise.
4153         * tree-nrv.c: Likewise.
4154         * tree-object-size.c: Likewise.
4155         * tree-outof-ssa.c: Likewise.
4156         * tree-parloops.c: Likewise.
4157         * tree-phinodes.c: Likewise.
4158         * tree-predcom.c: Likewise.
4159         * tree-pretty-print.c: Likewise.
4160         * tree-profile.c: Likewise.
4161         * tree-scalar-evolution.c: Likewise.
4162         * tree-sra.c: Likewise.
4163         * tree-ssa-address.c: Likewise.
4164         * tree-ssa-alias.c: Likewise.
4165         * tree-ssa-ccp.c: Likewise.
4166         * tree-ssa-coalesce.c: Likewise.
4167         * tree-ssa-copy.c: Likewise.
4168         * tree-ssa-dce.c: Likewise.
4169         * tree-ssa-dse.c: Likewise.
4170         * tree-ssa-forwprop.c: Likewise.
4171         * tree-ssa-ifcombine.c: Likewise.
4172         * tree-ssa-live.c: Likewise.
4173         * tree-ssa-loop-ch.c: Likewise.
4174         * tree-ssa-loop-im.c: Likewise.
4175         * tree-ssa-loop-ivcanon.c: Likewise.
4176         * tree-ssa-loop-ivopts.c: Likewise.
4177         * tree-ssa-loop-manip.c: Likewise.
4178         * tree-ssa-loop-niter.c: Likewise.
4179         * tree-ssa-loop-prefetch.c: Likewise.
4180         * tree-ssa-loop-unswitch.c: Likewise.
4181         * tree-ssa-loop.c: Likewise.
4182         * tree-ssa-math-opts.c: Likewise.
4183         * tree-ssa-operands.c: Likewise.
4184         * tree-ssa-phiopt.c: Likewise.
4185         * tree-ssa-phiprop.c: Likewise.
4186         * tree-ssa-pre.c: Likewise.
4187         * tree-ssa-propagate.c: Likewise.
4188         * tree-ssa-reassoc.c: Likewise.
4189         * tree-ssa-scopedtables.c: Likewise.
4190         * tree-ssa-sink.c: Likewise.
4191         * tree-ssa-strlen.c: Likewise.
4192         * tree-ssa-structalias.c: Likewise.
4193         * tree-ssa-tail-merge.c: Likewise.
4194         * tree-ssa-ter.c: Likewise.
4195         * tree-ssa-threadupdate.c: Likewise.
4196         * tree-ssa-uncprop.c: Likewise.
4197         * tree-ssa-uninit.c: Likewise.
4198         * tree-ssa.c: Likewise.
4199         * tree-ssanames.c: Likewise.
4200         * tree-stdarg.c: Likewise.
4201         * tree-streamer-in.c: Likewise.
4202         * tree-streamer-out.c: Likewise.
4203         * tree-streamer.c: Likewise.
4204         * tree-switch-conversion.c: Likewise.
4205         * tree-tailcall.c: Likewise.
4206         * tree-vect-data-refs.c: Likewise.
4207         * tree-vect-generic.c: Likewise.
4208         * tree-vect-loop-manip.c: Likewise.
4209         * tree-vect-loop.c: Likewise.
4210         * tree-vect-patterns.c: Likewise.
4211         * tree-vect-slp.c: Likewise.
4212         * tree-vect-stmts.c: Likewise.
4213         * tree-vectorizer.c: Likewise.
4214         * tree-vrp.c: Likewise.
4215         * tree.c: Likewise.
4216         * tsan.c: Likewise.
4217         * ubsan.c: Likewise.
4218         * value-prof.c: Likewise.
4219         * var-tracking.c: Likewise.
4220         * varasm.c: Likewise.
4221         * varpool.c: Likewise.
4222         * vmsdbgout.c: Likewise.
4223         * vtable-verify.c: Likewise.
4224         * web.c: Likewise.
4225         * wide-int-print.cc: Likewise.
4226         * wide-int.cc: Likewise.
4227         * xcoffout.c: Likewise.
4228
4229 2015-10-30  James Greenhalgh  <james.greenhalgh@arm.com>
4230
4231         * doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship
4232         between pass numbering and execution order.
4233
4234 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4235
4236         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to
4237         check for dependencies.
4238
4239 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
4240
4241         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free
4242         CDI_DOMINATORS.
4243
4244 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
4245
4246         * real.h (format_helper): New.
4247         (real_convert, exact_real_truncate, real_from_string3, real_to_target)
4248         (real_from_target, real_nan, real_2expN, real_value_truncate)
4249         (significand_size, real_from_string2, exact_real_inverse)
4250         (exact_real_inverse, real_powi, real_trunc, real_floor, real_ceil)
4251         (real_round, real_isinteger, real_from_integer): Replace
4252         machine_mode arguments with format_helper arguments.
4253         * real.c (exact_real_inverse, real_from_string2, real_from_string3)
4254         (real_from_integer, real_nan, real_2expN, real_convert)
4255         (real_value_truncate, exact_real_truncate, real_to_target)
4256         (real_from_target, significand_size, real_powi, real_trunc)
4257         (real_floor, real_ceil, real_round, real_isinteger): Replace
4258         machine_mode arguments with format_helper arguments.
4259         (real_to_target_fmt, real_from_target_fmt): Delete.
4260         * dfp.h (decimal_real_convert): Replace mode argument with real_format.
4261         * dfp.c (decimal_to_binary, decimal_real_convert): Replace mode
4262         argument with real_format.
4263         * builtins.c (do_real_to_int_conversion): Update type of fn argument.
4264
4265 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
4266
4267         * fixed-value.c (check_real_for_fixed_mode, fixed_from_string)
4268         (fixed_to_decimal, fixed_convert_from_real)
4269         (real_convert_from_fixed): Fix mode arguments to real_2expN.
4270
4271 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
4272
4273         * real.h (REAL_MODE_FORMAT): Abort if the mode isn't a
4274         SCALAR_FLOAT_MODE_P.
4275
4276 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
4277
4278         * tree-sra.c (scalarizable_type_p): Comment variable-length arrays.
4279         (completely_scalarize): Comment zero-length arrays.
4280         (get_access_replacement): Correct comment re. precondition.
4281
4282 2015-10-30  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
4283
4284         * config/i386/i386.c (get_builtin_code_for_version): Set priority
4285         for PROCESSOR_ZNVER1.
4286         (enum processor_model): Add M_AMDFAM17H_znver1.
4287         (struct arch_names_table): Likewise.
4288         * doc/extend.texi: ADD znver1.
4289
4290 2015-10-30  Richard Biener  <rguenther@suse.de>
4291
4292         * gimple-fold.c (fold_gimple_assign): Do not dispatch to
4293         fold () on single RHSs.  Allow CONSTRUCTORS with trailing
4294         zeros to be folded to VECTOR_CSTs.
4295         * tree.c (build_vector_from_ctor): Handle VECTOR_CST elements.
4296         * fold-const.c (fold): Use build_vector_from_ctor.
4297
4298 2015-10-30  Evandro Menezes  <e.menezes@samsung.com>
4299
4300         * config/aarch64/aarch64.md (*movhf_aarch64): Change the type of
4301         "mov %0.h[0], %1.h[0] to "neon_move".
4302         (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
4303         (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to
4304         "mov_imm".
4305         (*cmovsi_insn_uxtw): Likewise.
4306
4307 2015-10-30  Tom de Vries  <tom@codesourcery.com>
4308
4309         * tree-ssa-structalias.c (ipa_pta_execute): Declare variable from as
4310         unsigned, and initialize, and use initial value instead of hardcoded
4311         constant.  Add generic constraints dumping section.  Don't dump global
4312         initializers constraints dumping section if empty.  Don't update
4313         variable from if unused.
4314
4315 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
4316
4317         * config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert,
4318         flag_checking and/or CHECKING_P to eliminate conditional compilation
4319         on ENABLE_CHECKING.
4320         * config/arm/arm.c (arm_unwind_emit_sequence): Likewise.
4321         * config/bfin/bfin.c (hwloop_optimize): Likewise.
4322         * config/i386/i386.c (ix86_print_operand_address): Likewise.
4323         (output_387_binary_op): Likewise.
4324         * config/ia64/ia64.c (ia64_sched_init, bundling): Likewise.
4325         * config/m68k/m68k.c (m68k_sched_md_init_global): Likewise.
4326         * config/rs6000/rs6000.c (htm_expand_builtin, rs6000_emit_prologue):
4327         Likewise.
4328         * config/rs6000/rs6000.h: Likewise.
4329         * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
4330
4331 2015-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
4332
4333         * config/sh/sh.opt (mfdpic): Add missing period.
4334
4335 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
4336
4337         * config/mcore/mcore.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
4338         BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P,
4339         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
4340         * config/mcore/mcore.c (mcore_reg_ok_for_base_p,
4341         mcore_base_register_rtx_p, mcore_legitimate_index_p,
4342         mcore_legitimate_address_p): New functions.
4343         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
4344
4345 2015-10-29  Jeff Law  <law@redhat.com>
4346
4347         * tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
4348         method.
4349         * tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove.
4350         * tree-ssa-threadedge.c
4351         (record_temporary_equivalences_from_stmts_at_dest): Remove
4352         backedge_seen argument and associated code which invalidated
4353         equivalences based on the value of that argument.
4354         (thread_through_normal_block): Corresponding changes.
4355
4356 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
4357
4358         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this
4359         function earlier in the file.
4360         (first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of
4361         df_regs_ever_live_p.
4362
4363 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
4364
4365         * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
4366         by ignoring it.
4367
4368 2015-10-29  Richard Henderson  <rth@redhat.com>
4369
4370         PR target/68124
4371         PR rtl-opt/67609
4372         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
4373         sse check to the exact conditions of PR 67609.
4374
4375 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
4376
4377         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Split libfunc
4378         setup into 3 functions: init_float128_ibm, init_float128_ieee, and
4379         rs6000_init_libfuncs. If -mfloat128, add IFmode functions for all
4380         of the traditional names that TFmode uses for handling IEEE
4381         extended double. If -mfloat128, add KFmode functions for all of
4382         the emulation functions. If -mabi=ieeelongdouble and -mfloat128,
4383         make TFmode use the same emulation functions as KFmode.
4384         (init_float128_ibm): Likewise.
4385         (init_float128_ieee): Likewise.
4386         (rs6000_generate_compare): For IEEE 128-bit floating point
4387         comparisons, call the unordered comparison function instead of the
4388         ordered comparison function.
4389         (rs6000_expand_float128_convert): Deal with operands that are
4390         memory operands. Restructure the code to use a switch statement on
4391         the mode. Add support for TFmode defaulting to either IBM extended
4392         double or IEEE 128-bit floating point. If the underlying types are
4393         the same, use a move instead of a conversion function.
4394         (TARGET_C_MODE_FOR_SUFFIX): Define 'q' and 'Q' as the suffix to
4395         use for IEEE 128-bit floating point constants with -mfloat128.
4396         (rs6000_c_mode_for_suffix): Likewise.
4397         (TARGET_INVALID_BINARY_OP): Do not allow inter-mixing of IEEE
4398         128-bit floating point with IBM extended double floating point.
4399         (rs6000_invalid_binary_op): Likewise.
4400         (rs6000_gen_le_vsx_permute): On little endian systems generate a
4401         ROTATE insn instead of VEC_SELECT for IEEE 128-bit floating point
4402         types that can go in vector registers.
4403         (chain_contains_only_swaps): Properly swap IEEE 128-bit floating
4404         point types that can go in vector registers on little endian
4405         PowerPC systems.
4406         (mark_swaps_for_removal): Likewise.
4407         (rs6000_analyze_swaps): Likewise.
4408         (rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point.
4409
4410         * config/rs6000/rs6000.md (FLOAT128_SFDFTF): Delete iterator,
4411         rework IEEE 128-bit floating point insns to deal with TFmode being
4412         either IBM extended double or IEEE 128-bit floating point.
4413         (IFKF): Likewise.
4414         (IBM128): Update iterator to add condition that the mode is IBM
4415         extended double.
4416         (IEEE128): New iterator for IEEE 128-bit floating point.
4417         (TFIFKF): Rename TFIFKF iterator to FLOAT128.
4418         (FLOAT128): Likewise.
4419         (signbit<mode>2): FLOAT128_IBM_P condition test moved into IBM128
4420         iterator.
4421         (neg<mode>2): Replace TFIFKF iterator with FLOAT128. Add support
4422         for TFmode being IEEE 128-bit floating point. Use IEEE128 iterator
4423         instead of hard coding TFmode or KFmode.
4424         (negtf2_internal): Likewise.
4425         (neg<mode>2_internal): Likewise.
4426         (abs<mode>2): Likewise.
4427         (abstf2_internal): Likewise.
4428         (abs<mode>2_internal): Likewise.
4429         (ieee_128bit_neg<mode>2): Likewise.
4430         (ieee_128bit_neg<mode>2_internal): Likewise.
4431         (ieee_128bit_abs<mode>2): Likewise.
4432         (ieee_128bit_abs<mode>2_internal): Likewise.
4433         (ieee_128bit_nabs<mode>2): Likewise.
4434         (ieee_128bit_nabs<mode>2_internal): Likewise.
4435         (extendiftf2): Add explicit conversions between 128-bit floating
4436         point types. Drop the old conversions that had become unwieldy.
4437         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
4438         (extendifkf2): Likewise.
4439         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
4440         (extendtfkf2): Likewise.
4441         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
4442         (trunciftf2): Likewise.
4443         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
4444         (truncifkf2): Likewise.
4445         (float<SDI:mode><IFKF:mode>2): Likewise.
4446         (trunckftf2): Likewise.
4447         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
4448         (trunctfif2): Likewise.
4449         (FP iterator): Allow TFmode to be IEEE 128-bit floating point.
4450         (extenddftf2): Rework 128-bit floating point conversions to
4451         properly handle -mabi=ieeelongdouble. Merge IFmode, TFmode, and
4452         KFmode expanders into one function.
4453         (extenddf<mode>2): Likewise.
4454         (extenddftf2_fprs): Likewise.
4455         (extenddf<mode>2_fprs): Likewise.
4456         (extenddftf2_vsx): Likewise.
4457         (extenddf<mode>2_vsx): Likewise.
4458         (extendsftf2): Likewise.
4459         (extendsf<mode>2): Likewise.
4460         (trunctfdf2): Likewise.
4461         (trunc<mode>df2): Likewise.
4462         (trunctfdf2_internal1): Likewise.
4463         (trunc<mode>df2_internal1): Likewise.
4464         (trunctfdf2_internal2): Likewise.
4465         (trunc<mode>df2_internal2): Likewise.
4466         (trunctfsf2): Likewise.
4467         (trunc<mode>sf2): Likewise.
4468         (trunctfsf2_fprs): Likewise.
4469         (trunc<mode>sf2_fprs): Likewise.
4470         (floatsit2f): Likewise.
4471         (floatsi<mode>2): Likewise.
4472         (fix_trunc_helper): Likewise.
4473         (fix_trunc_helper<mode>): Likewise.
4474         (fix_trunctfsi2): Likewise.
4475         (fix_trunc<mode>si2): Likewise.
4476         (fix_trunctfsi2_fprs): Likewise.
4477         (fix_trunc<mode>si2_fprs): Likewise.
4478         (fix_trunctfsi2_internal): Likewise.
4479         (fix_trunc<mode>si2_internal): Likewise.
4480         (fix_trunctfdi2): Likewise.
4481         (fix_trunc<mode>di2): Likewise.
4482         (fixuns_trunctf<mode>2): Likewise.
4483         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
4484         (floatditf2): Likewise.
4485         (floatdi<mode>2): Likewise.
4486         (floatuns<mode>tf2): Likewise.
4487         (floatuns<SDI:mode><IEEE128:mode>): Likewise.
4488         (cmptf_internal1): Use a mode iterator to add support for both
4489         types (IFmode, TFmode) that support IBM extended double.
4490         (cmp<mode>_internal1): Likewise.
4491         (cmptf_internal2): Likewise.
4492         (cmp<mode>_internal2): Likewise.
4493
4494         * doc/extend.texi (Floating Types): Document __ibm128 and
4495         __float128 on PowerPC.
4496
4497         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
4498         -mfloat128 and -mno-float128.
4499
4500 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
4501
4502         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Add IEEE 128-bit
4503         floating point modes that can go in vector registers.
4504         (MODES_TIEABLE_P): Move tests for vector modes before tests for
4505         scalar floating point, so that IEEE 128-bit floating point that
4506         can go in vector registers bind with vectors and not FP.
4507         (struct rs6000_args): Add libcall field.
4508
4509         * config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none
4510         and -mfloat128-software switches.  Replace them with a binary
4511         -mfloat128 switch.
4512         (-mfloat128): Likewise.
4513
4514         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
4515         128-bit floating point types in GPRs, even if the appropriate
4516         option enabling the type was not used.
4517         (rs6000_debug_reg_global): Remove -mfloat128-{software,none}
4518         debugging.
4519         (rs6000_setup_reg_addr_masks): Do not allow pre-increment and
4520         pre-decrement on IEEE 128-bit floating point values.
4521         (rs6000_init_hard_regno_mode_ok): Change test for whether TFmode
4522         is IEEE 128-bit floating point.
4523         (rs6000_init_hard_regno_mode_ok): Add reload handlers for IEEE
4524         128-bit floating point types that can go in vector registers.
4525         (rs6000_option_override_internal): Change -mfloat128-none and
4526         -mfloat128-software to -mfloat128, and move code to be near other
4527         VSX option handling.
4528         (rs6000_option_override_internal): Disable -mfloat128 if we don't
4529         have the Altivec ABI.
4530         (rs6000_init_builtins): Don't make TFmode use either IFmode or
4531         KFmode floating point nodes. Instead, have three separate nodes.
4532         (rs6000_scalar_mode_supported_p): Add support for IFmode to allow
4533         eventually moving the long double default to IEEE 128-bit floating
4534         point.
4535         (rs6000_opt_masks): Add -mfloat128.
4536         (struct rs6000_opt_var): Fix typo in comment.
4537         (init_cumulative_args): Initialize libcall field in
4538         CUMULATIVE_ARGS.
4539         (rs6000_function_arg): Treat library functions as if they had
4540         prototypes to prevent IEEE 128-bit support functions from passing
4541         arguments in both GPRs and vector registers.
4542         (rs6000_arg_partial_bytes): Likewise.
4543
4544         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as
4545         an option that can be turned on via -mcpu=<xxx>.
4546
4547         * config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no
4548         longer used.
4549
4550         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
4551         __FLOAT128__ if -mfloat128. Define __LONG_DOUBLE_IEEE128__ if long
4552         double is IEEE 128-bit. Define __LONG_DOUBLE_IBM128__ if long
4553         double is IBM extended double.
4554
4555         * config/rs6000/predicates.md (reg_or_indexed_operand): Allow
4556         SUBREGs.
4557
4558 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
4559
4560         * genautomata.c: Use CHECKING_P instead of ENABLE_CHECKING.
4561         * genconditions.c: Define CHECKING_P in the generated code.
4562         * genextract.c: Use flag_checking in insn_extract.
4563         * gengtype.c (main): Remove conditional compilation.
4564         * gengtype.h: Likewise.
4565
4566 2015-10-29  Jeff Law  <law@redhat.com>
4567
4568         PR tree-optimization/67892
4569         * tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
4570         in comment.
4571         (thread_through_normal_block): If we have seen a backedge, then
4572         do nothing.  No longer call find_jump_threads_backwards here.
4573         (thread_across_edge): Use find_jump_threads_backwards to find
4574         jump threads if the old style threader was not successful.
4575         * tree-ssa-threadbackward.c (get_gimple_control_stmt): Use
4576         gsi_last_nondebug_bb.  Return NULL if the block does not end
4577         with a control statement.
4578         (find_jump_threads_backwards): Setup code moved here from
4579         tree-ssa-threadedge.c::thread_through_normal_block.  Accept
4580         single edge argument instead of name & block.
4581         * tree-ssa-threadbackward.h (find_jump_threads_backwards): Update
4582         prototype.
4583
4584 2015-10-29  Tom de Vries  <tom@codesourcery.com>
4585
4586         * fold-const.c (fold_unary_loc): Remove folding inhibition for restrict
4587         types.
4588
4589 2015-10-29  Nathan Sidwell  <nathan@codesourcery.com>
4590
4591         * omp-low.c (lower_omp_target): Remove unreachable code & merge
4592         ifs.
4593
4594 2015-10-29  Marc Glisse  <marc.glisse@inria.fr>
4595
4596         * match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity.
4597
4598 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
4599
4600         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
4601         guard_bb0 and use guard_bb throughout.
4602
4603 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
4604
4605         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
4606         unnecessary label.
4607
4608 2015-10-29  Richard Biener  <rguenther@suse.de>
4609
4610         PR middle-end/68142
4611         * fold-const.c (extract_muldiv_1): Avoid introducing undefined
4612         overflow.
4613
4614 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
4615
4616         * alias.c: Reorder #include statements and remove duplicates.
4617         * asan.c: Likewise.
4618         * attribs.c: Likewise.
4619         * auto-inc-dec.c: Likewise.
4620         * auto-profile.c: Likewise.
4621         * bb-reorder.c: Likewise.
4622         * bt-load.c: Likewise.
4623         * builtins.c: Likewise.
4624         * caller-save.c: Likewise.
4625         * calls.c: Likewise.
4626         * ccmp.c: Likewise.
4627         * cfg.c: Likewise.
4628         * cfganal.c: Likewise.
4629         * cfgbuild.c: Likewise.
4630         * cfgcleanup.c: Likewise.
4631         * cfgexpand.c: Likewise.
4632         * cfghooks.c: Likewise.
4633         * cfgloop.c: Likewise.
4634         * cfgloopanal.c: Likewise.
4635         * cfgloopmanip.c: Likewise.
4636         * cfgrtl.c: Likewise.
4637         * cgraph.c: Likewise.
4638         * cgraphbuild.c: Likewise.
4639         * cgraphclones.c: Likewise.
4640         * cgraphunit.c: Likewise.
4641         * cilk-common.c: Likewise.
4642         * combine-stack-adj.c: Likewise.
4643         * combine.c: Likewise.
4644         * compare-elim.c: Likewise.
4645         * convert.c: Likewise.
4646         * coverage.c: Likewise.
4647         * cppbuiltin.c: Likewise.
4648         * cprop.c: Likewise.
4649         * cse.c: Likewise.
4650         * cselib.c: Likewise.
4651         * data-streamer-in.c: Likewise.
4652         * data-streamer-out.c: Likewise.
4653         * data-streamer.c: Likewise.
4654         * dbxout.c: Likewise.
4655         * dce.c: Likewise.
4656         * ddg.c: Likewise.
4657         * debug.c: Likewise.
4658         * df-core.c: Likewise.
4659         * df-problems.c: Likewise.
4660         * df-scan.c: Likewise.
4661         * dfp.c: Likewise.
4662         * dojump.c: Likewise.
4663         * dominance.c: Likewise.
4664         * double-int.c: Likewise.
4665         * dse.c: Likewise.
4666         * dumpfile.c: Likewise.
4667         * dwarf2asm.c: Likewise.
4668         * dwarf2cfi.c: Likewise.
4669         * dwarf2out.c: Likewise.
4670         * emit-rtl.c: Likewise.
4671         * except.c: Likewise.
4672         * explow.c: Likewise.
4673         * expmed.c: Likewise.
4674         * expr.c: Likewise.
4675         * final.c: Likewise.
4676         * fixed-value.c: Likewise.
4677         * fold-const.c: Likewise.
4678         * function.c: Likewise.
4679         * fwprop.c: Likewise.
4680         * gcse.c: Likewise.
4681         * generic-match-head.c: Likewise.
4682         * ggc-common.c: Likewise.
4683         * gimple-builder.c: Likewise.
4684         * gimple-expr.c: Likewise.
4685         * gimple-fold.c: Likewise.
4686         * gimple-iterator.c: Likewise.
4687         * gimple-low.c: Likewise.
4688         * gimple-match-head.c: Likewise.
4689         * gimple-pretty-print.c: Likewise.
4690         * gimple-ssa-isolate-paths.c: Likewise.
4691         * gimple-ssa-strength-reduction.c: Likewise.
4692         * gimple-streamer-in.c: Likewise.
4693         * gimple-streamer-out.c: Likewise.
4694         * gimple-walk.c: Likewise.
4695         * gimple.c: Likewise.
4696         * gimplify-me.c: Likewise.
4697         * gimplify.c: Likewise.
4698         * godump.c: Likewise.
4699         * graph.c: Likewise.
4700         * graphite-poly.c: Likewise.
4701         * haifa-sched.c: Likewise.
4702         * hw-doloop.c: Likewise.
4703         * ifcvt.c: Likewise.
4704         * incpath.c: Likewise.
4705         * init-regs.c: Likewise.
4706         * internal-fn.c: Likewise.
4707         * ipa-chkp.c: Likewise.
4708         * ipa-comdats.c: Likewise.
4709         * ipa-cp.c: Likewise.
4710         * ipa-devirt.c: Likewise.
4711         * ipa-icf-gimple.c: Likewise.
4712         * ipa-icf.c: Likewise.
4713         * ipa-inline-analysis.c: Likewise.
4714         * ipa-inline-transform.c: Likewise.
4715         * ipa-inline.c: Likewise.
4716         * ipa-polymorphic-call.c: Likewise.
4717         * ipa-profile.c: Likewise.
4718         * ipa-prop.c: Likewise.
4719         * ipa-pure-const.c: Likewise.
4720         * ipa-ref.c: Likewise.
4721         * ipa-reference.c: Likewise.
4722         * ipa-split.c: Likewise.
4723         * ipa-utils.c: Likewise.
4724         * ipa-visibility.c: Likewise.
4725         * ipa.c: Likewise.
4726         * ira-build.c: Likewise.
4727         * ira-color.c: Likewise.
4728         * ira-conflicts.c: Likewise.
4729         * ira-costs.c: Likewise.
4730         * ira-emit.c: Likewise.
4731         * ira-lives.c: Likewise.
4732         * ira.c: Likewise.
4733         * jump.c: Likewise.
4734         * langhooks.c: Likewise.
4735         * lcm.c: Likewise.
4736         * lists.c: Likewise.
4737         * loop-doloop.c: Likewise.
4738         * loop-init.c: Likewise.
4739         * loop-invariant.c: Likewise.
4740         * loop-iv.c: Likewise.
4741         * loop-unroll.c: Likewise.
4742         * lower-subreg.c: Likewise.
4743         * lra-assigns.c: Likewise.
4744         * lra-coalesce.c: Likewise.
4745         * lra-constraints.c: Likewise.
4746         * lra-eliminations.c: Likewise.
4747         * lra-lives.c: Likewise.
4748         * lra-remat.c: Likewise.
4749         * lra-spills.c: Likewise.
4750         * lra.c: Likewise.
4751         * lto-cgraph.c: Likewise.
4752         * lto-compress.c: Likewise.
4753         * lto-opts.c: Likewise.
4754         * lto-section-in.c: Likewise.
4755         * lto-section-out.c: Likewise.
4756         * lto-streamer-in.c: Likewise.
4757         * lto-streamer-out.c: Likewise.
4758         * lto-streamer.c: Likewise.
4759         * mode-switching.c: Likewise.
4760         * modulo-sched.c: Likewise.
4761         * omp-low.c: Likewise.
4762         * optabs.c: Likewise.
4763         * opts-global.c: Likewise.
4764         * passes.c: Likewise.
4765         * plugin.c: Likewise.
4766         * postreload-gcse.c: Likewise.
4767         * postreload.c: Likewise.
4768         * predict.c: Likewise.
4769         * print-tree.c: Likewise.
4770         * profile.c: Likewise.
4771         * real.c: Likewise.
4772         * realmpfr.c: Likewise.
4773         * recog.c: Likewise.
4774         * ree.c: Likewise.
4775         * reg-stack.c: Likewise.
4776         * regcprop.c: Likewise.
4777         * reginfo.c: Likewise.
4778         * regrename.c: Likewise.
4779         * regstat.c: Likewise.
4780         * reload.c: Likewise.
4781         * reload1.c: Likewise.
4782         * reorg.c: Likewise.
4783         * resource.c: Likewise.
4784         * rtl-chkp.c: Likewise.
4785         * rtl-error.c: Likewise.
4786         * rtlanal.c: Likewise.
4787         * rtlhooks.c: Likewise.
4788         * sanopt.c: Likewise.
4789         * sched-deps.c: Likewise.
4790         * sched-ebb.c: Likewise.
4791         * sched-rgn.c: Likewise.
4792         * sese.c: Likewise.
4793         * shrink-wrap.c: Likewise.
4794         * simplify-rtx.c: Likewise.
4795         * stack-ptr-mod.c: Likewise.
4796         * statistics.c: Likewise.
4797         * stmt.c: Likewise.
4798         * stor-layout.c: Likewise.
4799         * store-motion.c: Likewise.
4800         * stringpool.c: Likewise.
4801         * symtab.c: Likewise.
4802         * target-globals.c: Likewise.
4803         * targhooks.c: Likewise.
4804         * toplev.c: Likewise.
4805         * tracer.c: Likewise.
4806         * trans-mem.c: Likewise.
4807         * tree-affine.c: Likewise.
4808         * tree-call-cdce.c: Likewise.
4809         * tree-cfg.c: Likewise.
4810         * tree-cfgcleanup.c: Likewise.
4811         * tree-chkp-opt.c: Likewise.
4812         * tree-chkp.c: Likewise.
4813         * tree-chrec.c: Likewise.
4814         * tree-complex.c: Likewise.
4815         * tree-data-ref.c: Likewise.
4816         * tree-dfa.c: Likewise.
4817         * tree-diagnostic.c: Likewise.
4818         * tree-dump.c: Likewise.
4819         * tree-eh.c: Likewise.
4820         * tree-emutls.c: Likewise.
4821         * tree-if-conv.c: Likewise.
4822         * tree-inline.c: Likewise.
4823         * tree-into-ssa.c: Likewise.
4824         * tree-iterator.c: Likewise.
4825         * tree-loop-distribution.c: Likewise.
4826         * tree-nested.c: Likewise.
4827         * tree-nrv.c: Likewise.
4828         * tree-object-size.c: Likewise.
4829         * tree-outof-ssa.c: Likewise.
4830         * tree-parloops.c: Likewise.
4831         * tree-phinodes.c: Likewise.
4832         * tree-predcom.c: Likewise.
4833         * tree-pretty-print.c: Likewise.
4834         * tree-profile.c: Likewise.
4835         * tree-scalar-evolution.c: Likewise.
4836         * tree-sra.c: Likewise.
4837         * tree-ssa-address.c: Likewise.
4838         * tree-ssa-alias.c: Likewise.
4839         * tree-ssa-ccp.c: Likewise.
4840         * tree-ssa-coalesce.c: Likewise.
4841         * tree-ssa-copy.c: Likewise.
4842         * tree-ssa-dce.c: Likewise.
4843         * tree-ssa-dom.c: Likewise.
4844         * tree-ssa-dse.c: Likewise.
4845         * tree-ssa-forwprop.c: Likewise.
4846         * tree-ssa-ifcombine.c: Likewise.
4847         * tree-ssa-live.c: Likewise.
4848         * tree-ssa-loop-ch.c: Likewise.
4849         * tree-ssa-loop-im.c: Likewise.
4850         * tree-ssa-loop-ivcanon.c: Likewise.
4851         * tree-ssa-loop-ivopts.c: Likewise.
4852         * tree-ssa-loop-manip.c: Likewise.
4853         * tree-ssa-loop-niter.c: Likewise.
4854         * tree-ssa-loop-prefetch.c: Likewise.
4855         * tree-ssa-loop-unswitch.c: Likewise.
4856         * tree-ssa-loop.c: Likewise.
4857         * tree-ssa-math-opts.c: Likewise.
4858         * tree-ssa-operands.c: Likewise.
4859         * tree-ssa-phiopt.c: Likewise.
4860         * tree-ssa-phiprop.c: Likewise.
4861         * tree-ssa-pre.c: Likewise.
4862         * tree-ssa-propagate.c: Likewise.
4863         * tree-ssa-reassoc.c: Likewise.
4864         * tree-ssa-sccvn.c: Likewise.
4865         * tree-ssa-scopedtables.c: Likewise.
4866         * tree-ssa-sink.c: Likewise.
4867         * tree-ssa-strlen.c: Likewise.
4868         * tree-ssa-structalias.c: Likewise.
4869         * tree-ssa-tail-merge.c: Likewise.
4870         * tree-ssa-ter.c: Likewise.
4871         * tree-ssa-threadedge.c: Likewise.
4872         * tree-ssa-threadupdate.c: Likewise.
4873         * tree-ssa-uncprop.c: Likewise.
4874         * tree-ssa-uninit.c: Likewise.
4875         * tree-ssa.c: Likewise.
4876         * tree-ssanames.c: Likewise.
4877         * tree-stdarg.c: Likewise.
4878         * tree-streamer-in.c: Likewise.
4879         * tree-streamer-out.c: Likewise.
4880         * tree-streamer.c: Likewise.
4881         * tree-switch-conversion.c: Likewise.
4882         * tree-tailcall.c: Likewise.
4883         * tree-vect-data-refs.c: Likewise.
4884         * tree-vect-generic.c: Likewise.
4885         * tree-vect-loop-manip.c: Likewise.
4886         * tree-vect-loop.c: Likewise.
4887         * tree-vect-patterns.c: Likewise.
4888         * tree-vect-slp.c: Likewise.
4889         * tree-vect-stmts.c: Likewise.
4890         * tree-vectorizer.c: Likewise.
4891         * tree-vrp.c: Likewise.
4892         * tree.c: Likewise.
4893         * tsan.c: Likewise.
4894         * ubsan.c: Likewise.
4895         * value-prof.c: Likewise.
4896         * var-tracking.c: Likewise.
4897         * varasm.c: Likewise.
4898         * varpool.c: Likewise.
4899         * vtable-verify.c: Likewise.
4900         * web.c: Likewise.
4901         * wide-int-print.cc: Likewise.
4902         * wide-int.cc: Likewise.
4903         * xcoffout.c: Likewise.
4904
4905 2015-10-29  H.J. Lu  <hongjiu.lu@intel.com>
4906
4907         * Makefile.in (NO_PIE_CFLAGS): New.
4908         (NO_PIE_FLAG): Likewise.
4909         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
4910         (NO_PIE_FLAG_FOR_BUILD): Likewise.
4911         (BUILD_NO_PIE_CFLAGS): Likewise.
4912         (BUILD_NO_PIE_FLAG): Likewise.
4913         (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS).
4914         (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG).
4915         (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with
4916         $(BUILD_NO_PIE_CFLAGS).
4917         (BUILD_CXXFLAGS): Likewise.
4918         (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with
4919         $(BUILD_NO_PIE_FLAG).
4920         * configure.ac (BUILD_NO_PIE_CFLAGS): New.  AC_SUBST.
4921         (BUILD_NO_PIE_FLAG): Likewise.
4922         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
4923         (NO_PIE_FLAG_FOR_BUILD): Likewise.
4924         * configure: Regenerated.
4925
4926 2015-10-29  Richard Biener  <rguenther@suse.de>
4927
4928         PR middle-end/56956
4929         * fold-const.c (fold_cond_expr_with_comparison): Do not fold
4930         unsigned conditonal negation to ABS_EXPR.
4931
4932 2015-10-29  Richard Biener  <rguenther@suse.de>
4933
4934         * gimple-match-head.c (gimple_simplify): Remove premature checking
4935         of builtin_decl_implicit of function calls we simplify.
4936
4937 2015-10-29  Bin Cheng  <bin.cheng@arm.com>
4938
4939         * tree-ssa-loop-ivopts.c (split_address_cost): Check depends_on.
4940         (get_computation_cost_at): Ditto.
4941         (determine_use_iv_cost_address): Pass NULL for arguments depends_on
4942         and inv_expr_id.
4943
4944 2015-10-28  Tom de Vries  <tom@codesourcery.com>
4945
4946         * tree-ssa-structalias.c (intra_create_variable_infos): Remove
4947         superfluous code.
4948
4949 2015-10-28  Jason Merrill  <jason@redhat.com>
4950
4951         * Makefile.in (TAGS): Include libcpp and libiberty.
4952
4953 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
4954
4955         * omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete.
4956         (extract_omp_for_data): Remove OpenACC special handling of
4957         chunking.
4958
4959         * config/nvptx/nvptx.c (nvptx_print_operand): Remove 'd' case.
4960         (struct parallel): Update comment.
4961         (nvptx_reorg): Likewise.
4962         (nvptx_neuter): Cleanup whitespace.
4963
4964 2015-10-28  Richard Henderson  <rth@redhat.com>
4965
4966         * tree-eh.c (mark_reachable_handlers): Fix typo in assert.
4967
4968 2015-10-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
4969
4970         PR target/67839
4971         * config/avr/predicates.md (low_io_address_operand): Don't
4972         consider MODE when computing upper bound.
4973         (io_address_operand): Likewise.
4974
4975 2015-10-28  Jan Hubicka  <hubicka@ucw.cz>
4976
4977         * fold-const.c (operand_equal_p): Do not verify that types are
4978         compatible for MEM_REFs.
4979
4980 2015-10-28  Richard Biener  <rguenther@suse.de>
4981
4982         * gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs
4983         in simplifying VEC_COND_EXPR conditions.
4984
4985 2015-10-28  Tom de Vries  <tom@codesourcery.com>
4986
4987         * tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate
4988         into vi_next of a full_var.
4989
4990 2015-10-28  Tom de Vries  <tom@codesourcery.com>
4991
4992         * tree-ssa-structalias.c (new_var_info, make_heapvar)
4993         (make_constraint_from_restrict, make_constraint_from_global_restrict)
4994         (create_function_info_for, create_variable_info_for_1)
4995         (create_variable_info_for): Add and handle add_id parameter.
4996         (get_call_vi, new_scalar_tmp_constraint_exp, handle_rhs_call)
4997         (init_base_vars): Add extra argument to calls to new_var_info.
4998         (get_vi_for_tree): Add extra argument to call to
4999         create_variable_info_for.
5000         (process_constraint, do_deref, process_all_all_constraints): Add extra
5001         argument to calls to new_scalar_tmp_constraint_exp.
5002         (handle_lhs_call, find_func_aliases_for_builtin_call): Add extra
5003         argument to calls to make_heapvar.
5004         (make_restrict_var_constraints): Add extra argument to call to
5005         make_constraint_from_global_restrict.
5006         (intra_create_variable_infos): Add extra argument to call to
5007         create_variable_info_for_1.
5008         (ipa_pta_execute): Add extra argument to call to
5009         create_function_info_for.
5010
5011 2015-10-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5012
5013         * config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt.
5014         (sibcall_value): Likewise.
5015
5016 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
5017
5018         * config/nvptx/nvptx.h (struct machine_function): Add
5019         axis_predicate.
5020         * config/nvptx/nvptx-protos.h (nvptx_expand_oacc_fork,
5021         nvptx_expand_oacc_join): Declare.
5022         * config/nvptx/nvptx.md (UNSPEC_NTID, UNSPEC_TID): Delete.
5023         (UNSPEC_DIM_SIZE, UNSPEC_SHARED_DATA, UNSPEC_BIT_CONV,
5024         UNSPEC_SHUFFLE, UNSPEC_BR_UNIFIED): New.
5025         (UNSPECV_BARSYNC, UNSPECV_DIM_POS, UNSPECV_FORK, UNSPECV_FORKED,
5026         UNSPECV_JOINING, UNSPECV_JOIN): New.
5027         (BITS, BITD): New mode iterators.
5028         (br_true_uni, br_false_uni): New.
5029         (*oacc_ntid_insn, oacc_ntid, *oacc_tid_insn, oacc_tid): Delete.
5030         (oacc_dim_size, oacc_dim_pos): New.
5031         (nvptx_fork, nvptx_forked, nvptx_joining, nvptx_join): New.
5032         (oacc_fork, oacc_join): New.
5033         (nvptx_shuffle<mode>, unpack<mode>si2, packsi<mode>2): New.
5034         (worker_load<mode>, worker_store<mode>): New.
5035         (nvptx_barsync): New.
5036         * config/nvptx/nvptx.c: Include gimple.h & dumpfile.h.
5037         (SHUFFLE_UP, SHUFFLE_DOWN, SHUFFLE_BFLY, SHUFFLE_IDX): Define.
5038         (worker_bcast_hwm, worker_bcast_align, worker_bcast_name,
5039         worker_bcast_sym): New.
5040         (nvptx_option_override): Initialize worker broadcast buffer.
5041         (nvptx_emit_forking, nvptx_emit_joining): New.
5042         (nvptx_init_axis_predicate): New.
5043         (nvptx_declare_function_name): Init axis predicates.
5044         (nvptx_expand_call): Add fork/join markers around routine call.
5045         (nvptx_expand_oacc_fork, nvptx_expand_oacc_join): New.
5046         (nvptx_gen_unpack, nvptx_gen_pack, nvptx_gen_shuffle): New.
5047         (nvptx_gen_vcast): New.
5048         (struct wcast_data_t): New.
5049         (enum propagate_mask): New.
5050         (nvptx_gen_wcast): New.
5051         (nvptx_print_operand): Add 'S' case.
5052         (struct parallel): New.
5053         (parallel::parallel, parallel::~parallel): New.
5054         (bb_insn_map_t, insn_bb_t, insn_bb_vec_t): New typedefs.
5055         (nvptx_split_blocks, nvptx_discover_pre, nvptx_dump_pars,
5056         nvptx_find_par, nvptx_discover_pars): New.
5057         (nvptx_propagate): New.
5058         (vprop_gen, nvptx_vpropagate): New.
5059         (wprop_gen, nvptx_wpropagate): New.
5060         (nvptx_wsync): New.
5061         (nvptx_single, nvptx_skip_par): New.
5062         (nvptx_process_pars, nvptx_neuter_pars): New.
5063         (ntptx_reorg): Split blocks, generate parallel structure, apply
5064         neutering.
5065         (nvptx_cannot_copy_insn_p): New.
5066         (nvptx_file_end): Emit worker broadcast decl.
5067         (nvptx_goacc_fork_join): New.
5068         (TARGET_CANNOT_COPY_INSN_P): Override.
5069         (TARGET_GOACC_FORK_JOIN): Override.
5070
5071 2015-10-28  Richard Biener  <rguenther@suse.de>
5072
5073         * fold-const.c (negate_expr_p): Adjust the division case to
5074         properly avoid introducing undefined overflow.
5075         (fold_negate_expr): Likewise.
5076
5077 2015-10-28  Richard Biener  <rguenther@suse.de>
5078
5079         PR tree-optimization/65962
5080         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5081         Avoid creating loop carried dependences also for outer loops
5082         of the loop a use to replace is in.
5083
5084 2015-10-28  Richard Biener  <rguenther@suse.de>
5085
5086         * common.opt (fchecking): New flag controlling flag_checking.
5087         * passes.c (verify_curr_properties): Drop DEBUG_FUNCTION.
5088         * timevar.c (timer::print): Adjust output.
5089         * doc/invoke.texi (fchecking): Document.
5090
5091 2015-10-28  Richard Biener  <rguenther@suse.de>
5092
5093         PR middle-end/68067
5094         * fold-const.c (negate_expr_p): We cannot negate plus or minus
5095         if overflow is not wrapping.  Likewise multiplication unless
5096         one operand is constant and not power of two.
5097         (fold_negate_expr): Adjust accordingly.
5098
5099 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
5100
5101         * omp-low.c (struct omp_context): Remove gwv_below, gwv_this
5102         fields.
5103         (is_oacc_parallel, is_oacc_kernels): New.
5104         (enclosing_target_ctx): May return NULL.
5105         (ctx_in_oacc_kernels_region): New.
5106         (check_oacc_kernel_gwv): New.
5107         (oacc_loop_or_target_p): Delete.
5108         (scan_omp_for): Don't calculate gwv mask.  Check parallel clause
5109         operands.  Strip reductions fro kernels.
5110         (scan_omp_target): Don't calculate gwv mask.
5111         (lower_oacc_head_mark, lower_oacc_loop_marker,
5112         lower_oacc_head_tail): New.
5113         (struct oacc_collapse): New.
5114         (expand_oacc_collapse_init, expand_oacc_collapse_vars): New.
5115         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
5116         Remove OpenACC handling.
5117         (expand_oacc_for): New.
5118         (expand_omp_for): Call expand_oacc_for.
5119         (lower_omp_for): Call lower_oacc_head_tail.
5120
5121 2015-10-27  Mikhail Maltsev  <maltsevm@gmail.com>
5122
5123         * attribs.c (check_attribute_tables): New function, broken out from...
5124         (init_attributes): Use it.
5125         * cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P
5126         gcc_checking_assert and checking_* functions to eliminate
5127         ENABLE_CHECKING conditionals.
5128         * cfgexpand.c (expand_goto, expand_debug_expr): Likewise.
5129         (pass_expand::execute): Likewise.
5130         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
5131         * cgraphunit.c (mark_functions_to_output): Likewise.
5132         (cgraph_node::expand_thunk): Likewise.
5133         (symbol_table::compile): Likewise.
5134         * ddg.c (add_cross_iteration_register_deps): Likewise.
5135         (create_ddg_all_sccs): Likewise.
5136         * df-core.c (df_finish_pass, df_analyze): Likewise.
5137         * diagnostic-core.h: Likewise.
5138         * diagnostic.c (diagnostic_report_diagnostic): Likewise.
5139         * dominance.c (calculate_dominance_info): Likewise.
5140         * dwarf2out.c (add_AT_die_ref): Likewise.
5141         (const_ok_for_output_1, mem_loc_descriptor): Likewise.
5142         (loc_list_from_tree, gen_lexical_block_die): Likewise.
5143         gen_type_die_with_usage, gen_type_die): Likewise.
5144         (dwarf2out_decl): Likewise.
5145         * emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise.
5146         * except.c (duplicate_eh_regions): Likewise.
5147         * fwprop.c (register_active_defs, update_df_init): Likewise.
5148         (fwprop_init, fwprop_done): Likewise.
5149         (update_uses): Likewise.
5150         * ggc-page.c (ggc_grow): Likewise.
5151         * gimplify.c (gimplify_body): Likewise.
5152         (gimplify_hasher::equal): Likewise.
5153         * graphite-isl-ast-to-gimple.c (graphite_verify): Likewise.
5154         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form):
5155         Likewise.
5156         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise.
5157         (rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise.
5158         * hash-table.h (::find_empty_slot_for_expand): Likewise.
5159         * ifcvt.c (if_convert): Likewise.
5160         * ipa-cp.c (ipcp_propagate_stage): Likewise.
5161         * ipa-devirt.c (type_in_anonymous_namespace_p): Likewise.
5162         (odr_type_p, odr_types_equivalent_p): Likewise.
5163         (add_type_duplicate, get_odr_type): Likewise.
5164         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
5165         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
5166         (sem_item_optimizer::verify_classes): Likewise.
5167         (sem_item_optimizer::traverse_congruence_split): Likewise.
5168         (sem_item_optimizer::checking_verify_classes): New.
5169         * ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new
5170         method.
5171         * cfgrtl.c (commit_edge_insertions): Likewise.
5172         (fixup_reorder_chain, cfg_layout_finalize): Likewise.
5173         (rtl_flow_call_edges_add): Likewise.
5174         * cgraph.c (symbol_table::create_edge): Likewise.
5175         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
5176         * cgraph.h (symtab_node): Likewise.
5177         (symtab_node::checking_verify_symtab_nodes): Define.
5178         (cgraph_node::checking_verify_cgraph_nodes): Define.
5179         * cfghooks.h (checking_verify_flow_info): Define.
5180         * cfgloop.h (checking_verify_loop_structure): Define.
5181         * dominance.h (checking_verify_dominators): Define.
5182         * et-forest.c: Fix comment.
5183         * ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking,
5184         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
5185         ENABLE_CHECKING conditionals.
5186         * ipa-inline-transform.c (save_inline_function_body): Likewise.
5187         * ipa-inline.c (inline_small_functions): Likewise.
5188         (early_inliner): Likewise.
5189         * ipa-inline.h (estimate_edge_growth): Likewise.
5190         * ipa-visibility.c (function_and_variable_visibility): Likewise.
5191         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
5192         (ipa_single_use): Likewise.
5193         * ira-int.h: Likewise.
5194         * ira.c (ira): Likewise.
5195         * loop-doloop.c (doloop_optimize_loops): Likewise.
5196         * loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise.
5197         * loop-invariant.c (move_loop_invariants): Likewise.
5198         * lra-assigns.c (lra_assign): Likewise.
5199         * lra-constraints.c (lra_constraints): Likewise.
5200         * lra-eliminations.c (lra_eliminate): Likewise.
5201         * lra-int.h (struct lra_reg): Likewise.
5202         * lra-lives.c (check_pseudos_live_through_calls): Likewise.
5203         (lra_create_live_ranges_1): Likewise.
5204         * lra-remat.c (create_remat_bb_data): Likewise.
5205         * lra.c (lra_update_insn_recog_data, restore_scratches): Likewise.
5206         (lra): Likewise.
5207         (check_rtl): Always define. Remove incorrect guard around
5208         extract_constrain_insn call.
5209         * lto-cgraph.c (input_cgraph_1: Use flag_checking,
5210         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
5211         ENABLE_CHECKING conditionals.
5212         * lto-streamer-out.c (DFS::DFS): Likewise.
5213         (lto_output): Likewise.
5214         * lto-streamer.c (lto_streamer_init): Likewise.
5215         * omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise.
5216         expand_omp_target, execute_expand_omp): Likewise.
5217         (lower_omp_target): Likewise.
5218         * passes.c (execute_function_todo): Likewise.
5219         (execute_todo, execute_one_pass): Likewise.
5220         (verify_curr_properties): Always define.
5221         * predict.c (tree_estimate_probability: Use flag_checking,
5222         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
5223         ENABLE_CHECKING conditionals.
5224         (propagate_freq): Likewise.
5225         * pretty-print.c (pp_format): Likewise.
5226         * real.c (real_to_decimal_for_mode): Likewise.
5227         * recog.c (split_all_insns): Likewise.
5228         * regcprop.c (kill_value_one_regno): Likewise.
5229         (copy_value): Likewise.
5230         (validate_value_data): Define unconditionally.
5231         * reload.c: Fix comment.
5232         * timevar.c: Include options.h
5233         * tree-ssa.h (checking_verify_ssa): Define.
5234         * tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define.
5235         * sched-deps.c (CHECK): Remove unused macro.
5236         (add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P
5237         gcc_checking_assert and checking_* functions to eliminate
5238         ENABLE_CHECKING conditionals.
5239         * sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise.
5240         * sel-sched.c (struct moveop_static_params): Likewise.
5241         (find_best_reg_for_expr, move_cond_jump): Likewise.
5242         (move_op_orig_expr_not_found): Likewise.
5243         (code_motion_process_successors, move_op): Likewise.
5244         * ssa-iterators.h (first_readonly_imm_use): Likewise.
5245         (next_readonly_imm_use): Likewise.
5246         * store-motion.c (compute_store_table): Likewise.
5247         * symbol-summary.h (function_summary::function_summary): Likewise.
5248         * target.h (cumulative_args_t): Likewise.
5249         (get_cumulative_args, pack_cumulative_args): Likewise.
5250         * timevar.c: (timer::print): Likewise.
5251         * trans-mem.c (ipa_tm_execute): Likewise.
5252         * tree-cfg.c (move_stmt_op): Likewise.
5253         (move_sese_region_to_fn): Likewise.
5254         (gimple_flow_call_edges_add): Likewise.
5255         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
5256         Likewise.
5257         * tree-eh.c (remove_unreachable_handlers): Likewise.
5258         * tree-if-conv.c (pass_if_conversion::execute): Likewise.
5259         * tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise.
5260         * tree-into-ssa.c (update_ssa): Likewise.
5261         * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
5262         * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise.
5263         * tree-parloops.c (pass_parallelize_loops::execute): Likewise.
5264         * tree-predcom.c (suitable_component_p): Likewise.
5265         * tree-profile.c (gimple_gen_const_delta_profiler): Likewise.
5266         * tree-ssa-alias.c (refs_may_alias_p_1): Likewise.
5267         * tree-ssa-live.c (verify_live_on_entry): Likewise.
5268         * tree-ssa-live.h (register_ssa_partition): Likewise.
5269         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise.
5270         * tree-ssa-loop-manip.c (add_exit_phi): Likewise.
5271         (tree_transform_and_unroll_loop): Likewise.
5272         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
5273         * tree-ssa-operands.c (get_expr_operands): Likewise.
5274         * tree-ssa-propagate.c (replace_exp_1): Likewise.
5275         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
5276         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
5277         * tree-ssa-threadupdate.c (duplicate_thread_path): Likewise.
5278         * tree-ssanames.c (release_ssa_name_fn): Likewise.
5279         * tree-stdarg.c (expand_ifn_va_arg): Likewise.
5280         * tree-vect-loop-manip.c
5281         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
5282         (slpeel_checking_verify_cfg_after_peeling): Likewise.
5283         (vect_do_peeling_for_loop_bound): Likewise.
5284         (vect_do_peeling_for_alignment): Likewise.
5285         * tree-vrp.c (supports_overflow_infinity): Likewise.
5286         (set_value_range): Likewise.
5287         * tree.c (free_lang_data_in_cgraph): Likewise.
5288         * value-prof.c (gimple_remove_histogram_value): Likewise.
5289         (free_hist): Likewise.
5290         * var-tracking.c (canonicalize_values_star): Likewise.
5291         (compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise.
5292
5293 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
5294
5295         * internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS,
5296         IFN_GOACC_LOOP): New.
5297         * internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK,
5298         IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK,
5299         IFN_UNIQUE_OACC_TAIL_MARK.
5300         (enum ifn_goacc_loop_kind): New.
5301         * internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK,
5302         IFN_UNIQUE_OACC_JOIN cases.
5303         (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New.
5304         (expand_GOACC_LOOP): New.
5305         * target-insns.def (oacc_dim_pos, oacc_dim_size): New.
5306         * omp-low.c: Include gimple-pretty-print.h.
5307         (struct oacc_loop): New.
5308         (enum oacc_loop_flags): New.
5309         (oacc_thread_numbers): New.
5310         (oacc_xform_loop): New.
5311         (new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop,
5312         new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New,
5313         (dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New,
5314         (oacc_loop_discover_walk, oacc_loop_sibling_nrevers,
5315         oacc_loop_discovery): New.
5316         (oacc_loop_xform_head_tail, oacc_loop_xform_loop,
5317         oacc_loop_process): New.
5318         (oacc_loop_fixed_partitions, oacc_loop_partition): New.
5319         (execute_oacc_device_lower): Discover & process loops.  Process
5320         internal fns.
5321         * target.def (goacc.fork_join): Change sense of hook, clarify
5322         documentation.
5323         * doc/tm.texi: Regenerated.
5324
5325 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
5326
5327         * target-insns.def (oacc_fork, oacc_join): Define.
5328         * target.def (goacc.validate_dims): Adjust doc to avoid warning.
5329         (goacc.fork_join): New GOACC hook.
5330         * targhooks.h (default_goacc_fork_join): Declare.
5331         * omp-low.c (default_goacc_forkjoin): New.
5332         * doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add.
5333         * doc/tm.texi: Regenerate.
5334
5335 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
5336
5337         * omp-low.c (oacc_init_rediction_array): New.
5338         (oacc_initialize_reduction_data): Initialize array.
5339
5340 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
5341
5342         * omp-low.c (pass_oacc_device_lower::execute): Ignore errors.
5343
5344 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
5345
5346         * internal-fn.c (expand_UNIQUE): New.
5347         * internal-fn.h (enum ifn_unique_kind): New.
5348         * internal-fn.def (IFN_UNIQUE): New.
5349         * target-insns.def (unique): Define.
5350         * gimple.h (gimple_call_internal_unique_p): New.
5351         * gimple.c (gimple_call_same_target_p): Check internal fn
5352         uniqueness.
5353         * tracer.c (ignore_bb_p): Check for IFN_UNIQUE call.
5354         * tree-ssa-threadedge.c
5355         (record_temporary_equivalences_from_stmts): Likewise.
5356         * tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise.
5357
5358 2015-10-27  Richard Henderson  <rth@redhat.com>
5359
5360         PR rtl-opt/67609
5361         * config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
5362         narrowing subregs on SSE and MMX registers.
5363         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
5364         appear to be sub-words of multi-register pseudos must be rejected.
5365         * doc/tm.texi: Regenerate.
5366
5367 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5368
5369         PR target/68102
5370         * config/aarch64/aarch64.md (*movsi_aarch64): Check that
5371         operands[0] is a reg before taking its REGNO in split condition.
5372         (*movdi_aarch64): Likewise.
5373
5374 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5375
5376         * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate):
5377         Handle floating point inner modes properly.
5378
5379 2015-10-27  Alan Hayward  <alan.hayward@arm.com>
5380
5381         * tree-vect-looop.c
5382         (vectorizable_live_operation): Change iterator.
5383
5384 2015-10-27  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
5385             Aditya Kumar  <aditya.k7@samsung.com>
5386
5387         * graphite-optimize-isl.c (get_schedule_for_node_st): New callback
5388           function to schedule based on isl_schedule_node.
5389         (get_schedule_map_st): New schedule optimizer based on
5390         isl_schedule_node.
5391         (scop_get_domains): New. Return the isl_union_set containing the
5392         domains of all the pbbs.
5393         (optimize_isl): Call the new function get_schedule_map_st for isl-0.15
5394
5395 2015-10-27  H.J. Lu  <hongjiu.lu@intel.com>
5396
5397         PR target/67215
5398         * calls.c (prepare_call_address): Don't handle -fno-plt here.
5399         * config/i386/i386.c (ix86_expand_call): Generate indirect call
5400         via GOT for -fno-plt.  Support indirect call via GOT for x32.
5401         * config/i386/predicates.md (sibcall_memory_operand): Allow
5402         GOT memory operand.
5403
5404 2015-10-27  Richard Biener  <rguenther@suse.de>
5405
5406         PR tree-optimization/68104
5407         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
5408         strided access check ...
5409         (vect_compute_data_refs_alignment): ... here.
5410
5411 2015-10-27  Daniel Jacobowitz  <dan@codesourcery.com>
5412             Joseph Myers  <joseph@codesourcery.com>
5413             Mark Shinwell  <shinwell@codesourcery.com>
5414             Andrew Stubbs  <ams@codesourcery.com>
5415             Rich Felker <dalias@libc.org>
5416
5417         * config.gcc: Handle --enable-fdpic.
5418         * config/sh/constraints.md (Ccl): New constraint.
5419         * config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic.
5420         * config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and
5421         __SH_FDPIC__.
5422         * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
5423         library functions.
5424         * config/sh/sh-protos.h (function_symbol_result): New struct.
5425         (function_symbol): Return function_symbol_result.
5426         (sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New
5427         declarations.
5428         * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
5429         target hook.
5430         (TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise.
5431         (sh_option_override): Force -fPIC if FDPIC is in effect.
5432         (sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and
5433         UNSPEC_GOTOFFFUNCDESC cases.
5434         (prepare_move_operands): Use FDPIC initial GOT register for
5435         TLS-related GOT access; inhibit cross-section address offset constants
5436         for FDPIC.
5437         (sh_assemble_integer): New function.
5438         (sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC
5439         PC-relative call sites.
5440         (expand_ashiftrt): Adapt invocation of function_symbol.
5441         (sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC.
5442         (nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and
5443         UNSPEC_GOTOFFFUNCDESC.
5444         (legitimize_pic_address): Resolve function symbols to function
5445         descriptors for FDPIC.  Do not use GOT-relative addressing for local
5446         data that may be read-only on FDPIC.
5447         (sh_emit_storesi, sh_emit_storehi): New functions.
5448         (sh_trampoline_init): Generate FDPIC trampolines.
5449         (sh_function_ok_for_sibcall): Add TARGET_FDPIC check.
5450         (sh_expand_sym_label2reg): Don't assume sibcalls are local.
5451         (sh_output_mi_thunk): Generate FDPIC call.
5452         (function_symbol): Return function_symbol_result.  For SFUNC_STATIC on
5453         FDPIC, generate call site labels to use PC-relative addressing rather
5454         than GOT-relative addressing.
5455         (sh_conditional_register_usage): Make PIC register fixed and call used
5456         when FDPIC is in effect.
5457         (sh_legitimate_constant_p): Impose FDPIC constant constraints.
5458         (sh_cannot_force_const_mem_p, sh_load_function_descriptor,
5459         sh_get_fdpic_reg_initial_val): New functions.
5460         * config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX):
5461         Handle -mfdpic.
5462         (FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
5463         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
5464         SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros.
5465         (DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and
5466         FDPIC_SELF_SPECS.
5467         (TRAMPOLINE_SIZE): Select trampoline size for FDPIC.
5468         (ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC.
5469         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case.
5470         * config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New
5471         constants.
5472         (calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic,
5473         sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic,
5474         sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg,
5475         sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns.
5476         (udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3,
5477         *divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3,
5478         ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei,
5479         call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall,
5480         sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
5481         sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg,
5482         block_move_real, block_lump_real, block_move_real_i4,
5483         block_lump_real_i4): Add support for FDPIC calls.
5484         (mulsi3, ic_invalidate_line, initialize_trampoline, call_pop,
5485         call_value_pop): Adjust for new function_symbol signature.
5486         * config/sh/sh.opt (-mfdpic): New option.
5487         * doc/install.texi (Options specification): Document --enable-fdpic.
5488         * doc/invoke.texi (SH Options): Document -mfdpic.
5489
5490
5491 2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
5492
5493         PR tree-optimization/65963
5494         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
5495         LSHIFT_EXPRs as equivalent MULT_EXPRs.
5496
5497 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5498
5499         PR target/67929
5500         * config/arm/arm.c (vfp3_const_double_for_bits): Rewrite.
5501         * config/arm/constraints.md (Dp): Update callsite.
5502         * config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise.
5503
5504 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5505
5506         * builtins.c (fold_builtin_load_exponent): Rename to...
5507         (fold_const_builtin_load_exponent): ...this and only handle
5508         constant arguments.
5509         (fold_builtin_2): Update accordingly.
5510         * match.pd: Add rules previously handled by fold_builtin_load_exponent.
5511
5512 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5513
5514         * builtins.c (fold_builtin_logb): Rename to...
5515         (fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
5516         (fold_builtin_significand): Rename to...
5517         (fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
5518         (fold_builtin_1): Update accordingly.
5519
5520 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5521
5522         * builtins.c (fold_builtin_fmin_fmax): Delete.
5523         (fold_builtin_2): Handle constant fmin and fmax arguments here.
5524         * match.pd: Add rules previously handled by fold_builtin_fmin_fmax.
5525
5526 2015-10-27  Evandro Menezes  <e.menezes@samsung.com>
5527
5528         * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
5529         for register extension into sign and zero register extension.
5530         * config/aarch64/aarch64.c (generic_addrcost_table): Infer values
5531         for sign and zero register extension.
5532         (cortexa57_addrcost_table): Likewise.
5533         (xgene1_addrcost_table): Likewise.
5534
5535 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5536
5537         * fold-const.c (fold_minmax): Delete.
5538         (fold_binary_loc): Don't call it.
5539         * match.pd: Add rules previously handled by fold_minmax.
5540
5541 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5542
5543         * builtins.c (fold_builtin_fma): Remove constant handling.
5544         (fold_builtin_3): Handle constant fma arguments here.
5545
5546 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5547
5548         * builtins.c (fold_builtin_fabs): Remove constant handling.
5549         (fold_builtin_abs): Likewise.
5550
5551 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5552
5553         * builtins.c (fold_builtin_copysign): Delete.
5554         (fold_builtin_2): Handle constant copysign arguments here.
5555         * match.pd: Add rules previously handled by fold_builtin_copysign.
5556
5557 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5558
5559         * builtins.c (fold_builtin_signbit): Delete.
5560         (fold_builtin_2): Handle constant signbit arguments here.
5561         * match.pd: Add rules previously handled by fold_builtin_signbit.
5562
5563 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5564
5565         * match.pd: Handle sqrt(x) cmp 0 specially.
5566
5567 2015-10-27  Ilya Enkovich  <enkovich.gnu@gmail.com>
5568
5569         * tree-vect-generic.c (expand_vector_operations_1): Check
5570         optab type before using it.
5571
5572 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5573
5574         * config/aarch64/aarch64-protos.h
5575         (struct tune_params): Add autoprefetcher_model field.
5576         * config/aarch64/aarch64.c: Include params.h
5577         (generic_tunings): Specify autoprefetcher_model value.
5578         (cortexa53_tunings): Likewise.
5579         (cortexa57_tunings): Likewise.
5580         (cortexa72_tunings): Likewise.
5581         (thunderx_tunings): Likewise.
5582         (xgene1_tunings): Likewise.
5583         (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
5584         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
5585         (aarch64_override_options_internal): Set
5586         PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.
5587
5588 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5589
5590         * builtins.c (fold_builtin_exponent): Delete.
5591         (fold_builtin_2): Handle constant expN arguments here.
5592         * match.pd: Fold expN(logN(x)) -> x.
5593
5594 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5595
5596         * builtins.c (fold_builtin_powi): Delete.
5597         (fold_builtin_2): Handle constant powi arguments here.
5598         * match.pd: Add rules previously handled by fold_builtin_powi.
5599
5600 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5601
5602         * builtins.c (fold_builtin_pow): Delete in favor of...
5603         (fold_const_builtin_pow): ...this new function.  Only handle constant
5604         arguments.
5605         (fold_builtin_2): Update accordingly.
5606         * match.pd: Add rules previously handled by fold_builtin_pow.
5607
5608 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5609
5610         * builtins.c (fold_builtin_hypot): Delete.
5611         (fold_builtin_2): Handle constant hypot arguments here.
5612         * match.pd: Fold hypot(x, 0) and hypot(0, x) to x.  Canonicalize
5613         hypot(x, x) to fabs(x)*sqrt(2).
5614
5615 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
5616
5617         * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
5618         instead of make_ssa_name if not yet in SSA form.
5619
5620 2015-10-27  Richard Biener  <rguenther@suse.de>
5621
5622         * cfg.c (free_edge): Add function argument and use it instead of cfun.
5623         (clear_edges): Likewise.
5624         * cfg.h (clear_edges): Adjust prototype.
5625         * cfgexpand.c (pass_expand::execute): Adjust.
5626         * cfgloop.c (release_recorded_exits): Add function argument and use
5627         it instead of cfun.
5628         * cfgloop.h (release_recorded_exits): Adjust prototype.
5629         (loops_state_satisfies_p): Add overload with function argument.
5630         (loops_state_set): Likewise.
5631         (loops_state_clear): Likewise.
5632         (struct loop_iterator): Add function argument to constructor
5633         and iterator and use it instead of cfun.
5634         (FOR_EACH_LOOP_FN): New macro.
5635         (loop_optimizer_finalize): Add overload with function argument.
5636         * loop-init.c (loop_optimizer_init): Adjust.
5637         (fix_loop_structure): Likewise.
5638         (loop_optimizer_finaliz): Add function argument and use it
5639         instead of cfun.
5640         * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
5641         * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
5642         * cgraph.c (release_function_body): Do not push/pop cfun.
5643         * final.c (rest_of_clean_state): Adjust.
5644         * graphite.c (graphite_finalize): Likewise.
5645         * tree-ssa-copy.c (fini_copy_prop): Likewise.
5646         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
5647         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
5648         (tree_unroll_loops_completely): Likewise.
5649         (pass_complete_unrolli::execute): Likewise.
5650         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
5651         Add function argument and use it instead of cfun.
5652         * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
5653         Adjust prototype.
5654         * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
5655         * tree-ssa.c (delete_tree_ssa): Add function argument and use it
5656         instead of cfun.
5657         * tree-ssa.h (delete_tree_ssa): Adjust prototype.
5658         * tree-ssanames.c (fini_ssanames): Add function argument and use it
5659         instead of cfun.
5660         * tree-ssanames.c (fini_ssanames): Adjust prototype.
5661         * tree-vrp.c (execute_vrp): Adjust.
5662         * value-prof.c (free_histograms): Add function argument and use it
5663         instead of cfun.
5664         * value-prof.h (free_histograms): Adjust prototype.
5665
5666 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
5667
5668         * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
5669         (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
5670         (OACC_PARALLEL_COMBINED): Don't define macros.  Adjust all users.
5671
5672 2015-10-27  Tom de Vries  <tom@codesourcery.com>
5673
5674         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
5675         field_type.
5676
5677 2015-10-27  Bin Cheng  <bin.cheng@arm.com>
5678
5679         * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
5680         (inv_can_prop_to_addr_use): New function.
5681         (record_use): Call can_prop_to_addr_uses, set the new field.
5682         (get_inv_cost): Count cost if inv can't be propagated into its
5683         address uses.
5684
5685 2015-10-26  Doug Evans  <dje@google.com>
5686
5687         * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
5688
5689 2015-10-26  Eric Botcazou  <ebotcazou@adacore.com>
5690
5691         * match.pd (fold_widened_comparison): Apply simplifications to all
5692         integral types.
5693
5694 2015-10-26  Simon Dardis  <simon.dardis@imgtec.com>
5695
5696         * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
5697         * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
5698         * doc/tm.texi: Regenerated.
5699         * reorg.c (dbr_schedule): Use new hook.
5700         * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
5701
5702 2015-10-26  Jeff Law  <law@redhat.com>
5703
5704         PR tree-optimization/68013
5705         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
5706         Make sure the first block in the path is in VISITED_BBs.
5707
5708 2015-10-26  Richard Biener  <rguenther@suse.de>
5709         Dominik Vogt  <vogt@linux.vnet.ibm.com>
5710
5711         PR middle-end/67443
5712         * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
5713         Properly prune ref->ref for accesses outside of ref.
5714
5715 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
5716
5717         * gimple-fold.c (replace_stmt_with_simplification): Don't allow
5718         new statements to be inserted if inplace.  Allow calls to have
5719         nonempty sequences.
5720
5721 2015-10-26  Richard Biener  <rguenther@suse.de>
5722
5723         * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
5724         (do_valueize): New function.
5725         (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
5726         replace_uses_by.
5727         * tree-ssa-threadedge.c: Remove builtins.h include, include
5728         gimple-fold.h
5729         (fold_assignment_stmt): Remove.
5730         (threadedge_valueize): New function.
5731         (record_temporary_equivalences_from_stmts): Use
5732         gimple_fold_stmt_to_constant_1, note additional cleanup
5733         opportunities.
5734
5735 2015-10-26  Richard Biener  <rguenther@suse.de>
5736
5737         * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
5738         ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
5739
5740 2015-10-26  Alan Hayward <alan.hayward@arm.com>
5741
5742         * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
5743         VEC_COND_EXPR types.
5744
5745 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5746
5747         * auto-inc-dec.c (insert_move_insn_before): Delete.
5748         (attempt_change): Remember to cost the simple move in the
5749         FORM_PRE_ADD and FORM_POST_ADD cases.
5750
5751 2015-10-26  Kaz Kojima  <kkojima@gcc.gnu.org>
5752
5753         PR target/68091
5754         * config/sh/sh.c (sh_vector_mode_supported_p): Use
5755         TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
5756
5757 2015-10-26  Tom de Vries  <tom@codesourcery.com>
5758
5759         * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
5760         factored out of ...
5761         (intra_create_variable_infos): ... here.
5762
5763 2015-10-26  Tom de Vries  <tom@codesourcery.com>
5764
5765         * tree-ssa-structalias.c (intra_create_variable_infos): Add
5766         restrict_pointer_p and recursive_restrict_p variables.
5767
5768 2015-10-26  Tom de Vries  <tom@codesourcery.com>
5769
5770         * tree-ssa-structalias.c (intra_create_variable_infos): Inline
5771         get_vi_for_tree call.
5772
5773 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5774
5775         PR middle-end/67989
5776         * optabs.c (expand_atomic_compare_and_swap): Handle case when
5777         ptarget_oval or ptarget_bool are const0_rtx.
5778
5779 2015-10-26  Christian Bruel  <christian.bruel@st.com>
5780
5781         * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
5782         * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
5783         * cp/method.c (implicitly_declare_fn): Likewise.
5784         * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
5785         * java/class.c (add_method_1): Likewise.
5786
5787 2015-10-26  Richard Biener  <rguenther@suse.de>
5788
5789         * alloc-pool.h (base_pool_allocator): Use placement new.
5790         (base_pool_allocator::remove): Likewise.  Compute size outside of
5791         flag_checking.
5792
5793 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
5794
5795         * builtins.c (do_real_to_int_conversion): New function.
5796         (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
5797         (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
5798         arguments here.
5799         * match.pd: Add rules previously handled by fold_fixed_mathfn
5800         and fold_builtin_int_roundingfn.
5801
5802 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
5803
5804         * match.pd: Use macros to define built-in operator lists.
5805
5806 2015-10-20  Richard Sandiford  <richard.sandiford@arm.com>
5807             Richard Biener  <rguenther@suse.de>
5808
5809         * genmatch.c (dt_simplify::gen): Skip captures that are
5810         part of the result.
5811         (parser::parse_expr): Allow captures in results too.
5812         * builtins.c (fold_builtin_cexp): Delete.
5813         (fold_builtin_1): Handle constant cexp arguments here.
5814         * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
5815
5816 2015-10-26  Mikhail Maltsev  <maltsevm@gmail.com>
5817
5818         * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
5819         conditional compilation.
5820         (base_pool_allocator::remove): Use flag_checking.
5821
5822 2015-10-25  John David Anglin  <danglin@gcc.gnu.org>
5823
5824         * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
5825
5826         PR middle-end/68079
5827         * dojump.c (do_compare_and_jump): Canonicalize both function and
5828         method types.
5829
5830 2015-10-25  Uros Bizjak  <ubizjak@gmail.com>
5831
5832         PR target/68084
5833         * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
5834         for =@ccae.
5835
5836 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
5837
5838         PR ipa/pr67600
5839         * ipa-polymorphic-call.c
5840         (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
5841         instance offset with offset of outer type.
5842
5843 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
5844
5845         * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
5846
5847 2015-10-23  Caroline Tice  <cmtice@google.com>
5848
5849         (from Richard Biener
5850         * tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
5851         call to iterative_hash_host_wide_int.
5852
5853 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
5854
5855         * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
5856         Define as yes.
5857
5858 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
5859
5860         * tree-vect-generic.c (expand_vector_operations_1): Check
5861         optab exists before use it.
5862
5863 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
5864
5865         * tree-vect-generic.c (expand_vector_condition): Avoid
5866         uninitialized variable warning.
5867
5868 2015-10-23  Jeff Law  <law@redhat.com>
5869
5870         * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
5871         here.  Instead...
5872         (execute_todo): Call it here.
5873         * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
5874         statistics
5875         (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
5876
5877 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
5878             Szabolcs Nagy  <szabolcs.nagy@arm.com>
5879
5880         * config.gcc (enable_secureplt): Add *-linux*-musl*.
5881
5882 2015-10-23  Jeff Law  <law@redhat.com>
5883
5884         PR tree-optimization/67830
5885         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
5886         Explicitly verify the mask has no bits outside the type of
5887         the innermost operands.
5888
5889 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
5890             Szabolcs Nagy  <szabolcs.nagy@arm.com>
5891
5892         * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
5893         (MUSL_DYNAMIC_LINKER64): Define.
5894         (GNU_USER_DYNAMIC_LINKER32): Update.
5895         (GNU_USER_DYNAMIC_LINKER64): Update.
5896         (CHOOSE_DYNAMIC_LINKER): Update.
5897
5898         * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
5899         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
5900         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
5901         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
5902         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
5903         (CHOOSE_DYNAMIC_LINKER): Update.
5904         (INCLUDE_DEFAULTS): Redefine.
5905
5906         * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
5907
5908 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
5909
5910         * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
5911         comparing addresses.
5912
5913 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
5914
5915         * fold-const.c (operand_equal_p): Handle matching of vector
5916         constructors.
5917
5918 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
5919
5920         * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
5921
5922 2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
5923             Andrew Pinski  <apinski@cavium.com>
5924
5925         PR rtl-optimization/67736
5926         * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
5927         of gen_lowpart.
5928
5929 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
5930
5931         PR middle-end/68066
5932         * tree.c (build_truth_vector_type): Support BLK mode
5933         returned for boolean vector.
5934
5935 2015-10-23  Alan Hayward <alan.hayward@arm.com>
5936
5937         PR tree-optimization/65947
5938         * tree-vect-loop.c
5939         (vect_is_simple_reduction_1): Find condition reductions.
5940         (vect_model_reduction_cost): Add condition reduction costs.
5941         (get_initial_def_for_reduction): Add condition reduction initial var.
5942         (vect_create_epilog_for_reduction): Add condition reduction epilog.
5943         (vectorizable_reduction): Condition reduction support.
5944         * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
5945         * doc/sourcebuild.texi (Vector-specific attributes): Document
5946         vect_max_reduc
5947
5948 2015-10-23  Richard Biener  <rguenther@suse.de>
5949
5950         * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
5951         and builtins.def.
5952
5953 2015-10-23  Richard Biener  <rguenther@suse.de>
5954             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
5955
5956         * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
5957         into (A ^ B) - B to match.pd
5958         Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
5959
5960         * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
5961         New simplifier.
5962         (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
5963         New simplifier.
5964         (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
5965         New simplifier.
5966         (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
5967         New simplifier.
5968         (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
5969         INTEGER_CST@1)): New simplifier.
5970
5971 2015-10-23  Richard Sandiford  <richard.sandiford@arm.com>
5972
5973         * builtins.c (integer_valued_real_p): Move to fold-const.c.
5974         (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
5975         (fold_builtin_ceil, fold_builtin_round): Delete.
5976         (fold_builtin_1): Handle constant trunc, floor, ceil and round
5977         arguments here.
5978         * convert.c (convert_to_real): Remove narrowing of rounding
5979         functions.
5980         * fold-const.h (integer_valued_real_unary_p)
5981         (integer_valued_real_binary_p, integer_valued_real_call_p)
5982         (integer_valued_real_single_p, integer_valued_real_p): Declare.
5983         * fold-const.c (tree_single_nonnegative_warnv_p): Move
5984         name_registered_for_update_p check to SSA_NAME case statement.
5985         Don't call tree_simple_nonnegative_warnv_p for SSA names.
5986         (integer_valued_real_unary_p, integer_valued_real_binary_p)
5987         (integer_valued_real_call_p, integer_valued_real_single_p)
5988         (integer_valued_real_invalid_p): New functions.
5989         (integer_valued_real_p): Move from fold-const.c and rework
5990         to call the functions above.  Handle SSA names.
5991         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
5992         * gimple-fold.c (gimple_assign_integer_valued_real_p)
5993         (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
5994         (gimple_stmt_integer_valued_real_p): New functions.
5995         * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
5996         Fold f(x)->x for the same f if x is known to be integer-valued.
5997         Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
5998         the result.  Canonicalize floor(x) as trunc(x) if x is
5999         nonnegative.
6000
6001 2015-10-23  Tom de Vries  <tom@codesourcery.com>
6002
6003         * tree-ssa-structalias.c (intra_create_variable_infos): Use
6004         make_constraint_from.
6005
6006 2015-10-23  Tom de Vries  <tom@codesourcery.com>
6007
6008         * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
6009         setting of is_full_var in case of a single field.
6010
6011 2015-10-22  Martin Sebor  <msebor@redhat.com>
6012
6013         PR driver/68043
6014         * config/i386/i386.opt: Add missing periods to the ends of sentences.
6015         * config/msp430/msp430.opt: Same.
6016
6017 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
6018
6019         * doc/extend.exp (Global Register Variables): Rewrite.
6020
6021 2015-10-22  Jeff Law  <law@redhat.com>
6022
6023         * genattrtab.c (main): If we do not have any annul-true or annul-false
6024         slots, then write out a dummy eligible_for_annul_true or
6025         eligible_for_annul_false as needed.
6026
6027 2015-10-22  Nick Clifton  <nickc@redhat.com>
6028
6029         * config/msp430/msp430.opt: Add -msilicon-errata and
6030         -msilicon-errata-warn.
6031         * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
6032         assembler.
6033         * doc/invoke.texi: Document new options.
6034
6035 2015-10-22  Richard Biener  <rguenther@suse.de>
6036
6037         PR tree-optimization/58497
6038         * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
6039         (expand_vector_operations_1): Use it.  Lower operations on
6040         all uniform vectors to scalar operations if the HW supports it.
6041
6042 2015-10-22  Richard Biener  <rguenther@suse.de>
6043
6044         PR tree-optimization/19049
6045         PR tree-optimization/65962
6046         * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
6047         to strided accesses if single-element interleaving doesn't work.
6048
6049 2015-10-22  Richard Biener  <rguenther@suse.de>
6050
6051         PR middle-end/68046
6052         PR middle-end/61893
6053         * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
6054         (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
6055         (expand_unop): Likewise.
6056
6057 2015-10-22  Richard Biener  <rguenther@suse.de>
6058
6059         * fold-const.c (fold_addr_of_array_ref_difference): Properly
6060         convert operands before folding a MINUS_EXPR.
6061         (fold_binary_loc): Move simplification of MINUS_EXPR on
6062         converted POINTER_PLUS_EXPRs ...
6063         * match.pd: ... here.
6064
6065 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
6066
6067         * builtins.c (fold_builtin_tan): Delete.
6068         (fold_builtin_1): Handle constant tan arguments here.
6069         * match.pd: Simplify (tan (atan x)) to x.
6070
6071 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
6072
6073         * builtins.c (fold_builtin_cproj): Delete.
6074         (fold_builtin_1): Handle constant arguments here.
6075         (build_complex_cproj): Move and rename to...
6076         * tree.c: (build_complex_inf): ...this.
6077         * tree.h (build_complex_inf): Declare.
6078         * match.pd: Fold cproj(x)->x if x has no infinity.
6079         Use build_complex_inf for existing cproj rules.
6080
6081 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6082
6083         PR target/68015
6084         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
6085         already have a comparison result.
6086
6087 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6088
6089         PR target/63304
6090         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
6091         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
6092         (aarch64_classify_address): Likewise.
6093         (aarch64_secondary_reload): Likewise.
6094         (aarch64_override_options_after_change_1): Adjust.
6095         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
6096         Use aarch64_nopcrelative_literal_loads.
6097         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
6098         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
6099         Declare.
6100
6101 2015-10-21  Martin Sebor  <msebor@redhat.com>
6102
6103         PR driver/68043
6104         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
6105         (print_filtered_help): Reference aliased option's name and encourage
6106         readers to use it in preference to the alias if the former is not
6107         documented.  Mention when using an option is diagnosed.
6108         * gcc.c (display_help): End each sentence with a period.
6109
6110         * common.opt: End each sentence that describes an option with
6111         a period.
6112         * config/aarch64/aarch64.opt: Same.
6113         * config/alpha/alpha.opt: Same.
6114         * config/arc/arc.opt: Same.
6115         * config/arm/arm.opt: Same.
6116         * config/avr/avr.opt: Same.
6117         * config/bfin/bfin.opt: Same.
6118         * config/c6x/c6x.opt: Same.
6119         * config/cr16/cr16.opt: Same.
6120         * config/cris/cris.opt: Same.
6121         * config/cris/linux.opt: Same.
6122         * config/darwin.opt: Same.
6123         * config/epiphany/epiphany.opt: Same.
6124         * config/fr30/fr30.opt: Same.
6125         * config/frv/frv.opt: Same.
6126         * config/ft32/ft32.opt: Same.
6127         * config/g.opt: Same.
6128         * config/h8300/h8300.opt: Same.
6129         * config/i386/cygming.opt: Same.
6130         * config/i386/djgpp.opt: Same.
6131         * config/i386/i386.opt: Same.
6132         * config/i386/interix.opt: Same.
6133         * config/i386/mingw-w64.opt: Same.
6134         * config/i386/mingw.opt: Same.
6135         * config/ia64/ia64.opt: Same.
6136         * config/ia64/ilp32.opt: Same.
6137         * config/iq2000/iq2000.opt: Same.
6138         * config/linux.opt: Same.
6139         * config/lm32/lm32.opt: Same.
6140         * config/lynx.opt: Same.
6141         * config/m32c/m32c.opt: Same.
6142         * config/m32r/m32r.opt: Same.
6143         * config/m68k/ieee.opt: Same.
6144         * config/m68k/m68k.opt: Same.
6145         * config/mcore/mcore.opt: Same.
6146         * config/mep/mep.opt: Same.
6147         * config/microblaze/microblaze.opt: Same.
6148         * config/mips/mips.opt: Same.
6149         * config/mmix/mmix.opt: Same.
6150         * config/mn10300/mn10300.opt: Same.
6151         * config/moxie/moxie.opt: Same.
6152         * config/msp430/msp430.opt: Same.
6153         * config/nios2/elf.opt: Same.
6154         * config/nios2/nios2.opt: Same.
6155         * config/nvptx/nvptx.opt: Same.
6156         * config/pa/pa-hpux.opt: Same.
6157         * config/pa/pa-hpux1010.opt: Same.
6158         * config/pa/pa-hpux1111.opt: Same.
6159         * config/pa/pa-hpux1131.opt: Same.
6160         * config/pa/pa.opt: Same.
6161         * config/pa/pa64-hpux.opt: Same.
6162         * config/pdp11/pdp11.opt: Same.
6163         * config/rl78/rl78.opt: Same.
6164         * config/rs6000/476.opt: Same.
6165         * config/rs6000/aix64.opt: Same.
6166         * config/rs6000/darwin.opt: Same.
6167         * config/rs6000/linux64.opt: Same.
6168         * config/rs6000/rs6000.opt: Same.
6169         * config/rs6000/sysv4.opt: Same.
6170         * config/s390/s390.opt: Same.
6171         * config/s390/tpf.opt: Same.
6172         * config/sh/sh.opt: Same.
6173         * config/sol2.opt: Same.
6174         * config/sparc/long-double-switch.opt: Same.
6175         * config/sparc/sparc.opt: Same.
6176         * config/spu/spu.opt: Same.
6177         * config/stormy16/stormy16.opt: Same.
6178         * config/tilegx/tilegx.opt: Same.
6179         * config/tilepro/tilepro.opt: Same.
6180         * config/v850/v850.opt: Same.
6181         * config/vax/vax.opt: Same.
6182         * config/visium/visium.opt: Same.
6183         * config/vms/vms.opt: Same.
6184         * config/vxworks.opt: Same.
6185         * config/xtensa/xtensa.opt: Same.
6186
6187 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
6188             Sebastian Pop  <s.pop@samsung.com>
6189
6190         * graphite-scop-detection.c (parameter_index_in_region): Update call to
6191         invariant_in_sese_p_rec.
6192         * graphite-sese-to-poly.c (extract_affine): Same.
6193         * sese.c (invariant_in_sese_p_rec): Pass in an extra
6194         parameter has_vdefs.
6195         (scalar_evolution_in_region): Return chrec_dont_know when the scalar
6196         variable depends on virtual definitions in the current region.
6197         * sese.h (invariant_in_sese_p_rec): Update declaration.
6198
6199 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
6200             Sebastian Pop  <s.pop@samsung.com>
6201
6202         * graphite-scop-detection.c (build_scops): Do not handle scops
6203         with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
6204         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
6205
6206 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
6207
6208         * config.in: Regenerate.
6209         * configure: Regenerate.
6210         * configure.ac (CHECKING_P): Define.
6211         * system.h: Use CHECKING_P.
6212
6213 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
6214
6215         PR ipa/67056
6216         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
6217         is negative we don't know the type.
6218         (check_stmt_for_type_change): Skip constructors of non-polymorphic
6219         types as those won't help devirutalization.
6220
6221 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
6222
6223         * fold-const.c (operand_equal_p): Add code matching empty constructors.
6224
6225 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6226
6227         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
6228         comments.
6229         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
6230         Add comments on sign of the result.
6231         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
6232         Recurse on operand #1 instead of operand #0.
6233         <CEIL_MOD_EXPR>: Do not recurse.
6234         <ROUND_MOD_EXPR>: Likewise.
6235
6236 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6237
6238         * cfgrtl.c (pass_free_cfg::execute): Adjust.
6239         * final.c (dbr_sequence_length): Always define.
6240         (shorten_branches): Adjust.
6241         * genattr-common.c (main): Always define DELAY_SLOTS.
6242         * genattr.c (main): Unconditionally declare functions and define
6243         macros related to delay slots.
6244         * genattrtab.c (write_eligible_delay): Adjust.
6245         (main): Always write out delay slot functions.
6246         * opts.c (default_options_table): Adjust.
6247         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
6248         (redirect_with_delay_list_safe_p): Likewise.
6249         (fill_simple_delay_slots): Likewise.
6250         (fill_slots_from_thread): Likewise.
6251         (make_return_insns): Likewise.
6252         (dbr_schedule): Likewise.
6253         (rest_of_handle_delay_slots): Likewise.
6254         (pass_delay_slots::gate): Likewise.
6255         * toplev.c (process_options): Likewise.
6256
6257 2015-10-21  Richard Henderson  <rth@redhat.com>
6258
6259         * targhooks.c (default_addr_space_pointer_mode): Remove check
6260         for generic address space.
6261         (default_addr_space_address_mode): Likewise.
6262         (default_addr_space_valid_pointer_mode): Likewise.
6263         (default_addr_space_legitimate_address_p): Likewise.
6264         (default_addr_space_legitimize_address): Likewise.
6265         * target.def (addr_space.pointer_mode): Update documentation
6266         of default behavior.
6267         (addr_space.address_mode): Likewise.
6268         * tm.texi: Update.
6269
6270         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
6271         address spaces.
6272
6273 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
6274
6275         * builtins.c (fold_builtin_cabs): Delete.
6276         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
6277         * match.pd: Add rules previously handled by fold_builtin_cabs.
6278
6279 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
6280
6281         * fold-const.h (fold_strip_sign_ops): Delete.
6282         * fold-const.c (fold_strip_sign_ops): Likewise.
6283         (fold_unary_loc, fold_binary_loc): Remove calls to it.
6284         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
6285         (fold_builtin_ccos): Delete.
6286         (fold_builtin_pow): Don't call fold_strip_sign_ops.
6287         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
6288         Remove fndecl argument.
6289         (fold_builtin_1): Update calls accordingly.  Handle constant
6290         cos, cosh, ccos and ccosh here.
6291
6292 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
6293
6294         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
6295         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
6296         * common.opt (fssa-backprop): New option.
6297         * fold-const.h (negate_mathfn_p): Declare.
6298         * fold-const.c (negate_mathfn_p): Make public.
6299         * timevar.def (TV_TREE_BACKPROP): New.
6300         * tree-pass.h (make_pass_backprop): Declare.
6301         * passes.def (pass_backprop): Add.
6302         * gimple-ssa-backprop.c: New file.
6303
6304 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
6305             Sebastian Pop  <s.pop@samsung.com>
6306
6307         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
6308         Do not call create_empty_if_region_on_edge when cond_expr is true.
6309         (translate_isl_ast_node_for): Check whether a guard has been generated.
6310
6311 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
6312
6313         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
6314         (operator=): Removed.
6315         (dr_info): Make alias_set number the last argument with default
6316         value of invalid_alias_set.
6317         * graphite-sese-to-poly.c (build_scop_drs): Update constructor
6318         of dr_info.
6319         (rewrite_reductions_out_of_ssa): Iterate only through the
6320         basic blocks which are inside region.
6321         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
6322         * sese.h (struct sese_l): Removed assignment operator.
6323         (split_region_for_bb): Removed dead code.
6324
6325 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
6326
6327         * graphite-poly.h (struct dr_info): Removed conversion constructor.
6328         (struct scop): Renamed scop::region to scop::scop_info
6329         (scop_set_region): Same.
6330         (SCOP_REGION): Removed
6331         (SCOP_CONTEXT): Removed.
6332         (POLY_SCOP_P): Removed.
6333         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
6334         Rename scop->region to scop->scop_info.
6335         (add_parameters_to_ivs_params): Same.
6336         (graphite_regenerate_ast_isl): Same.
6337         * graphite-poly.c (new_scop): Same.
6338         (free_scop): Same.
6339         (print_scop_params): Same.
6340         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
6341         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
6342         (dot_all_scops_1): Rename scop->region to scop->scop_info.
6343         (scop_detection::nb_pbbs_in_loops): Same.
6344         (find_scop_parameters): Same.
6345         (try_generate_gimple_bb): Same.
6346         (gather_bbs::before_dom_children): Same.
6347         (gather_bbs::after_dom_children): Same.
6348         (build_scops): Same.
6349         * graphite-sese-to-poly.c (build_scop_scattering): Same.
6350         (extract_affine_chrec): Same.
6351         (extract_affine): Same.
6352         (set_scop_parameter_dim): Same.
6353         (build_loop_iteration_domains): Same.
6354         (create_pw_aff_from_tree): Same.
6355         (add_param_constraints): Same.
6356         (build_scop_iteration_domain): Same.
6357         (build_scop_drs): Same.
6358         (analyze_drs_in_stmts): Same.
6359         (insert_out_of_ssa_copy_on_edge): Same.
6360         (rewrite_close_phi_out_of_ssa):Same.
6361         (rewrite_reductions_out_of_ssa):Same.
6362         (handle_scalar_deps_crossing_scop_limits):Same.
6363         (rewrite_cross_bb_scalar_deps):Same.
6364         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
6365         (build_poly_scop):Same.
6366         (build_alias_set): Use pointer to dr_info.
6367         * graphite.c (print_graphite_scop_statistics):
6368         (graphite_transform_loops):
6369         * sese.h (struct sese_l): Remove conversion constructor.
6370
6371 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
6372
6373         PR middle-end/67966
6374         * tree.c (verify_type): Verify that TYPE_MODE match
6375         between TYPE_CANONICAL and type.
6376         * expr.c (store_expr_with_bounds): Revert my previous change.
6377         * expmed.c (store_bit_field_1): Revert prevoius change.
6378         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
6379         to match for all types.
6380
6381 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
6382
6383         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
6384         nesting.
6385
6386 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
6387
6388         * doc/tm.texi: Regenerated.
6389         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
6390         * stor-layout.c (layout_type): Use mode to get vector mask size.
6391         * target.def (get_mask_mode): New.
6392         * targhooks.c (default_get_mask_mode): New.
6393         * targhooks.h (default_get_mask_mode): New.
6394         * tree-vect-stmts.c (get_same_sized_vectype): Add special case
6395         for boolean vector.
6396         * tree.c (MAX_BOOL_CACHED_PREC): New.
6397         (nonstandard_boolean_type_cache): New.
6398         (build_nonstandard_boolean_type): New.
6399         (make_vector_type): Vector mask has no canonical type.
6400         (build_truth_vector_type): New.
6401         (build_same_sized_truth_vector_type): New.
6402         (truth_type_for): Support vector masks.
6403         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
6404         (build_truth_vector_type): New.
6405         (build_same_sized_truth_vector_type): New.
6406         (build_nonstandard_boolean_type): New.
6407         * tree-cfg.c (verify_gimple_comparison) Require boolean
6408         vector type for vector comparison.
6409         (verify_gimple_assign_ternary): Likewise.
6410         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
6411         condition operand.
6412         * tree-vect-stmts.c (vectorizable_condition): Use boolean
6413         vector type for vector comparison.
6414         * tree-vect-generic.c (elem_op_func): Add new operand to hold
6415         vector type.
6416         (do_unop): Adjust to modified function type.
6417         (do_binop): Likewise.
6418         (do_plus_minus): Likewise.
6419         (do_negate); Likewise.
6420         (expand_vector_piecewise): Likewise.
6421         (do_cond): Likewise.
6422         (do_compare): Use comparison instead of condition.
6423         (expand_vector_divmod): Use boolean vector type for comparison.
6424         (expand_vector_operations_1): Skip scalar mask operations.
6425
6426 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
6427
6428         * omp-low.c (simd_clone_create): Set in_other_partition
6429         for created clones.
6430
6431 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
6432
6433         * doc/extend.exp (Local Register Variables): Rewrite.
6434
6435 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
6436
6437         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
6438         and x*x in cases where the operands are sign ops.  Extend these
6439         rules to handle copysign as a sign op (including for cos, cosh
6440         and pow, which already treated negate and abs as sign ops).
6441
6442 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
6443
6444         PR target/68018
6445         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
6446         for 64-bit MS_ABI targets also when default incoming stack boundary
6447         is overriden.
6448
6449 2015-10-21  Richard Biener  <rguenther@suse.de>
6450
6451         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
6452         cond stmts, enhanced and split out from ...
6453         (vn_phi_eq): ... here.
6454
6455 2015-10-21  Richard Biener  <rguenther@suse.de>
6456
6457         PR middle-end/68031
6458         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
6459         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
6460         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
6461         make sure they are not registered for update.
6462
6463 2015-10-21  Richard Biener  <rguenther@suse.de>
6464
6465         PR tree-optimization/68026
6466         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
6467         unsigned VARYING values.
6468
6469 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
6470
6471         * asan.c (asan_emit_stack_protection): Don't pass local stack to
6472         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
6473         NULL and use local stack than.
6474         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
6475         in addition to __asan_init.
6476         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
6477         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
6478         * asan.h (asan_intercepted_p): Handle new string builtins.
6479         * ubsan.c (ubsan_use_new_style_p): New function.
6480         (ubsan_instrument_float_cast): If location is unknown, assign
6481         input_location to loc. Propagate loc to ubsan_create_data if
6482         ubsan_use_new_style_p returned true.
6483
6484 2015-10-21  Jeff Law  <law@redhat.com>
6485
6486         * Makefile.in (OBJS): Remove sched-vis.c
6487         * sched-vis.c: Removed.  Code moved into...
6488         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
6489         * rtl.h: Remove prototypes for functions now living in print-rtl.c
6490         * print-rtl.h Add prototypes for new functions in print-rtl.c.
6491         * auto-inc-dec.c: Include print-rtl.h
6492         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
6493         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
6494
6495         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
6496         ATTRIBUTE_UNUSED.
6497
6498 2015-10-21  Richard Biener  <rguenther@suse.de>
6499             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6500
6501         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
6502         to match.pd.
6503         Move (a * (1 << b)) is (a << b) to match.pd.
6504         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
6505         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
6506         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
6507
6508         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
6509         New simplifier.
6510         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
6511         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
6512         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
6513         : New simplifier.
6514         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
6515         New simplifier.
6516         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
6517
6518 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
6519             Szabolcs Nagy  <szabolcs.nagy@arm.com>
6520             Alan Modra  <amodra@gmail.com>
6521
6522         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
6523         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
6524         (LINK_SPEC): Add %(link_secure_plt).
6525         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
6526         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
6527
6528 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
6529             Szabolcs Nagy  <szabolcs.nagy@arm.com>
6530
6531         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
6532         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
6533
6534 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6535
6536         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
6537         New function.
6538         (fusion_load_store): Use it.
6539         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
6540         ldp and stp in VD modes.
6541         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
6542         (store_pair<mode>, VD): Likewise.
6543
6544 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
6545
6546         PR rtl-optimization/67609
6547         * lra-splill.c (lra_final_code_change): Don't remove all
6548         sub-registers.
6549
6550 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6551
6552         * simplify-rtx.c (simplify_binary_operation): If either operand was
6553         a constant pool reference use them if all other simplifications failed.
6554
6555 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6556
6557         * config/aarch64/aarch64.md
6558         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
6559         * config/aarch64/aarch64-simd.md
6560         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
6561         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
6562         (aarch64_fpconst_pow_of_2): New function.
6563         (aarch64_vec_fpconst_pow_of_2): Likewise.
6564         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
6565         prototype.
6566         (aarch64_vec_fpconst_pow_of_2): Likewise.
6567         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
6568         (aarch64_fp_vec_pow2): Likewise.
6569
6570 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
6571
6572         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
6573         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
6574         * config/alpha/alpha.c (alpha_function_arg_advance): Update
6575         ALPHA_ARG_SIZE usage.
6576         (alpha_arg_partial_bytes): Ditto.
6577
6578 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
6579
6580         PR target/66810
6581         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
6582         error_mark_node decls.
6583
6584 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
6585
6586         PR target/67963
6587         PR target/67985
6588         * common/config/i386/i386-common.c (ix86_handle_option): Remove
6589         OPT_miamcu handling.
6590         * config/i386/i386.c (PTA_NO_80387): New macro.
6591         (processor_alias_table): Add PTA_NO_80387 to lakemont.
6592         (ix86_option_override_internal): Update MASK_80387 from
6593         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
6594         SSE math only if 80387 is supported.  Don't change
6595         MASK_FLOAT_RETURNS.
6596         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
6597         80387 is supported.
6598         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
6599         if TARGET_80387 is true and TARGET_IAMCU is false.
6600         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
6601         is true and TARGET_IAMCU_P is false.
6602
6603 2015-10-20  Richard Biener  <rguenther@suse.de>
6604
6605         PR tree-optimization/68017
6606         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
6607
6608 2015-10-20  Martin Liska  <mliska@suse.cz>
6609
6610         * cgraphclones.c (cgraph_node::create_virtual_clone):
6611         Verify cgraph_node.local.versionable instead of calling
6612         tree_versionable_function_p.
6613         * ipa-cp.c (determine_versionability): Save the information
6614         to ipa_node_params summary.
6615         (ipcp_versionable_function_p): Use it.
6616         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
6617         (ipcp_generate_summary): Do not compute cgraph_node
6618         versionability.
6619         * ipa-inline-analysis.c (inline_generate_summary): Compute
6620         versionability for all cgraph nodes.
6621         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
6622         ipa_node_params::versionability.
6623         * ipa-prop.h (struct ipa_node_params): Declare it.
6624
6625 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6626
6627         PR other/67868
6628         * varasm.c (assemble_variable): Move special vtv handling to..
6629         (handle_vtv_comdat_sections): .. here. New function.
6630         (output_object_block): Handle vtv sections.
6631
6632 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
6633
6634         PR target/66912
6635         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
6636
6637 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
6638
6639         * doc/extend.texi: Update documentation WRT inline functions.
6640
6641 2015-10-20  Alan Modra  <amodra@gmail.com>
6642
6643         PR go/66870
6644         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
6645         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
6646         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
6647
6648 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
6649
6650         PR rtl-optimization/66790
6651         * df.h (DF_MIR): New macro.
6652         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
6653         (DF_MIR_INFO_BB): New macro.
6654         (DF_MIR_IN, DF_MIR_OUT): New macros.
6655         (struct df_mir_bb_info): New.
6656         (df_mir): New macro.
6657         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
6658         declarations.
6659         (df_mir_get_bb_info): New.
6660         * df-problems.c (struct df_mir_problem_data): New.
6661         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
6662         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
6663         df_mir_confluence_0, df_mir_confluence_n,
6664         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
6665         df_mir_bottom_dump, df_mir_verify_solution_start,
6666         df_mir_verify_solution_end): New.
6667         (problem_MIR): New.
6668         (df_mir_add_problem, df_mir_simulate_one_insn): New.
6669         * timevar.def (TV_DF_MIR): New.
6670         * ree.c: Include bitmap.h
6671         (add_removable_extension): Add an INIT_REGS parameter.  Use it
6672         to skip zero-extensions that may get an uninitialized register.
6673         (find_removable_extensions): Compute must-initialized registers
6674         using the MIR dataflow problem. Update the call to
6675         add_removable_extension.
6676         (find_and_remove_re): Call df_mir_add_problem.
6677
6678 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
6679
6680         * common/config/mn10300/mn10300-common.c
6681         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
6682         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
6683
6684 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
6685
6686         * doc/extend.texi (Explicit Register Variables): Simplify and
6687         avoid unnecessary and confusion abbreviations.  Update cross
6688         references.
6689         doc/implement-c.tex: Update cross reference.
6690
6691 2015-10-19  Jeff Law  <law@redhat.com>
6692
6693         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
6694         that create irreducible loops unless the path elimiantes a multiway
6695         branch.
6696
6697 2015-10-19  Richard Biener  <rguenther@suse.de>
6698
6699         PR tree-optimization/67975
6700         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
6701         * tree-cfg.c (extract_true_false_controlled_edges): Split out
6702         core worker from ...
6703         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
6704         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
6705         instead of block number for PHIs with two or one args.
6706         (vn_phi_eq): Compare edge predicates of PHIs that are in different
6707         blocks.
6708
6709 2015-10-19  Richard Biener  <rguenther@suse.de>
6710
6711         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
6712         (gimple_stmt_nonnegative_warnv_p): Use it.
6713         * match.pd (CPROJ): New operator list.
6714         (cproj (complex ...)): Move simplifications from ...
6715         * builtins.c (fold_builtin_cproj): ... here.
6716
6717 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
6718
6719         * config/i386/i386.c (ix86_expand_vector_move): Use
6720         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
6721         alignment.
6722
6723 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
6724
6725         * doc/invoke.texi: Replace @optindex with @opindex.
6726
6727 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
6728
6729         PR target/67995
6730         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
6731         arch= is set,  clear all bits in x_ix86_isa_flags, except for
6732         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
6733
6734 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
6735
6736         PR middle-end/68002
6737         * common.opt (fkeep-static-functions): New option.
6738         * doc/invoke.texi: Document it.
6739         * cgraphunit.c (cgraph_node::finalize_function): Use it.
6740
6741 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6742
6743         * sched-int.h (struct autopref_multipass_data_): Remove offset
6744         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
6745         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
6746         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
6747         (autopref_rank_data): New function.
6748         (autopref_rank_for_schedule): Use it.
6749         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
6750
6751 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
6752
6753         PR other/65800
6754         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
6755
6756 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
6757
6758         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
6759         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
6760         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
6761         (STANDARD_STARTFILE_PREFIX_1): New.
6762         (STANDARD_STARTFILE_PREFIX_2): New.
6763
6764 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
6765
6766         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
6767         (darwin_driver_init): Note a version-min when provided on the c/l.
6768         * config/darwin.h (%darwin_minversion): Remove.
6769         * config/i386/darwin.h: Likewise.
6770         * config/rs6000/darwin.h: Likewise.
6771         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
6772         rather than an arbitrary constant.
6773
6774 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
6775
6776         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
6777         PPC, detect conflicts between -arch and multilib settings.  Detect
6778         and warn about conflicts between multiple -arch definitions.
6779
6780 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
6781
6782         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
6783
6784 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6785
6786         * lra-constraints.c (add_next_usage_insn): Change argument type
6787         from rtx to rtx_insn *.
6788
6789 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
6790
6791         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
6792         for Lakemont.
6793
6794 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
6795
6796         * config/tilepro/gen-mul-tables.cc: Adjust include files.
6797         * config/tilegx/mul-tables.c: Regenerate.
6798         * config/tilepro/mul-tables.c: Regenerate.
6799
6800         * config/tilegx/tilegx-c.c: Adjust include files.
6801         * config/tilegx/tilegx.c: Likewise.
6802         * config/tilepro/tilepro-c.c: Likewise.
6803         * config/tilepro/tilepro.c: Likewise.
6804         * config/aarch64/aarch64-builtins.c: Likewise.
6805         * config/aarch64/aarch64.c: Likewise.
6806         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
6807         * config/alpha/alpha.c: Likewise.
6808         * config/arc/arc.c: Likewise.
6809         * config/arm/aarch-common.c: Likewise.
6810         * config/arm/arm-builtins.c: Likewise.
6811         * config/arm/arm-c.c: Likewise.
6812         * config/arm/arm.c: Likewise.
6813         * config/avr/avr-c.c: Likewise.
6814         * config/avr/avr-devices.c: Likewise.
6815         * config/avr/avr-log.c: Likewise.
6816         * config/avr/avr.c: Likewise.
6817         * config/bfin/bfin.c: Likewise.
6818         * config/c6x/c6x.c: Likewise.
6819         * config/cr16/cr16.c: Likewise.
6820         * config/cris/cris.c: Likewise.
6821         * config/darwin-c.c: Likewise.
6822         * config/darwin-driver.c: Likewise.
6823         * config/darwin.c: Likewise.
6824         * config/default-c.c: Likewise.
6825         * config/epiphany/epiphany.c: Likewise.
6826         * config/epiphany/mode-switch-use.c: Likewise.
6827         * config/epiphany/resolve-sw-modes.c: Likewise.
6828         * config/fr30/fr30.c: Likewise.
6829         * config/frv/frv.c: Likewise.
6830         * config/ft32/ft32.c: Likewise.
6831         * config/glibc-c.c: Likewise.
6832         * config/h8300/h8300.c: Likewise.
6833         * config/i386/host-cygwin.c: Likewise.
6834         * config/i386/host-mingw32.c: Likewise.
6835         * config/i386/i386-c.c: Likewise.
6836         * config/i386/i386.c: Likewise.
6837         * config/i386/msformat-c.c: Likewise.
6838         * config/i386/winnt-cxx.c: Likewise.
6839         * config/i386/winnt-stubs.c: Likewise.
6840         * config/i386/winnt.c: Likewise.
6841         * config/ia64/ia64-c.c: Likewise.
6842         * config/ia64/ia64.c: Likewise.
6843         * config/iq2000/iq2000.c: Likewise.
6844         * config/lm32/lm32.c: Likewise.
6845         * config/m32c/m32c-pragma.c: Likewise.
6846         * config/m32c/m32c.c: Likewise.
6847         * config/m32r/m32r.c: Likewise.
6848         * config/mcore/mcore.c: Likewise.
6849         * config/mep/mep-pragma.c: Likewise.
6850         * config/mep/mep.c: Likewise.
6851         * config/microblaze/microblaze-c.c: Likewise.
6852         * config/microblaze/microblaze.c: Likewise.
6853         * config/mips/mips-tables.opt
6854         * config/mips/mips.c: Likewise.
6855         * config/mmix/mmix.c: Likewise.
6856         * config/mn10300/mn10300.c: Likewise.
6857         * config/moxie/moxie.c: Likewise.
6858         * config/msp430/msp430-c.c: Likewise.
6859         * config/msp430/msp430.c: Likewise.
6860         * config/nds32/nds32-cost.c: Likewise.
6861         * config/nds32/nds32-fp-as-gp.c: Likewise.
6862         * config/nds32/nds32-intrinsic.c: Likewise.
6863         * config/nds32/nds32-isr.c: Likewise.
6864         * config/nds32/nds32-md-auxiliary.c: Likewise.
6865         * config/nds32/nds32-memory-manipulation.c: Likewise.
6866         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
6867         * config/nds32/nds32-predicates.c: Likewise.
6868         * config/nds32/nds32.c: Likewise.
6869         * config/nios2/nios2.c: Likewise.
6870         * config/nvptx/mkoffload.c: Likewise.
6871         * config/nvptx/nvptx.c: Likewise.
6872         * config/pa/pa.c: Likewise.
6873         * config/pdp11/pdp11.c: Likewise.
6874         * config/rl78/rl78-c.c: Likewise.
6875         * config/rl78/rl78.c: Likewise.
6876         * config/rs6000/host-darwin.c: Likewise.
6877         * config/rs6000/rs6000-c.c: Likewise.
6878         * config/rs6000/rs6000-linux.c: Likewise.
6879         * config/rs6000/rs6000.c: Likewise.
6880         * config/rx/rx.c: Likewise.
6881         * config/s390/s390-c.c: Likewise.
6882         * config/s390/s390.c: Likewise.
6883         * config/sh/sh-c.c: Likewise.
6884         * config/sh/sh-mem.cc: Likewise.
6885         * config/sh/sh.c: Likewise.
6886         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
6887         * config/sh/sh_treg_combine.cc: Likewise.
6888         * config/sol2-c.c: Likewise.
6889         * config/sol2-cxx.c: Likewise.
6890         * config/sol2-stubs.c: Likewise.
6891         * config/sol2.c: Likewise.
6892         * config/sparc/sparc-c.c: Likewise.
6893         * config/sparc/sparc.c: Likewise.
6894         * config/spu/spu-c.c: Likewise.
6895         * config/spu/spu.c: Likewise.
6896         * config/stormy16/stormy16.c: Likewise.
6897         * config/v850/v850-c.c: Likewise.
6898         * config/v850/v850.c: Likewise.
6899         * config/vax/vax.c: Likewise.
6900         * config/visium/visium.c: Likewise.
6901         * config/vms/vms-c.c: Likewise.
6902         * config/vms/vms.c: Likewise.
6903         * config/vxworks.c: Likewise.
6904         * config/winnt-c.c: Likewise.
6905         * config/xtensa/xtensa.c: Likewise.
6906
6907 2015-10-16  Christian Bruel  <christian.bruel@st.com>
6908
6909         PR target/67745
6910         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
6911         (FUNCTION_BOUNDARY_P): New macro:
6912         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
6913         New hook.
6914         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
6915         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
6916         * target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
6917         * function.c (allocate_struct_function): Call
6918         relayout_function hook.
6919         * passes.c (rest_of_decl_compilation): Likewise.
6920
6921 2015-10-16  Christian Bruel  <christian.bruel@st.com>
6922
6923         PR target/67745
6924         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
6925         * config/arm/arm.c (arm_option_override_internal): Call
6926         arm_override_options_after_change_1.
6927         (arm_override_options_after_change): New function.
6928         (arm_override_options_after_change_1): Likewise.
6929         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
6930
6931 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
6932
6933         Revert:
6934         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
6935         empty constructors.
6936
6937 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
6938
6939         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
6940         argument is an ADDR_EXPR.
6941
6942 2015-10-16  Richard Biener  <rguenther@suse.de>
6943
6944         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
6945         and get rid of force_gimple_operand_gsi.
6946         (gimple_fold_builtin_memory_chk): Likewise.
6947         (gimple_fold_builtin_stxcpy_chk): Likewise.
6948         (rewrite_to_defined_overflow): Likewise.
6949         (gimple_convert_to_ptrofftype): New function.
6950         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
6951
6952 2015-10-16  Richard Biener  <rguenther@suse.de>
6953
6954         * tree-nested.h (build_addr): Adjust prototype.
6955         * tree-nested.c (build_addr): Remove context argument and use
6956         mark_addressable.
6957         (get_static_chain): Adjust calls to build_addr.
6958         (convert_nl_goto_reference): Likewise.
6959         (convert_tramp_reference_op): Likewise.
6960         (finalize_nesting_tree_1): Likewise.
6961         * value-prof.c (gimple_ic): Likewise.
6962         * gimple-low.c (lower_builtin_setjmp): Likewise.
6963         * tree-parloops.c (take_address_of): Likewise.
6964         (create_call_for_reduction_1): Likewise.
6965         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
6966         (gimple_gen_ic_func_profiler): Likewise.
6967
6968 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
6969
6970         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
6971         empty constructors.
6972
6973 2015-10-16  Michael Collison  <michael.collison@linaro.org>
6974             Andrew Pinski <andrew.pinski@caviumnetworks.com>
6975
6976         * match.pd ((x < y) && (x < z) -> x < min (y,z),
6977         (x > y) and (x > z) -> x > max (y,z))
6978
6979 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
6980             Szabolcs Nagy  <szabolcs.nagy@arm.com>
6981
6982         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
6983         (DYNAMIC_LINKER): Renamed to ...
6984         (GLIBC_DYNAMIC_LINKER): This.
6985         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
6986
6987 2015-10-15  Marek Polacek  <polacek@redhat.com>
6988
6989         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
6990         gimple_call_builtin instead of is_gimple_call.
6991
6992 2015-10-15  Richard Biener  <rguenther@suse.de>
6993
6994         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
6995
6996 2015-10-15  Richard Biener  <rguenther@suse.de>
6997
6998         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
6999         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
7000         * tree-vect-loop.c (get_initial_def_for_induction): Drop
7001         use of force_gimple_operand in favor of gimple_build.
7002         Use vect_get_new_ssa_name.
7003         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
7004         (vectorizable_mask_load_store): Likewise.
7005         (vectorizable_call): Likewise.
7006         (vectorizable_store): Likewise.
7007         (vectorizable_load): Likewise.
7008         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
7009
7010 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
7011
7012         PR tree-optimization/67945
7013         * tree-pass.h (PROP_gimple_opt_math): New property flag.
7014         * generic-match-head.c (canonicalize_math_p): New function.
7015         * gimple-match-head.c: Include tree-pass.h.
7016         (canonicalize_math_p): New function.
7017         * match.pd: Group math built-in rules into simplifications
7018         and canonicalizations.  Guard the latter with canonicalize_math_p.
7019         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
7020         PROP_gimple_opt_math property.
7021
7022 2015-10-15  Marek Polacek  <polacek@redhat.com>
7023
7024         PR tree-optimization/67953
7025         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
7026
7027 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
7028
7029         * config.gcc: Recognize "." in architecture base name for AArch64.
7030
7031 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
7032
7033         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
7034         ROUND_UP macro.
7035         * config/mips/mips.c (mips_setup_incoming_varargs): Use
7036         ROUND_DOWN to calculate off.
7037         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
7038         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
7039         rounded_size.
7040
7041 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7042
7043         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
7044
7045 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
7046             Torvald Riegel  <triegel@redhat.com>
7047
7048         PR target/67281
7049         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
7050         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
7051         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
7052         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
7053         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
7054         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
7055         trechkpt, treclaim, tsr, ttest): New define_expands.
7056         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
7057         __TM_FENCE__ for htm.
7058         * doc/extend.texi: Update documentation for htm builtins.
7059
7060 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
7061
7062         PR target/67967
7063         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
7064         REG_CFA_EXPRESSION to aligned SSE stores.
7065
7066 2015-10-14  Jeff Law  <law@redhat.com>
7067
7068         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
7069         num_threaded_edges for successful FSM threads too.
7070
7071 2015-10-14  Richard Biener  <rguenther@suse.de>
7072
7073         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
7074         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
7075         (vect_get_vec_def_for_operand): Remove unused parameter.
7076         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
7077         (vect_create_epilog_for_reduction): Likewise.
7078         (vectorizable_reduction): Likewise.
7079         (vectorizable_live_operation): Likewise.
7080         * tree-vect-patterns.c (type_conversion_p): Likewise.
7081         (vect_recog_vector_vector_shift_pattern): Likewise.
7082         (check_bool_pattern): Likewise.
7083         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
7084         (vect_analyze_slp_cost_1): Likewise.
7085         * tree-vect-stmts.c (process_use): Likewise.
7086         (vect_get_vec_def_for_operand): Do not handle reductions.
7087         (vect_get_vec_defs): Adjust.
7088         (vectorizable_mask_load_store): Likewise.
7089         (vectorizable_call): Likewise.
7090         (vectorizable_simd_clone_call): Likewise.
7091         (vect_get_loop_based_defs): Likewise.
7092         (vectorizable_conversion): Likewise.
7093         (vectorizable_assignment): Likewise.
7094         (vectorizable_shift): Likewise.
7095         (vectorizable_operation): Likewise.
7096         (vectorizable_store): Likewise.
7097         (vectorizable_load): Likewise.
7098         (vect_is_simple_cond): Likewise.
7099         (vectorizable_condition): Likewise.
7100         (vect_is_simple_use): Remove unused parameters.
7101         (vect_is_simple_use_1): Adjust and rename.
7102
7103 2015-10-14  Richard Biener  <rguenther@suse.de>
7104
7105         PR tree-optimization/67915
7106         * match.pd: Handle comparisons of addresses of STRING_CSTs.
7107         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
7108         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
7109         stmt folding in favor of GIMPLE one.
7110
7111 2015-10-14  Marek Polacek  <polacek@redhat.com>
7112
7113         PR tree-optimization/67815
7114         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
7115         (reassociate_bb): Call it.
7116
7117 2015-10-14  Richard Biener  <rguenther@suse.de>
7118
7119         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
7120         Reset info at start.
7121         (vect_analyze_group_access_1): Add debug print.
7122         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
7123         (vect_compute_single_scalar_iteration_cost): ... to this.
7124         (vect_analyze_loop_2): Adjust.
7125         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
7126         * tree-vectorizer.h: ... here.
7127         (add_stmt_info_to_vec): Remove.
7128         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
7129
7130 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7131
7132         * targhooks.c (default_target_option_pragma_parse): Do not warn if
7133         called on behalf of "#pragma GCC pop_options".
7134
7135 2015-10-14  Tom de Vries  <tom@codesourcery.com>
7136
7137         * cfganal.c (verify_no_unreachable_blocks): New function.
7138         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
7139         verify_no_unreachable_blocks.
7140         cfganal.h (verify_no_unreachable_blocks): Declare.
7141
7142 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
7143
7144         * common.opt: Add flag_checking.
7145         * system.h (CHECKING_P): Define.
7146
7147 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
7148             Aldy Hernandez  <aldyh@redhat.com>
7149             Ilya Verbin  <ilya.verbin@intel.com>
7150
7151         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
7152         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
7153         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
7154         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
7155         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
7156         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
7157         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
7158         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
7159         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
7160         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
7161         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
7162         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
7163         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
7164         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
7165         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
7166         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
7167         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
7168         (struct cgraph_simd_clone_arg): Adjust comment.
7169         * coretypes.h (struct gomp_ordered): New forward decl.
7170         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
7171         set critical clauses to it.
7172         (gimple_build_omp_ordered): Return gomp_ordered * instead of
7173         gimple *.  Add CLAUSES argument, set ordered clauses to it.
7174         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
7175         GIMPLE_OMP_ORDERED.
7176         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
7177         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
7178         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
7179         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
7180         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
7181         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
7182         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
7183         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
7184         renumber
7185         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
7186         (gomp_critical): Add clauses field.
7187         (gomp_ordered): New struct.
7188         (is_a_helper <gomp_ordered *>::test): New inline.
7189         (gimple_build_omp_critical): Add CLAUSES argument.
7190         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
7191         instead of gimple *.
7192         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
7193         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
7194         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
7195         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
7196         inline functions.
7197         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
7198         (dump_gimple_omp_target): Handle enter data and exit data.
7199         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
7200         (dump_gimple_omp_critical): Print clauses.
7201         (dump_gimple_omp_ordered): New function.
7202         (dump_gimple_omp_task): Handle taskloop.
7203         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
7204         GIMPLE_OMP_ORDERED.
7205         * gimple-walk.c (walk_gimple_op): Walk clauses on
7206         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
7207         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
7208         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
7209         (struct gimplify_omp_ctx): Add loop_iter_var,
7210         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
7211         and target_firstprivatize_array_bases fields.
7212         (delete_omp_context): Release loop_iter_var.
7213         (gimplify_bind_expr): Handle ORT_NONE.
7214         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
7215         ORT_COMBINED_TARGET.
7216         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
7217         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
7218         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
7219         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
7220         ctx->target_map_scalars_firstprivate.
7221         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
7222         data sharing clauses.  For data sharing clause with VLA decl
7223         on omp target/target data don't add firstprivate for the pointer.
7224         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
7225         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
7226         the addition of ORT_COMBINED_TARGET.
7227         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
7228         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
7229         pointers as zero length array sections and
7230         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
7231         data sharing.
7232         (omp_check_private): Handle omp_member_access_dummy_var vars.
7233         (find_decl_expr): New function.
7234         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
7235         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
7236         Handle OMP_CLAUSE_GANG separately.  Handle
7237         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
7238         clauses.  Diagnose linear clause on combined
7239         distribute {, parallel for} simd construct, unless it is the loop
7240         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
7241         Handle map clauses with COMPONENT_REF.  Initialize
7242         ctx->target_map_scalars_firstprivate,
7243         ctx->target_firstprivatize_array_bases and
7244         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
7245         linear clause even to target region if combined.  Remove
7246         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
7247         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
7248         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
7249         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
7250         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
7251         For linear clause on worksharing loop combined with parallel add
7252         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
7253         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
7254         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
7255         taskloop if needed.
7256         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
7257         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
7258         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
7259         GOMP_MAP_POINTER.
7260         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
7261         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
7262         in target body.  Handle removal of struct mapping if struct is not
7263         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
7264         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
7265         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
7266         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
7267         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
7268         clause appear together.  Handle
7269         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
7270         clause if it has map-type-modifier always.  Handle
7271         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
7272         clauses.
7273         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
7274         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
7275         callers.
7276         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
7277         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
7278         iterators in doacross loops.
7279         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
7280         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
7281         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
7282         for the addition of ORT_COMBINED_TARGET.
7283         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
7284         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
7285         and OMP_TARGET_EXIT_DATA.
7286         (gimplify_omp_ordered): New function.
7287         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
7288         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
7289         Gimplify clauses on OMP_CRITICAL.
7290         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
7291         expand_GOMP_SIMD_ORDERED_END): New functions.
7292         * internal-fn.def (GOMP_SIMD_ORDERED_START,
7293         GOMP_SIMD_ORDERED_END): New internal functions.
7294         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
7295         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
7296         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
7297         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
7298         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
7299         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
7300         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
7301         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
7302         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
7303         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
7304         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
7305         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
7306         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
7307         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
7308         adjust type.
7309         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
7310         GOMP_target_data_41, adjust type.
7311         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
7312         GOMP_target_update_41, adjust type.
7313         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
7314         field.
7315         (struct omp_for_data): Add ordered and simd_schedule fields.
7316         (omp_member_access_dummy_var, unshare_and_remap_1,
7317         unshare_and_remap, is_taskloop_ctx): New functions.
7318         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
7319         (extract_omp_for_data): Handle taskloops and doacross loops
7320         and simd schedule modifier.
7321         (omp_adjust_chunk_size): New function.
7322         (get_ws_args_for): Use it.
7323         (lookup_sfield): Change first argument to splay_tree_key,
7324         add overload with first argument tree.
7325         (maybe_lookup_field): Likewise.
7326         (use_pointer_for_field): Handle omp_member_access_dummy_var.
7327         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
7328         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
7329         (build_outer_var_ref): Add LASTPRIVATE argument, handle
7330         taskloops and omp_member_access_dummy_var vars.
7331         (build_sender_ref): Change first argument to splay_tree_key,
7332         add overload with first argument tree.
7333         (install_var_field): For mask & 8 use &DECL_UID as key instead
7334         of the tree itself.
7335         (fixup_child_record_type): Const qualify *.omp_data_i.
7336         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
7337         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
7338         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
7339         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
7340         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
7341         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
7342         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
7343         kinds.
7344         (add_taskreg_looptemp_clauses): New function.
7345         (scan_omp_parallel): Use it.
7346         (scan_omp_task): Likewise.
7347         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
7348         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
7349         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
7350         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
7351         sandwiched taskloop constructs.  Type check
7352         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
7353         region.  Diagnose depend(source) or depend(sink:...) on
7354         target constructs or task/taskloop.
7355         (handle_simd_reference): Use get_name.
7356         (lower_rec_input_clauses): Likewise.  Ignore all
7357         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
7358         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
7359         before passing it to omp_clause_{default,copy}_ctor.  Handle
7360         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
7361         lastprivate_firstprivate flag for linear that needs copyin and
7362         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
7363         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
7364         on taskloop lookup decl in outer context.  Pass true to
7365         build_outer_var_ref lastprivate argument.  Handle
7366         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
7367         outside of outer taskloop for.
7368         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
7369         OMP_CLAUSE_DECL.
7370         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
7371         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
7372         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
7373         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
7374         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
7375         abstract origin.  Handle omp_member_access_dummy_var vars.
7376         (expand_parallel_call): Use expand_omp_build_assign.
7377         (expand_task_call): Handle taskloop construct expansion.  Add
7378         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
7379         integers.  Add priority argument to GOMP_task* calls.  Or in
7380         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
7381         GOMP_task call.
7382         (expand_omp_build_assign): Add prototype.  Add AFTER
7383         argument, if true emit statements after *GSI_P and continue linking.
7384         (expand_omp_taskreg): Adjust expand_task_call caller.
7385         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
7386         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
7387         zero_iter2_bb and first_zero_iter2 arguments, handle computation
7388         of counts even for ordered loops.
7389         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
7390         (expand_omp_ordered_source, expand_omp_ordered_sink,
7391         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
7392         functions.
7393         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
7394         clauses on worksharing loop.  Handle DOACROSS loop expansion.
7395         (expand_omp_for_static_nochunk): Handle linear clauses on
7396         worksharing loop.  Adjust expand_omp_for_init_counts
7397         callers.
7398         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
7399         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
7400         expand_omp_for_init_counts callers.
7401         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
7402         functions.
7403         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
7404         Handle doacross loops.
7405         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
7406         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
7407         GOMP_target_{41,update_41,enter_exit_data} libcalls.
7408         (expand_omp): Don't expand ordered depend constructs here, record
7409         ord_stmt instead for later expand_omp_for_generic.
7410         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
7411         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
7412         clause as stand-alone directive.
7413         (lower_omp_ordered_clauses): New function.
7414         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
7415         don't lower anything.
7416         (lower_omp_for_lastprivate): Use last _looptemp_ clause
7417         on taskloop for comparison.
7418         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
7419         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
7420         expansion for linear adjustments.
7421         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
7422         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
7423         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
7424         to tree * pointing to the stmt's clauses.
7425         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
7426         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
7427         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
7428         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
7429         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
7430         clauses.  Always use short kind and 8-bit align shift.
7431         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
7432         (struct lower_omp_regimplify_operands_data): New type.
7433         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
7434         New functions.
7435         (lower_omp_1): Use lower_omp_regimplify_operands instead of
7436         gimple_regimplify_operands.
7437         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
7438         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
7439         clause as stand-alone directive.
7440         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
7441         (simd_clone_mangle): Mangle the various linear kinds
7442         per the new ABI.
7443         (simd_clone_adjust_argument_types): Handle
7444         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
7445         (simd_clone_init_simd_arrays): Don't do anything for uval.
7446         (simd_clone_adjust): Handle
7447         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
7448         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
7449         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
7450         * omp-low.h (omp_member_access_dummy_var): New prototype.
7451         * passes.def (pass_simduid_cleanup): Schedule another copy of the
7452         pass after all optimizations.
7453         * tree.c (omp_clause_code_name): Add entries for
7454         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
7455         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
7456         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
7457         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
7458         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
7459         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
7460         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
7461         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
7462         clauses.
7463         * tree-core.h (enum omp_clause_linear_kind): New.
7464         (struct tree_omp_clause): Change type of map_kind
7465         from unsigned char to unsigned int.  Add subcode.if_modifier
7466         and subcode.linear_kind fields.
7467         (enum omp_clause_code): Add
7468         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
7469         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
7470         (OMP_CLAUSE_REDUCTION): Document
7471         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
7472         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
7473         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
7474         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
7475         operand.
7476         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
7477         operand.
7478         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
7479         codes.
7480         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
7481         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
7482         char.
7483         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
7484         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
7485         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
7486         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
7487         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
7488         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
7489         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
7490         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
7491         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
7492         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
7493         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
7494         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
7495         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
7496         * tree-inline.c (remap_gimple_stmt): Handle clauses on
7497         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
7498         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
7499         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
7500         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
7501         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
7502         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
7503         (convert_local_omp_clauses): Likewise.
7504         * tree-pretty-print.c (dump_omp_clause): Handle
7505         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
7506         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
7507         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
7508         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
7509         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
7510         GOMP_MAP_FORCE_DEALLOC.  Handle
7511         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
7512         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
7513         and clauses on OMP_ORDERED and OMP_CRITICAL.
7514         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
7515         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
7516         (vectorize_loops): Adjust comments.
7517         (pass_simduid_cleanup::execute): Likewise.
7518         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
7519         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
7520         * wide-int.h (wi::gcd): New.
7521
7522 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
7523
7524         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
7525         (ix86_function_arg_advance): Ditto.
7526         (ix86_function_arg): Ditto.
7527         (ix86_gimplify_va_arg): Ditto.
7528         (ix86_class_max_nregs): Ditto.
7529         (inline_memory_move_cost): Ditto.
7530         (ix86_set_reg_reg_cost): Ditto.
7531         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
7532
7533 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
7534
7535         PR middle-end/67912
7536         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
7537
7538 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
7539
7540         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
7541         ROUND_UP macro and UNITS_PER_WORD * 2.
7542         * config/sparc/sparc.c (sparc_compute_frame_size):
7543         Use ROUND_UP and ROUND_DOWN macros where applicable.
7544         (function_arg_record_value, function_arg_record_value_1)
7545         (function_arg_record_value_1): Ditto.
7546         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
7547         alignment to double-word.
7548         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
7549         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
7550         rounded_size.
7551
7552 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
7553
7554         * rtl.h (print_insn): Fix prototype.
7555
7556 2015-10-13  Tom de Vries  <tom@codesourcery.com>
7557
7558         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
7559         -1.  Add assert that returned entry matches phi argument.
7560         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
7561         free_stmt_vec_info_vec ...
7562         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
7563         with -1.
7564
7565 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
7566
7567         PR tree-optimization/67909, 67947
7568         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
7569         really skip the inner loop.
7570
7571 2015-10-13  Jeff Law  <law@redhat.com>
7572
7573         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7574         Allow single block jump threading paths.
7575
7576 2015-10-13  Tom de Vries  <tom@codesourcery.com>
7577
7578         PR tree-optimization/67476
7579         * doc/invoke.texi (@item parloops-schedule): New item.
7580         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
7581         * tree-parloops.c: Include params-enum.h.
7582         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
7583
7584 2015-10-13  Tom de Vries  <tom@codesourcery.com>
7585
7586         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
7587         * params-enum.h: New file.
7588         * opts.c (handle_param): Handle case that param arg is a string.
7589         * params-list.h: Handle DEFPARAMENUM5 in params.def.
7590         * params.c (find_param): New function, factored out of ...
7591         (set_param_value): ... here.
7592         (param_string_value_p): New function.
7593         * params.h (struct param_info): Add value_names field.
7594         (find_param, param_string_value_p): Declare.
7595
7596 2015-10-13  Tom de Vries  <tom@codesourcery.com>
7597
7598         PR tree-optimization/67476
7599         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
7600
7601 2015-10-13  Richard Biener  <rguenther@suse.de>
7602
7603         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
7604         the data dependence vector.
7605         (vect_peeling_hash_insert): Get the peeling hash table as argument.
7606         (vect_peeling_hash_get_lowest_cost): Likewise.
7607         (vect_enhance_data_refs_alignment): Adjust.
7608         (struct _vect_peel_info, struct _vect_peel_extended_info,
7609         struct peel_info_hasher): Move from ...
7610         * tree-vectorizer.h: ... here.
7611         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
7612         (LOOP_VINFO_PEELING_HTAB): Likewise.
7613         (struct _loop_vec_info): Remove min_profitable_iters and
7614         peeling_htab members.
7615         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
7616         here.
7617         (destroy_loop_vec_info): Adjust.
7618         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
7619         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
7620         to estimate alias versioning cost.
7621         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
7622
7623 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
7624
7625         * real.h (real_isinteger): Declare.
7626         * real.c (real_isinteger): New function.
7627         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
7628         if y is an even integer.
7629
7630 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
7631
7632         revert:
7633         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
7634         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
7635         counts when these are more informative.
7636
7637 2015-10-12  Jeff Law  <law@redhat.com>
7638
7639         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
7640         (fsm_find_control_stmt_paths): Change name of first argument to
7641         more accurately relfect what it really is.  Handle simplification
7642         of GIMPLE_COND after finding a thread path for NAME.
7643         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
7644         nontrivial conditions to be handled by FSM threader.
7645         (thread_through_normal_block): Extract the name to looup via
7646         FSM threader from COND_EXPR.
7647
7648         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
7649         restriction that traced SSA_NAME is a user variable.
7650
7651 2015-10-12  Tom de Vries  <tom@codesourcery.com>
7652
7653         PR tree-optimization/67476
7654         * omp-low.c (expand_omp_for_generic): Add missing phis.
7655
7656 2015-10-12  Tom de Vries  <tom@codesourcery.com>
7657
7658         PR tree-optimization/67476
7659         * omp-low.c (expand_omp_for_generic): Handle simple latch.
7660
7661 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
7662
7663         * config/aarch64/aarch64-simd-builtins.def: Update builtins
7664         tables: add tbl3 and tbx4.
7665         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
7666         (aarch64_tbx4v8qi): New.
7667         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
7668         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
7669         Rewrite using builtin functions.
7670         * config/aarch64/iterators.md (UNSPEC_TBX): New.
7671
7672 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
7673
7674         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
7675         ROUND_UP macro.
7676         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
7677         Use ROUND_UP and ROUND_DOWN macros where applicable.
7678         (rs6000_darwin64_record_arg_flush): Ditto.
7679         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
7680         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
7681         rounded_size.
7682
7683 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
7684
7685         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
7686         (AARCH64_ROUND_DOWN): Ditto.
7687         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
7688
7689 2015-10-12  Richard Biener  <rguenther@suse.de>
7690
7691         PR ipa/67783
7692         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
7693         code that analyzes IVs on each stmt but in a cheaper way avoiding
7694         quadratic behavior.
7695
7696 2015-10-12  Nick Clifton  <nickc@redhat.com>
7697
7698         * config/msp430/msp430.c (msp430_mcu_names): Rename to
7699         msp430_mcu_data, add fields for ISA and hardware multiply
7700         support.  Import latest data from the devices.csv file.
7701         (msp430_override_option): Use the data from the new array.
7702         (msp430_use_f5_series_hwmult): Likewise.
7703         (use_32bit_hwmult): Likewise.
7704         (msp430_no_hwmult): Likewise.
7705         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
7706         MCU names.
7707         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
7708         not recognised then no hardware multiply support is assumed and
7709         that only the MSP430 ISA is allowed.
7710
7711 2015-10-12  Richard Biener  <rguenther@suse.de>
7712
7713         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
7714         related code ...
7715         (vect_analyze_loop_2): ... here.
7716
7717 2015-10-11  Jason Merrill  <jason@redhat.com>
7718
7719         PR c++/67557
7720         * expr.c (store_field): Call store_constructor directly when
7721         storing a CONSTRUCTOR into a target smaller than its type.
7722         Guard against unsafe bitwise copy.
7723
7724 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
7725
7726         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
7727         counts when these are more informative.
7728
7729 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
7730
7731         * tree-profile.c (tree_profiling): Do not clear
7732         pure/const when not instrumenting.
7733         (pass tree_profile): Add dump of symtab.
7734
7735 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
7736
7737         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
7738         addresses.
7739         (fold_addr_of_array_ref_difference): Likewise.
7740
7741 2015-10-11  Jeff Law  <law@redhat.com>
7742
7743         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
7744         tree-ssa-threadbackward.c.
7745         (fsm_find_control_statement_thread_paths): Likewise.
7746         (thread_through_normal_block): Break out FSM bits and move them
7747         into a new function in tree-ssa-threadbackward.c.  Call new function
7748         instead.
7749         Minimize header file usage.
7750         * tree-ssa-threadbackward.h: New file.
7751         * tree-ssa-threadbackward.c: Likewise.
7752         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
7753
7754 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
7755
7756         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
7757
7758 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
7759
7760         PR rtl-optimization/67864
7761         * bb-reorder (reorder_basic_blocks_simple): Prefer existing
7762         fallthrough edges for conditional jumps.  Don't sort candidate
7763         edges if not optimizing for speed.
7764
7765 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7766
7767         * defaults.h (REVERSE_CONDITION): New default definition.
7768         * jump.c (reversed_comparison_code_parts): Adjust.
7769
7770 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7771
7772         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
7773         check HARD_FRAME_POINTER_IS_ARG_POINTER.
7774
7775 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7776
7777         * defaults.h (FRAME_ADDR_RTX): New default definition.
7778         * builtins.c (expand_builtin_return_addr): Adjust.
7779
7780 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7781
7782         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
7783         * builtins.c (expand_builtin_return_addr): Adjust.
7784
7785 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7786
7787         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
7788         * builtins.c (expand_builtin_return_addr): Adjust.
7789         * doc/tm.texi: Likewise.
7790         * doc/tm.texi.in: Likewise.
7791         * except.c (expand_builtin_unwind_init): Likewise.
7792
7793 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7794
7795         * builtins.c (expand_builtin_return_addr): Adjust.
7796         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
7797
7798 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
7799
7800         * tree.c (type_with_interoperable_signedness): New.
7801         (gimple_canonical_types_compatible_p): Use it.
7802         * tree.h (type_with_interoperable_signedness): Declare
7803
7804 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
7805
7806         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
7807         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
7808         when OEP_ADDRESS_OF is se.
7809
7810 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
7811             Sebastian Pop  <s.pop@samsung.com>
7812
7813         * graphite-dependences.c (scop_get_dependences): Add dump of the
7814         data dependence graph.
7815         * graphite-poly.c (print_isl_union_map): New.
7816         (debug_isl_union_map): New.
7817         * graphite-poly.h (print_isl_union_map): Declare.
7818         (debug_isl_union_map): Declare.
7819
7820 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
7821             Sebastian Pop  <s.pop@samsung.com>
7822
7823         * graphite-poly.c (print_iteration_domain): Remove verbosity.
7824         Remove OpenScop formatting.
7825         (print_iteration_domains): Same.
7826         (debug_iteration_domain): Same.
7827         (debug_iteration_domains): Same.
7828         (print_pdr): Same.
7829         (debug_pdr): Same.
7830         (dump_gbb_cases): Same.
7831         (dump_gbb_conditions): Same.
7832         (print_pdrs): Same.
7833         (debug_pdrs): Same.
7834         (print_pbb_body): Same.
7835         (print_pbb): Same.
7836         (print_scop_params): Same.
7837         (print_scop_context): Same.
7838         (print_scop): Same.
7839         (debug_pbb_domain): Same.
7840         (debug_pbb): Same.
7841         (debug_scop_context): Same.
7842         (debug_scop): Same.
7843         (debug_scop_params): Same.
7844         * graphite-poly.h: Same.
7845         * graphite.c (graphite_transform_loops): Same.
7846
7847 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7848
7849         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
7850         call that isn't needed.
7851
7852 2015-10-09  Jeff Law  <law@redhat.com>
7853
7854         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
7855         rather than moving each name to the freelist individually.
7856
7857 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
7858
7859         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
7860         * frame-header-opt.c: New file.
7861         * config/mips/mips-proto.h (mips_register_frame_header_opt):
7862         Add prototype.
7863         * config/mips/mips.c (mips_compute_frame_info): Check
7864         optimize_call_stack flag.
7865         (mips_option_override): Register new frame_header_opt pass.
7866         (mips_frame_info, mips_int_mask, mips_shadow_set,
7867         machine_function): Move these types to...
7868         * config/mips/mips.h: here.
7869         (machine_function): Add does_not_use_frame_header and
7870         optimize_call_stack fields.
7871         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
7872         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
7873         Document new flags.
7874         * config/mips/mips.opt (mframe-header-opt): Add new option.
7875
7876 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
7877
7878         * config/i386/i386.c
7879         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
7880         ROUND_DOWN where applicable.
7881
7882 2015-10-09  Jeff Law  <law@redhat.com>
7883
7884         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
7885         correct statement.
7886
7887 2015-10-09  Renlin Li  <renlin.li@arm.com>
7888
7889         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
7890         operands[0] and operands[2].
7891         (neon_vtrn<mode>_insn): Likewise.
7892         (neon_vzip<mode>_insn): Likewise.
7893
7894 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
7895
7896         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
7897         ((X & C2) << C1): Expand to...
7898         (X {&,^,|} C2 << C1): ...This.
7899         ((X & C2) >> C1): Expand to...
7900         (X {&,^,|} C2 >> C1): ...This.
7901
7902 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
7903
7904         PR target/67895
7905         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
7906         Adjust embedded rounding/SAE specifier position.
7907         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
7908         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
7909         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
7910         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
7911         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
7912         Likewise.
7913         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
7914
7915 2015-10-09  Martin Jambor  <mjambor@suse.cz>
7916
7917         tree-optimization/67794
7918         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
7919         between types of state,ents but accept original definitions as a
7920         parameter.
7921         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
7922         iterate over definitions.
7923
7924 2015-10-09  James Norris  <jnorris@codesourcery.com>
7925
7926         * config/rs6000/rs6000.c (rs6000_offload_options): New.
7927         (TARGET_OFFLOAD_OPTIONS): New.
7928
7929 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
7930
7931         PR middle-end/67891
7932         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
7933
7934         PR middle-end/67766
7935         * function.c (expand_function_end): Move return value
7936         promotion past the handling of PARALLELs and CONCATs.
7937
7938         PR rtl-optimization/67828
7939         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
7940         (tree_may_unswitch_on): Don't unswitch on expressions
7941         involving undefined values.
7942
7943 2015-10-09  Richard Biener  <rguenther@suse.de>
7944
7945         * genmatch.c (print_operand): Fix formatting.
7946         (dt_node::append_simplify): Warn for multiple simplifiers
7947         that match the same pattern.
7948         * match.pd (log (exp @0)): Remove duplicates.
7949
7950 2015-10-09  Richard Biener  <rguenth@suse.de>
7951
7952         PR target/67366
7953         * gimple-fold.c (optabs-query.h): Include
7954         (gimple_fold_builtin_memory_op): Allow unaligned stores
7955         when movmisalign_optabs are available.
7956
7957 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7958
7959         PR target/67366
7960         * config/arm/arm.md (movmisalign<mode>): New.
7961         * config/arm/iterators.md (HSI): New.
7962
7963 2015-10-09  Richard Biener  <rguenther@suse.de>
7964
7965         PR tree-optimization/67891
7966         * gimple-match.h (gimple_simplified_result_is_gimple_val):
7967         New helper.
7968         (gimple_resimplify1): Declare.
7969         (gimple_resimplify2): Likewise.
7970         (gimple_resimplify3): Likewise.
7971         * gimple-match-head.c (gimple_resimplify1): Export.
7972         (gimple_resimplify2): Likewise.
7973         (gimple_resimplify3): Likewise.
7974         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
7975         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
7976         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
7977         to avoid creating stmts without VN info.
7978
7979 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
7980
7981         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
7982         of availability.
7983
7984 2015-10-08  Jeff Law  <law@redhat.com>
7985
7986         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
7987         and release_ssa_name in two places.
7988         (gimple_stringop_fixed_value): Similarly.
7989
7990         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
7991         release_defs.
7992
7993         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
7994         unlink_stmt_vdef and release_ssa_name_fn.
7995
7996         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
7997         release_defs.
7998
7999 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8000
8001         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
8002         SSE register save area to 16 bytes only if the incoming stack
8003         boundary is no less than 16 bytes.
8004
8005 2015-10-08  Jeff Law  <law@redhat.com>
8006
8007         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
8008         release_ssa_name.  Fix typo in comment.
8009
8010 2015-10-08  Nathan Sidwell  <nathan@acm.org>
8011
8012         * config/nvptx/nvptx.h (struct machine_function): Add comment.
8013         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
8014         may return pointer as well as in memory.
8015         (nvptx_output_return): Likewise.
8016
8017 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
8018
8019         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
8020         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
8021         * match.pd: Add rules previously handled by fold_builtin_sqrt
8022         and fold_builtin_cbrt.
8023
8024 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
8025
8026         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
8027         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
8028         * fold-const.h (tree_unary_nonnegative_warnv_p)
8029         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
8030         (tree_expr_nonnegative_warnv_p): Add depth parameters.
8031         * fold-const.c: Include gimple-fold.h and params.h.
8032         (tree_ssa_name_nonnegative_warnv_p): New function.
8033         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
8034         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
8035         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
8036         Add a depth parameter and increment it for recursive calls to
8037         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
8038         to handle SSA names.
8039         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
8040         (gimple_stmt_nonnegative_warnv_p): Declare.
8041         * tree-vrp.c (remove_range_assertions): Remove assert that condition
8042         cannot be proven false.
8043         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
8044         (gimple_stmt_nonnegative_warnv_p): Move to...
8045         * gimple-fold.c: ...here.  Add depth parameters and pass them
8046         down to the tree routines.  Accept statements that aren't
8047         assignments or calls but just return false for them.
8048         (gimple_val_nonnegative_real_p): Delete.
8049         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
8050         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
8051         Check HONOR_NANs first.
8052
8053 2015-10-08  Martin Jambor  <mjambor@suse.cz>
8054
8055         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
8056         unnecessary MIN.
8057
8058 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
8059
8060         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
8061         in the tail of outer-loop.
8062
8063 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
8064
8065         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
8066         return UI_NONE.
8067
8068 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
8069
8070         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
8071         "cfghooks.h", add prototypes for introduced new functions.
8072         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
8073         checks on ability of loop unswitching to tree_unswitch_single_loop;
8074         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
8075         on innermost loop check.
8076         (tree_unswitch_single_loop): Add all required checks on ability of
8077         loop unswitching under zero recursive level guard.
8078         (tree_unswitch_outer_loop): New function.
8079         (find_loop_guard): Likewise.
8080         (empty_bb_without_guard_p): Likewise.
8081         (used_outside_loop_p): Likewise.
8082         (get_vop_from_header): Likewise.
8083         (hoist_guard): Likewise.
8084         (check_exit_phi): Likewise.
8085
8086 2015-10-08  Marek Polacek  <polacek@redhat.com>
8087
8088         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
8089         ops element.
8090
8091 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8092
8093         PR c/65345
8094         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
8095         create_tmp_var_raw instead of create_tmp_var.
8096
8097 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
8098
8099         * expr.c (store_expr_with_bounds): Handle aggregate moves from
8100         BLKmode.
8101         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
8102         to define gimple type system; compare aggregates only by size.
8103
8104 2015-10-07  Jeff Law  <law@redhat.com>
8105
8106         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
8107         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
8108         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
8109         unnecessarily.
8110
8111 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
8112             Sebastian Pop  <s.pop@samsung.com>
8113
8114         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
8115         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
8116         (generate_isl_schedule): Same.
8117         * graphite-optimize-isl.c (scop_get_domains): Same.
8118         (apply_schedule_map_to_scop): Same.
8119         * graphite-poly.c (print_iteration_domains): Same.
8120         (remove_gbbs_in_scop): Same.
8121         (new_scop): Same.
8122         (free_scop): Same.
8123         (print_scop): Same.
8124         * graphite-poly.h (struct scop): Rename bbs to pbbs.
8125         (SCOP_BBS): Remove.
8126         * graphite-scop-detection.c (compare_bb_depths): Remove.
8127         (graphite_sort_dominated_info): Remove.
8128         (try_generate_gimple_bb): Move out of scop_detection.
8129         (all_non_dominated_preds_marked_p): Remove.
8130         (build_scop_bbs_1): Remove.
8131         (build_scop_bbs): Remove.
8132         (nb_pbbs_in_loops): Do not use SCOP_BBS.
8133         (find_scop_parameters): Same.
8134         (sese_dom_walker): Rename gather_bbs.
8135         (before_dom_children): Call try_generate_gimple_bb and collect gbb
8136         and pbb.
8137         (build_scops): Call gather_bbs.
8138         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
8139         (add_conditions_to_constraints): Same.
8140         (build_scop_iteration_domain): Same.
8141         (build_scop_drs): Same.
8142         (new_pbb_from_pbb): Same.
8143         * sese.c (new_sese_info): Create bbs.
8144         * sese.h (struct sese_info_t): Add bbs.
8145
8146 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
8147
8148         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
8149         encoding in 64-bit mode.
8150
8151 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
8152
8153         PR target/66697
8154         * config/i386/i386.c (ix86_option_override_internal): Always use
8155         8-byte minimum stack boundary in 64-bit mode.
8156         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
8157         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
8158         Add a REG_CFA_EXPRESSION note if needed.
8159         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
8160         (ix86_handle_force_align_arg_pointer_attribute): New.
8161         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
8162         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
8163         with ix86_handle_force_align_arg_pointer_attribute.
8164         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
8165
8166 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
8167             Sebastian Pop  <s.pop@samsung.com>
8168
8169         * graphite-scop-detection.c (parameter_index_in_region): Remove
8170         use of SESE_ADD_PARAMS.
8171         (find_scop_parameters): Same.
8172         * sese.c (new_sese_info): Same.
8173         * sese.h (struct sese_info_t): Remove add_params.
8174         (SESE_ADD_PARAMS): Remove.
8175
8176 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
8177             Sebastian Pop  <s.pop@samsung.com>
8178
8179         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
8180         an sese_info_p.
8181         (copy_def): Same.
8182         (copy_internal_parameters): Same.
8183         (translate_isl_ast_to_gimple): Use an sese_l.
8184         (build_iv_mapping): Same.
8185         * graphite-poly.c (new_sese): Rename new_sese_info.
8186         (free_sese): Rename free_sese_info.
8187         * graphite-poly.h (struct scop): Use an sese_info_p.
8188         (scop_set_region): Same.
8189         * graphite-scop-detection.c (struct sese_l): Moved...
8190         (get_entry_bb): Moved...
8191         (get_exit_bb): Moved...
8192         (parameter_index_in_region_1): Use an sese_info_p.
8193         (parameter_index_in_region): Same.
8194         (scan_tree_for_params): Same.
8195         (find_params_in_bb): Same.
8196         (sese_dom_walker): Use an sese_l.
8197         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
8198         (reduction_phi_p): Same.
8199         (parameter_index_in_region_1): Use an sese_info_p.
8200         (propagate_expr_outside_region): Use an sese_l.
8201         * graphite.c: Replace uses of SCOP_REGION.
8202         * sese.c (sese_record_loop): Use an sese_info_p.
8203         (build_sese_loop_nests): Same.
8204         (sese_build_liveouts_use): Same.
8205         (sese_build_liveouts_bb): Same.
8206         (sese_build_liveouts_bb): Same.
8207         (sese_bad_liveouts_use): Same.
8208         (sese_reset_debug_liveouts_bb): Same.
8209         (sese_build_liveouts): Same.
8210         (new_sese): Renamed new_sese_info.
8211         (free_sese): Renamed free_sese_info.
8212         (set_rename): Use an sese_info_p.
8213         (graphite_copy_stmts_from_block): Same.
8214         (copy_bb_and_scalar_dependences): Same.
8215         (outermost_loop_in_sese_1): Use an sese_l.
8216         (outermost_loop_in_sese): Same.
8217         (if_region_set_false_region): Use an sese_info_p.
8218         (move_sese_in_condition): Same.
8219         (scalar_evolution_in_region): Use an sese_l.
8220         * sese.h (struct sese_l): ... here.
8221         (SESE_ENTRY): Remove.
8222         (SESE_ENTRY_BB): Remove.
8223         (SESE_EXIT): Remove.
8224         (SESE_EXIT_BB): Remove.
8225         (sese_contains_loop): Use an sese_info_p.
8226         (sese_nb_params): Same.
8227         (bb_in_sese_p): Use an sese_l.
8228         (stmt_in_sese_p): Same.
8229         (defined_in_sese_p): Same.
8230         (loop_in_sese_p): Same.
8231         (sese_loop_depth): Same.
8232         (struct ifsese_s): Use an sese_info_p.
8233         (gbb_loop_at_index): Use an sese_l.
8234         (nb_common_loops): Same.
8235         (scev_analyzable_p): Same.
8236
8237 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
8238
8239         * config/i386/i386.c (ix86_conditional_register_usage): Use
8240         CALL_USED_REGISTERS_MASK.
8241         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
8242
8243 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
8244
8245         PR bootstrap/67385
8246         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
8247         * configure: Regenerated.
8248
8249 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
8250
8251         PR target/67850
8252         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
8253         (ix86_set_current_function): This.
8254         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
8255
8256 2015-10-07  Richard Biener  <rguenther@suse.de>
8257
8258         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
8259         (vinfo_for_stmt): Adjust.
8260         (set_vinfo_for_stmt): Likewise.
8261         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
8262         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
8263         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
8264         of inner loop.
8265         (vect_analyze_loop_1): Remove.
8266         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
8267         inner loop when vectorizing an outer loop by splitting out from ...
8268         (vect_analyze_loop_form): ... here.
8269
8270 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8271
8272         PR c/65345
8273         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
8274         Use create_tmp_var_raw instead of create_tmp_var.
8275
8276 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
8277
8278         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
8279         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
8280         * real.c (CACHED_FRACTION): New helper macro.
8281         (dconst_third_ptr): Use it.
8282         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
8283         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
8284         dconst_sixth.
8285         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
8286
8287 2015-10-06  Jeff Law  <law@redhat.com>
8288
8289         PR tree-optimization/67816
8290         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
8291         from remove_jump_threads_starting_at.  Accept an edge rather than
8292         a basic block.
8293         * tree-ssa-threadupdate.c (removed_edges): New hash table.
8294         (remove_jump_threads_including): Note edges that get removed from
8295         the CFG for later pruning of jump threading paths including them.
8296         (thread_through_all_blocks): Remove paths which include edges that
8297         have been removed.
8298         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
8299         on each outgoing edges when optimizing away a control statement.
8300
8301 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8302
8303         * reorg.c (emit_delay_sequence): Store list of delay slot insns
8304         in a vector instead of rtx_insn_list.
8305         (add_to_delay_list): Likewise.
8306         (delete_from_delay_slot): Likewise.
8307         (optimize_skip): Likewise.
8308         (redirect_with_delay_list_safe_p): Likewise.
8309         (check_annul_list_true_false): Likewise.
8310         (steal_delay_list_from_target): Likewise.
8311         (steal_delay_list_from_fallthrough): Likewise.
8312         (redundant_insn): Likewise.
8313         (fill_simple_delay_slots): Likewise.
8314         (fill_slots_from_thread): Likewise.
8315         (fill_eager_delay_slots): Likewise.
8316         (relax_delay_slots): Likewise.
8317
8318 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
8319
8320         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
8321         For -mgpopt=local, also exclude unintialized common symbols.
8322         * doc/invoke.texi (Nios II Options): Document the change.
8323
8324 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
8325
8326         * config/aarch64/iterators.md (vwcore): Add missing cases for
8327          V4HF/V8HF modes.
8328
8329 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
8330             Sebastian Pop  <s.pop@samsung.com>
8331
8332         * graphite-poly.c (new_scop): Initialize drs.
8333         * graphite-poly.h (struct dr_info): New.
8334         (struct scop): Add drs.
8335         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
8336         (pdr_add_memory_accesses): Same.
8337         (build_poly_dr): Same.
8338         (build_alias_set): Same.
8339         (build_scop_drs): Same.
8340         (build_pbb_drs): Remove.
8341         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
8342         * tree-data-ref.h (data_reference): Remove alias_set.
8343
8344 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
8345             Sebastian Pop  <s.pop@samsung.com>
8346
8347         * graphite-poly.c (free_data_refs_aux): Remove.
8348         (free_gimple_poly_bb): Do not call free_data_refs_aux.
8349         * graphite-poly.h (struct base_alias_pair): Remove.
8350         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
8351         base_alias_pair and dr->aux.
8352         (build_alias_set): Same.
8353         * tree-data-ref.c (create_data_ref): Initialize alias_set.
8354         * tree-data-ref.h (data_reference): Add alias_set.
8355
8356 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
8357             Sebastian Pop  <s.pop@samsung.com>
8358
8359         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
8360         Do not set PDR_BASE_OBJECT_SET.
8361         * graphite-poly.h (poly_dr): Same.
8362         (PDR_BASE_OBJECT_SET): Remove.
8363         (new_poly_dr): Update decl.
8364         * graphite-sese-to-poly.c (build_poly_dr): Update call to
8365         new_poly_dr.
8366         (write_alias_graph_to_ascii_dimacs): Remove.
8367         (write_alias_graph_to_ascii_dot): Remove.
8368         (write_alias_graph_to_ascii_ecc): Remove.
8369         (dr_same_base_object_p): Remove.
8370         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
8371         code.
8372         (build_base_obj_set_for_drs): Remove.
8373         (dump_alias_graphs): Remove.
8374         (build_scop_drs): Remove dead code.
8375
8376 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
8377             Peter Bergner  <bergner@vnet.ibm.com>
8378
8379         PR target/67808
8380         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
8381         allow registers, but provide insns for the combiner to create for
8382         loads from memory. Separate VSX code from non-VSX code. For
8383         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
8384         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
8385         so that registers come before memory operations. Drop support from
8386         converting DFmode to TFmode, if the DFmode value is in a GPR
8387         register.
8388         (extenddftf2_fprs): Likewise.
8389         (extenddftf2_internal): Likewise.
8390         (extenddftf2_vsx): Likewise.
8391         (extendsftf2): In the expander, only allow registers, but provide
8392         insns for the combiner to create for stores and loads.
8393
8394 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8395
8396         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
8397         from the decl parameter.
8398
8399 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
8400
8401         PR 67861
8402         * gimple-fold.c (gimple_fold_builtin): Add break after
8403         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
8404
8405 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
8406
8407         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
8408         to scop->isl_context.
8409
8410 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
8411
8412         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
8413         (output_probe_stack_range): Rotate the loop and simplify.
8414         (thumb1_expand_prologue): Tweak sorry message.
8415         * config/arm/arm.md (probe_stack): Use bare string.
8416
8417 2015-10-06  Nick Clifton  <nickc@redhat.com>
8418
8419         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
8420
8421 2015-10-06  Nick Clifton  <nickc@redhat.com>
8422
8423         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
8424         (ATTR_PERSIST): New constant.
8425         (msp430_data_attr): New function - verifies an attribute that only
8426         applies to variables.
8427         (msp430_attributes): Add noinit and persistent attributes.
8428         (noinit_section): New variable.
8429         (presis_section): New variable.
8430         (TARGET_ASM_INIT_SECTIONS): Define.
8431         (msp430_init_sections): New function - initialises the noinit and
8432         persist section variables.
8433         (msp430_select_section): Add support for noinit and persist
8434         attributes.
8435         (msp430_section_type_flags): Likewise.
8436         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
8437         and persistent attributes.
8438
8439 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
8440             Sebastian Pop  <s.pop@samsung.com>
8441
8442         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
8443         (no_violations): Remove.
8444         (subtract_commutative_associative_deps): Remove.
8445         (compute_deps): Do not call subtract_commutative_associative_deps.
8446         (transform_is_safe): Remove.
8447         (graphite_legal_transform): Remove.
8448         * graphite-poly.h (graphite_legal_transform): Remove.
8449
8450 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
8451
8452         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
8453         which are in this region are passed so gcc_assert and remove redundant
8454         computation.
8455         * sese.c (sese_build_liveouts): Pass only those bbs which are not
8456         in region.
8457         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
8458         gcc_assert on that and remove unnecessary computation.
8459         (sese_build_liveouts_use): Same.
8460
8461 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
8462
8463         * graphite-dependences.c (scop_get_reads): Renamed scop->context
8464         to scop->param_context.
8465         (scop_get_must_writes): Same.
8466         (scop_get_may_writes): Same.
8467         (scop_get_original_schedule): Same.
8468         (scop_get_transformed_schedule): Same.
8469         (subtract_commutative_associative_deps): Same.
8470         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
8471         (generate_isl_context): Same.
8472         (generate_isl_schedule): Same.
8473         (scop_to_isl_ast): Same.
8474         (graphite_regenerate_ast_isl): Same.
8475         * graphite-optimize-isl.c (scop_get_domains): Same.
8476         (optimize_isl): Renamed scop->context to scop->param_context.
8477         * graphite-poly.c (new_poly_bb): Change the type of argument to
8478         gimple_poly_bb_p.
8479         (new_scop): Renamed scop->context to scop->param_context.
8480         (free_scop): Same.
8481         (print_scop_context): Same.
8482         * graphite-poly.h (new_poly_dr): Change the type of argument from
8483         void* to data_reference_p.
8484         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
8485         (new_poly_bb): Change the type of argument from void* to
8486         gimple_poly_bb_p.
8487         (pbb_set_black_box): Same.
8488         (struct scop): Rename context to param_context, ctx to isl_context.
8489         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
8490         Move declarations closer to assignment.
8491         (find_params_in_bb): Same.
8492         (find_scop_parameters): Same.
8493         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
8494         Global to be used for statement IDs.
8495         (isl_id_for_pbb): Use ssa_name_version_typesize.
8496         (simple_copy_phi_p): Move declarations closer to assignment.
8497         (build_pbb_scattering_polyhedrons): Same.
8498         (build_scop_scattering): Same.
8499         (isl_id_for_ssa_name): Same.
8500         (extract_affine_name): Same.
8501         (extract_affine_int): Same.
8502         (extract_affine): Same.
8503         (set_scop_parameter_dim): Use renamed member.
8504         (build_loop_iteration_domains): Same.
8505         (add_param_constraints): Same.
8506         (build_scop_iteration_domain): Same.
8507         (pdr_add_data_dimensions): Same.
8508         (build_poly_dr): Same.
8509         (build_scop_drs): Move declarations closer to assignment.
8510         (analyze_drs_in_stmts): Same.
8511         (insert_out_of_ssa_copy): Same.
8512         (insert_out_of_ssa_copy_on_edge): Same.
8513         (propagate_expr_outside_region): Same.
8514         (rewrite_phi_out_of_ssa): Same.
8515         (rewrite_degenerate_phi): Same.
8516         (rewrite_reductions_out_of_ssa): Same.
8517         (rewrite_cross_bb_scalar_dependence): Same.
8518         (handle_scalar_deps_crossing_scop_limits): Same.
8519         (rewrite_cross_bb_scalar_deps): Same.
8520         * graphite.c (graphite_transform_loops): Use renamed member.
8521
8522 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
8523
8524         PR c/65345
8525         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
8526         create_tmp_var_raw instead of create_tmp_var.
8527
8528 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8529
8530         PR c/65345
8531         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
8532         Use create_tmp_var_raw instead of create_tmp_var.
8533
8534 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
8535
8536         PR target/67849
8537         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
8538         split for upper-bank registers when target does not support
8539         AVX512VL.
8540         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
8541         split when target does not support AVX512VL.
8542
8543 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
8544
8545         PR c/65345
8546         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
8547         Adjust to use create_tmp_var_raw instead of create_tmp_var.
8548
8549 2015-10-06  Nick Clifton  <nickc@redhat.com>
8550
8551         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
8552         multiplication.
8553
8554 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
8555
8556         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
8557         (case ${target}): Add znver1.
8558         * config/i386/cpuid.h(bit_CLZERO):  Define.
8559         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
8560         -march=native recognize znver1 processors.
8561         * config/i386/i386-c.c (ix86_target_macros_internal): Add
8562         znver1, clzero def_and_undef.
8563         * config/i386/i386.c (struct processor_costs znver1_cost): New.
8564         (m_znver1): New definition.
8565         (m_AMD_MULTIPLE): Includes m_znver1.
8566         (processor_target_table): Add znver1 entry.
8567         (ix86_target_string) : Add clzero entry.
8568         (static const char *const cpu_names): Add znver1 entry.
8569         (ix86_option_override_internal): Add znver1 instruction sets.
8570         (PTA_CLZERO) :  New definition.
8571         (ix86_option_override_internal): Handle new clzerooption.
8572         (ix86_issue_rate): Add znver1.
8573         (ix86_adjust_cost): Add znver1.
8574         (ia32_multipass_dfa_lookahead): Add znver1.
8575         (has_dispatch): Add znver1.
8576         * config/i386/i386.h (TARGET_znver1): New definition.
8577         (TARGET_CLZERO): Define.
8578         (TARGET_CLZERO_P): Define.
8579         (struct ix86_size_cost): Add TARGET_ZNVER1.
8580         (enum processor_type): Add PROCESSOR_znver1.
8581         * config/i386/i386.md (define_attr "cpu"): Add znver1.
8582         (set_attr znver1_decode): New definitions for znver1.
8583         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
8584         (mclzero): New.
8585         * config/i386/mmx.md (set_attr znver1_decode): New definitions
8586         for znver1.
8587         * config/i386/sse.md (set_attr znver1_decode): Likewise.
8588         * config/i386/x86-tune.def:  Add znver1 tunings.
8589         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
8590         * doc/invoke.texi: Add details about znver1
8591
8592 2015-10-06  Richard Biener  <rguenther@suse.de>
8593
8594         PR tree-optimization/67859
8595         * tree-ssa-pre.c (create_expression_by_pieces): Properly
8596         discard not inserted stmts.
8597
8598 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
8599
8600         * doc/extend.texi (Template Instantiation): Reorder options and
8601         de-emphasize -frepo.
8602         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
8603         example instead of -frepo.
8604
8605 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
8606
8607         PR c/65345
8608         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
8609         use create_tmp_var_raw rather than create_tmp_var.
8610
8611 2015-10-06  Richard Biener  <rguenther@suse.de>
8612
8613         * tree-vectorizer.h (vec_info): New base class for...
8614         (_loop_vec_info): ... this and ...
8615         (_bb_vec_info): ... this.
8616         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
8617         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
8618         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
8619         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
8620         vect_destroy_datarefs): Adjust interface to take a vec_info *
8621         rather than both a loop_vec_info and a bb_vec_info argument.
8622         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
8623         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
8624         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
8625         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
8626         accordingly.
8627         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
8628         (destroy_loop_vec_info, vect_analyze_loop_2,
8629         vect_is_simple_reduction_1, get_initial_def_for_induction,
8630         vect_create_epilog_for_reduction, vectorizable_reduction,
8631         vectorizable_live_operation, vect_transform_loop): Adjust.
8632         * tree-vect-patterns.c (type_conversion_p,
8633         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
8634         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
8635         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
8636         check_bool_pattern, vect_recog_bool_pattern,
8637         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
8638         * tree-vect-slp.c (vect_get_and_check_slp_defs,
8639         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
8640         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
8641         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
8642         (new_bb_vec_info): Initialize base classs.
8643         * tree-vect-stmts.c (record_stmt_cost, process_use,
8644         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
8645         vectorizable_mask_load_store, vectorizable_call,
8646         vectorizable_simd_clone_call, vectorizable_conversion,
8647         vectorizable_assignment, vectorizable_shift,
8648         vectorizable_operation, vectorizable_store,
8649         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
8650         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
8651         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
8652
8653 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
8654
8655         PR c/65345
8656         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
8657         create_tmp_var_raw rather than create_tmp_var.
8658
8659 2015-10-05  Marek Polacek  <polacek@redhat.com>
8660
8661         * tree-ssa-loop-im.c
8662         (move_computations_dom_walker::before_dom_children): Don't set
8663         SSA_NAME_ANTI_RANGE_P.
8664         * tree-ssa-phiopt.c (value_replacement): Likewise.
8665
8666 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
8667             Sebastian Pop  <s.pop@samsung.com>
8668
8669         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
8670
8671 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
8672             Sebastian Pop  <s.pop@samsung.com>
8673
8674         * graphite-poly.c (new_gimple_poly_bb): ... here.
8675         (free_data_refs_aux): ... here.
8676         (free_gimple_poly_bb): ... here.
8677         (remove_gbbs_in_scop): ... here.
8678         (new_scop): Call new_sese.
8679         (free_scop): Call remove_gbbs_in_scop and free_sese.
8680         * graphite-poly.h (base_alias_pair): ... here.
8681         (new_gimple_poly_bb): Declare.
8682         (free_gimple_poly_bb): Declare.
8683         * graphite-scop-detection.c (parameter_index_in_region_1):
8684         (parameter_index_in_region): ... here.
8685         (scan_tree_for_params): ... here.
8686         (find_params_in_bb): ... here.
8687         (find_scop_parameters): ... here.
8688         (build_scops): Call find_scop_parameters.
8689         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
8690         (free_scops): Move...
8691         (single_pred_cond_non_loop_exit): Move...
8692         (sese_dom_walker::before_dom_children): Move...
8693         (sese_dom_walker::after_dom_children): Move...
8694         (build_poly_scop): Move...
8695         * graphite-sese-to-poly.h (base_alias_pair): Move...
8696         * graphite.c (free_scops): ... here.
8697
8698 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
8699             Sebastian Pop  <s.pop@samsung.com>
8700
8701         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
8702         (trivially_empty_bb_p): Move...
8703         (same_close_phi_node): Move...
8704         (new_gimple_poly_bb): Move...
8705         (compare_bb_depths): Move...
8706         (graphite_sort_dominated_info): Move...
8707         (remove_duplicate_close_phi): Move...
8708         (make_close_phi_nodes_unique): Move...
8709         (canonicalize_loop_closed_ssa): Move...
8710         (canonicalize_loop_closed_ssa_form): Move...
8711         (loop_ivs_can_be_represented): Move...
8712         (single_pred_cond_non_loop_exit): Move...
8713         (graphite_can_represent_init): Move...
8714         (graphite_can_represent_scev): Move...
8715         (stmt_has_simple_data_refs_p): Move...
8716         (stmt_has_side_effects):  Move...
8717         (graphite_can_represent_stmt): Move...
8718         (scop_detection): ... here.
8719         (sese_dom_walker): ... and here.
8720         (build_scops): Call all moved functions.
8721         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
8722         (all_non_dominated_preds_marked_p): Move...
8723         (build_scop_bbs_1): Move...
8724         (build_scop_bbs): Move...
8725         (set_scop_parameter_dim): Move...
8726         (nb_pbbs_in_loops): Move...
8727         (build_poly_scop): Do not call all the moved functions.
8728
8729 2015-10-05  Martin Jambor  <mjambor@suse.cz>
8730             Jan Hubicka  <hubicka@ucw.cz>
8731
8732         * ipa-cp.c (ipcp_alignment_lattice): New type.
8733         (ipcp_param_lattices): Use the above to represent alignment.
8734         (ipcp_alignment_lattice::print): New function.
8735         (print_all_lattices): Use it to print alignment information.
8736         (ipcp_alignment_lattice::top_p): New function.
8737         (ipcp_alignment_lattice::bottom_p): Likewise.
8738         (ipcp_alignment_lattice::set_to_bottom): Likewise.
8739         (ipcp_alignment_lattice::meet_with_1): Likewise.
8740         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
8741         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
8742         (initialize_node_lattices): Likewise.
8743         (propagate_alignment_accross_jump_function): Work with the new class
8744         for alignment lattices.
8745         (propagate_constants_accross_call): Pass only the alignment lattice to
8746         propagate_alignment_accross_jump_function.
8747         (ipcp_store_alignment_results): Work with the new class for alignment
8748         lattices.
8749
8750 2015-10-05  Marek Polacek  <polacek@redhat.com>
8751
8752         PR tree-optimization/67821
8753         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
8754
8755 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
8756
8757         PR other/65021
8758         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
8759         function to...
8760         (mkoffload_cleanup): ... this.  Adjust all users.
8761         (maybe_unlink): Look at save_temps and verbose flags instead of
8762         debug flag.
8763         (main): Parse "-save-temps" flag.
8764         (generate_target_descr_file, generate_target_offloadend_file)
8765         (generate_host_descr_file, prepare_target_image): Pass it on.
8766         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
8767         (mkoffload_cleanup): New function.
8768         (maybe_unlink): Look at save_temps and verbose flags instead of
8769         debug flag.
8770         (main): Instead of calling utils_cleanup, register atexit handler
8771         for mkoffload_cleanup.
8772         (main): Parse "-save-temps" flag.
8773         (compile_native, main): Pass it on.
8774         * lto-wrapper.c (compile_offload_image): Likewise.
8775
8776 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8777
8778         * gimple.h (gimple_op_ptr): Require a non const gimple *.
8779         (gimple_assign_lhs_ptr): Likewise.
8780         (gimple_assign_rhs1_ptr): Likewise.
8781         (gimple_assign_rhs2_ptr): Likewise.
8782         (gimple_assign_rhs3_ptr): Likewise.
8783         (gimple_call_lhs_ptr): Likewise.
8784         (gimple_call_fn_ptr): Likewise.
8785         (gimple_call_chain_ptr): Likewise.
8786                 (gimple_call_arg_ptr): Likewise.
8787                 (gimple_cond_lhs_ptr): Likewise.
8788         (gimple_cond_rhs_ptr): Likewise.
8789         (gimple_switch_index_ptr): Likewise.
8790         (gimple_return_retval_ptr): Likewise.
8791
8792 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8793
8794         * gimple.h (gimple_asm_input_op_ptr): Remove.
8795         (gimple_asm_output_op_ptr): Likewise.
8796
8797 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8798
8799         * gimple.h (gimple_location_ptr): Remove.
8800         * tree-vrp.c (check_all_array_refs): Adjust.
8801
8802 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8803
8804         * tree-ssa-operands.c (build_uses): store tree * instead of
8805         tree.
8806         (finalize_ssa_uses): Adjust.
8807         (append_use): Likewise.
8808         (verify_ssa_operands): Likewise.
8809
8810 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
8811
8812         * real.h (build_real_truncate): Declare.
8813         * tree.c (build_real_truncate): New function.
8814         (strip_float_extensions): Use it.
8815         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
8816         (fold_builtin_hypot, fold_builtin_pow): Likewise.
8817         * match.pd: Likewise.
8818
8819 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
8820            Jiong Wang  <jiong.wang@arm.com>
8821
8822         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
8823
8824 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
8825
8826         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
8827         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
8828         (aarch64_print_operand, aarch64_float_const_representable_p)
8829         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
8830         instead of REAL_VALUE_FROM_CONST_DOUBLE.
8831         * config/arc/arc.c (arc_print_operand): Likewise.
8832         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
8833         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
8834         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
8835         Likewise.
8836         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
8837         (consttable_16): Likewise.
8838         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
8839         * config/avr/avr.c (avr_print_operand): Likewise.
8840         * config/bfin/bfin.md: Likewise (in a define_split).
8841         * config/c6x/c6x.md: Likewise (in a define_split).
8842         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
8843         (cr16_print_operand): Likewise.
8844         * config/cris/cris.c (cris_print_operand): Likewise.
8845         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
8846         * config/fr30/fr30.c (fr30_print_operand): Likewise.
8847         (fr30_const_double_is_zero): Likewise.
8848         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
8849         * config/frv/frv.md: Likewise (in a define_split).
8850         * config/frv/predicates.md (int_2word_operand): Likewise.
8851         * config/h8300/h8300.c (h8300_print_operand): Likewise.
8852         * config/i386/i386.c (standard_80387_constant_p): Likewise.
8853         (ix86_print_operand, ix86_split_to_parts): Likewise.
8854         * config/i386/i386.md: Likewise (in a define_split).
8855         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
8856         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
8857         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
8858         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
8859         (print_operand): Likewise.
8860         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
8861         * config/mep/mep.md: Likewise (in define_split).
8862         * config/microblaze/microblaze.c (microblaze_const_double_ok)
8863         (print_operand): Likewise.
8864         * config/mips/mips.md (consttable_float): Likewise.
8865         * config/mmix/mmix.c (mmix_intval): Likewise.
8866         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
8867         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
8868         * config/pa/pa.c (pa_singlemove_string): Likewise.
8869         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
8870         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
8871         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
8872         (output_toc): Likewise.
8873         * config/rs6000/rs6000.md: Likewise (in define_splits).
8874         * config/rx/rx.c (rx_print_operand): Likewise.
8875         * config/s390/s390.c (s390_output_pool_entry): Likewise.
8876         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
8877         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
8878         (and also in define_splits).
8879         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
8880         (fp_high_losum_p): Likewise.
8881         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
8882         (*movsf_high): Likewise.
8883         * config/spu/spu.c (const_double_to_hwint): Likewise.
8884         * config/v850/v850.c (const_double_split): Likewise.
8885         * config/vax/vax.c (vax_float_literal): Likewise.
8886         * config/visium/visium.c (visium_expand_copysign): Likewise.
8887         * config/visium/visium.md: Likewise (in define_split).
8888         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
8889         * config/xtensa/xtensa.c (print_operand): Likewise.
8890         (xtensa_output_literal): Likewise.
8891         * cprop.c (implicit_set_cond_p): Likewise.
8892         * dwarf2out.c (insert_float): Likewise.
8893         * expmed.c (expand_mult, make_tree): Likewise.
8894         * expr.c (compress_float_constant): Likewise.
8895         * rtlanal.c (split_double): Likewise.
8896         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
8897         (simplify_const_unary_operation, simplify_binary_operation_1)
8898         (simplify_const_binary_operation): Likewise.
8899         (simplify_const_relational_operation): Likewise.
8900         * varasm.c (output_constant_pool_2): Likewise.
8901
8902 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
8903
8904         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
8905         instead of CONST_DOUBLE_FROM_REAL_VALUE.
8906         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
8907         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
8908         instead of CONST_DOUBLE_FROM_REAL_VALUE.
8909         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
8910         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
8911         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
8912         (ix86_emit_swsqrtsf): Likewise.
8913         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
8914         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
8915         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
8916         * config/pa/pa.c (pa_expand_builtin): Likewise.
8917         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
8918         (rs6000_scale_v2df): Likewise.
8919         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
8920         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
8921         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
8922         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
8923         (vec_ctul): Likewise.
8924         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
8925         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
8926         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
8927         * cse.c (fold_rtx): Likewise.
8928         * emit-rtl.c (immed_double_const): Likewise (in comments).
8929         (init_emit_once): Likewise.
8930         * expr.c (compress_float_constant, expand_expr_real_1)
8931         (const_vector_from_tree): Likewise.
8932         * optabs.c (expand_float, expand_fix): Likewise.
8933         * reg-stack.c (reg_to_stack): Likewise.
8934         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
8935         (simplify_const_unary_operation, simplify_binary_operation_1)
8936         (simplify_const_binary_operation, simplify_relational_operation)
8937         (simplify_immed_subreg): Likewise.
8938
8939 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
8940
8941         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
8942         * doc/tm.texi: Regenerate.
8943         * real.h (REAL_ARITHMETIC): Delete.
8944         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
8945         (ix86_expand_round_sse4): Use real_arithmetic instead of
8946         REAL_ARITHMETIC.
8947         * config/i386/sse.md (round<mode>2): Likewise.
8948         * rtl.h (rtx_to_tree_code): Likewise (in comment).
8949         * explow.c (rtx_to_tree_code): Likewise (in comment).
8950         * match.pd: Likewise.
8951         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
8952         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
8953         (expand_pow_as_sqrts): Likewise.
8954         * tree-pretty-print.c (dump_generic_node): Remove code that
8955         was conditional on REAL_ARITHMETIC being undefined.
8956
8957 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
8958
8959         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
8960         * doc/tm.texi: Regenerate.
8961         * real.h (real_less): Declare.
8962         (REAL_VALUES_LESS): Delete.
8963         * real.c (real_less): New function.
8964         (real_compare): Use it.
8965         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
8966         of REAL_VALUES_LESS.
8967         * config/microblaze/microblaze.c (microblaze_const_double_ok):
8968         Likewise.
8969         * fold-const.c (fold_convert_const_int_from_real): Likewise.
8970         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
8971         (simplify_const_relational_operation): Likewise.
8972         * tree-call-cdce.c (check_pow): Likewise.
8973         (gen_conditions_for_pow_cst_base): Likewise.
8974
8975 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
8976
8977         * real.h (REAL_VALUES_IDENTICAL): Delete.
8978         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
8979         instead of REAL_VALUES_IDENTICAL.
8980         * fold-const.c (operand_equal_p): Likewise.
8981         * ipa-icf.c (sem_variable::equals): Likewise.
8982         * tree-complex.c (some_nonzerop): Likewise.
8983         (expand_complex_multiplication): Likewise.
8984         * tree.c (simple_cst_equal): Likewise.
8985         * varasm.c (compare_constant): Likewise.
8986
8987 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
8988
8989         * real.h (real_equal): Declare.
8990         (REAL_VALUES_EQUAL): Delete.
8991         * real.c (real_equal): New function.
8992         (real_compare): Use it.
8993         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
8994         * doc/tm.texi: Regenerate.
8995         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
8996         real_equal instead of REAL_VALUES_EQUAL.
8997         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
8998         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
8999         (fp_const_from_val): Likewise.
9000         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
9001         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
9002         (floating_exact_log2): Likewise.
9003         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
9004         * config/vax/vax.c (vax_float_literal): Likewise.
9005         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
9006         * cprop.c (implicit_set_cond_p): Likewise.
9007         * expmed.c (expand_mult): Likewise.
9008         * fold-const.c (const_binop): Likewise.
9009         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
9010         (simplify_const_binary_operation): Likewise.
9011         (simplify_const_relational_operation): Likewise.
9012         * tree-call-cdce.c (check_pow): Likewise.
9013         (gen_conditions_for_pow_cst_base): Likewise.
9014         * tree-inline.c (estimate_num_insns): Likewise.
9015         * tree-ssa-dom.c (record_equality): Likewise.
9016         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
9017         (gimple_expand_builtin_pow): Likewise.
9018         (pass_optimize_widening_mul::execute): Likewise.
9019         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
9020         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
9021         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
9022
9023 2015-10-05  Richard Biener  <rguenther@suse.de>
9024
9025         PR ipa/67783
9026         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
9027         consider loop header PHI defs as IVs.
9028
9029 2015-10-05  Richard Biener  <rguenther@suse.de>
9030
9031         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
9032         call handling ...
9033         (create_expression_by_pieces): ... here and build GIMPLE
9034         calls directly.  Use gimple_build API and avoid force_gimple_operand.
9035         (insert_into_preds_of_block): Simplify.
9036         (do_regular_insertion): Add comment.
9037
9038 2015-10-04  Jason Merrill  <jason@redhat.com>
9039
9040         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
9041
9042 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
9043
9044         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
9045         check for general register.
9046         (ix86_emit_save_regs): Ditto.
9047         (ix86_emit_save_regs_using_mov): Ditto.
9048         (ix86_emit_restore_regs_using_pop): Ditto.
9049         (ix86_emit_restore_regs_using_mov): Ditto.
9050
9051 2015-10-03  Marek Polacek  <polacek@redhat.com>
9052
9053         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
9054         (insn-dfatab.o): Likewise.
9055
9056 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
9057
9058         * config.gcc (xtensa*-*-uclinux*): New configuration.
9059         * config/xtensa/uclinux.h: New file.
9060         * config/xtensa/uclinux.opt: New file.
9061
9062 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
9063
9064         * doc/cpp.texi (Standard Predefined Macros): Document value of
9065         __cplusplus for C++14.
9066
9067 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
9068
9069         * gcc.c (process_command): Use spec_machine rather than
9070         spec_host_machine to build tooldir_prefix2.
9071
9072 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
9073             Bernd Schmidt  <bernds@codesourcery.com>
9074
9075         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
9076         (Token, Stmt): Remove structs.
9077         (decls, vars, fns): Remove variables.
9078         (alloc_comment, append_stmt, is_keyword): Remove macros.
9079         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
9080         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
9081         (parse_init, parse_file): Remove functions.
9082         (read_file): Accept a pointer to a length and store into it.
9083         (process): Don't try to parse the input file, just write it out as
9084         a string, but looking for maps.  Also write out the length.
9085         (main): Don't use "-S" to compile PTX code.
9086
9087 2015-10-02  Jeff Law  <law@redhat.com>
9088
9089         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
9090         fixups.
9091
9092 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
9093
9094         PR target/67822
9095         * config/nvptx/mkoffload.c (main): Scan the argument vector for
9096         -fopenmp, and skip generating an offloading image if specified.
9097
9098 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
9099
9100         * system.h (ROUND_UP): New macro definition.
9101         (ROUND_DOWN): Ditto.
9102         * ggc-page.c (ROUND_UP): Remove local macro definition.
9103         (PAGE_ALIGN): Implement using ROUND_UP macro.
9104
9105         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
9106         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
9107         to align values.
9108         (ix86_compute_frame_layout): Ditto.
9109         (ix86_expand_prologue): Ditto.
9110         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
9111         to round down values.
9112         (expand_set_or_movmem_via_rep): Ditto.
9113
9114 2015-10-02  Marek Polacek  <polacek@redhat.com>
9115
9116         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
9117
9118 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
9119
9120         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
9121         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
9122         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
9123         (free_gimple_bb): Renamed free_gimple_poly_bb.
9124         (try_generate_gimple_bb): Hoist loop invariant code.
9125         (analyze_drs_in_stmts): Same.
9126         (build_scop_drs): Call renamed functions.
9127         (new_pbb_from_pbb): Same.
9128         (scop_ivs_can_be_represented): Delete as functionality now moved to
9129         graphite-scop-detection.c
9130         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
9131
9132 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
9133
9134         * graphite-scop-detection.c (stmt_has_side_effects): New function
9135           outlined from stmt_simple_for_scop_p.
9136         (graphite_can_represent_stmt): Same.
9137         (stmt_simple_for_scop_p): Moved code out of this function for better
9138         readability.
9139
9140 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
9141
9142         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
9143         F_AVX512IFMA.
9144         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
9145
9146 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9147
9148         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
9149
9150 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
9151
9152         PR rtl-optimization/67756
9153         * lra-constraints.c (match_reload): Add a new parameter.  Use it
9154         for creating a pseudo with the same value.
9155         (curr_insn_transform): Pass a new argument to match_reload.
9156
9157 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
9158
9159         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
9160         (expand_vec_perm_even_odd_1): Handle V64QImode.
9161         (ix86_expand_vec_perm_const_1): Try expansion with
9162         expand_vec_perm_even_odd_trunc as well.
9163         * config/i386/sse.md (VI124_AVX512F): Rename to ...
9164         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
9165         to V54QI.
9166         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
9167         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
9168         to V32HI and V16SI.
9169         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
9170         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
9171         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
9172         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
9173         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
9174         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
9175
9176 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
9177
9178         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
9179         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
9180
9181 2015-10-02  Jason Merrill  <jason@redhat.com>
9182
9183         PR c/59218
9184         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
9185         (diagnose_tm_1_op): Also diagnose volatile accesses in
9186         transaction_safe function.
9187
9188 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
9189
9190         * system.h (malloc.h): Don't include obsolete header.
9191
9192 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9193
9194         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
9195         (TLS_SECTION_ASM_FLAG): Delete.
9196
9197 2015-10-02  Marek Polacek  <polacek@redhat.com>
9198
9199         PR c/64249
9200         * doc/invoke.texi: Document -Wduplicated-cond.
9201         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
9202         (insn-dfatab.o): Likewise.
9203         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
9204         warning.
9205
9206 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
9207
9208         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
9209         sequences.
9210
9211 2015-10-02  Renlin Li  <renlin.li@arm.com>
9212
9213         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
9214
9215 2015-10-02  Renlin Li  <renlin.li@arm.com>
9216
9217         PR target/66776
9218         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
9219
9220 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9221
9222         PR rtl-optimization/67786
9223         PR rtl-optimization/67787
9224         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
9225         it modifies a reg used in the condition calculation.
9226
9227 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
9228
9229         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
9230         alternatives for reads from memory and moves from general-purpose
9231         registers.
9232         (*aarch64_combinez_be<mode>): Likewise.
9233
9234 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
9235
9236         PR target/51726
9237         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
9238         selectany within this function without need to keep attribute.
9239         (i386_pe_encode_section_info): Remove selectany-code.
9240
9241 2015-10-02  Richard Biener  <rguenther@suse.de>
9242
9243         * tree-ssa-sccvn.c (has_VN_INFO): New function.
9244         (free_scc_vn): Use it.
9245         (visit_use): Remove dead code and refactor to use gassign
9246         and use less indentation.
9247
9248 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
9249
9250         PR target/67788
9251         PR target/67789
9252         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
9253         (rs6000_cannot_copy_insn_p): New function.
9254         * config/rs6000/rs6000.md (cannot_copy): New attribute.
9255         (load_toc_v4_PIC_1_normal): Set cannot_copy.
9256         (load_toc_v4_PIC_1_476): Ditto.
9257
9258 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
9259
9260         * graphite-scop-detection.c (struct sese_l): New conversion constructor
9261         so that this type can be pushed into a vec.
9262         (class scop_builder): use sese_l to collect scops.
9263         (get_scops): New getter function.
9264         (remove_intersecting_scops): Use sese_l instead of scops_p.
9265         (intersects): Same.
9266         (add_scop): Same.
9267         (subsumes): Same.
9268         (remove_subscops): Same.
9269         (build_scops): Add scops to vec<scops_p> once all the scops have been
9270         detected.
9271
9272 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
9273
9274         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
9275         Renamed type from gimple_bb_p to gimple_poly_bb_p.
9276         (translate_isl_ast_node_user): Same.
9277         * graphite-poly.c (new_poly_bb): Same.
9278         * graphite-poly.h (gbb_from_bb): Same.
9279         * sese.h: Same.
9280         * graphite-sese-to-poly.c (new_gimple_bb):
9281         gimple_bb_p -> gimple_poly_bb_p
9282         (build_scop_scattering): Same.
9283         (find_params_in_bb): Same.
9284         (add_conditions_to_domain): Same.
9285         (sese_dom_walker::before_dom_children): Same.
9286         (analyze_drs_in_stmts): Same.
9287         (new_pbb_from_pbb): Same.
9288         (free_data_refs_aux): New pointer to type base_alias_pair.
9289         * graphite-sese-to-poly.h: Same.
9290         * sese.c (if_region_set_false_region): Fixed Indentation.
9291         (move_sese_in_condition): Same.
9292
9293 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
9294             Aditya Kumar  <aditya.k7@samsung.com>
9295
9296         PR tree-optimization/66980
9297         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
9298         when data reference analysis has failed.
9299
9300 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
9301             Aditya Kumar  <aditya.k7@samsung.com>
9302
9303         PR tree-optimization/67754
9304         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
9305         scev analysis on the same loop nest as analyze_drs_in_stmts.
9306         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
9307         renamed...
9308         (try_generate_gimple_bb): Call outermost_loop_in_sese.
9309         (analyze_drs_in_stmts): Same.
9310         * sese.c (outermost_loop_in_sese): ...here.
9311
9312 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
9313             Aditya Kumar  <aditya.k7@samsung.com>
9314
9315         PR tree-optimization/67754
9316         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
9317         recursion on the inner loops.
9318
9319 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9320
9321         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
9322         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
9323         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
9324         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
9325         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
9326
9327 2015-10-01  Marek Polacek  <polacek@redhat.com>
9328
9329         PR c/65345
9330         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
9331         create_tmp_var_raw rather than create_tmp_var.
9332
9333 2015-10-01  Marek Polacek  <polacek@redhat.com>
9334
9335         PR tree-optimization/67769
9336         * tree-ssa-phiopt.c (conditional_replacement): Call
9337         reset_flow_sensitive_info_in_bb.
9338         (minmax_replacement): Likewise.
9339         (abs_replacement): Likewise.
9340
9341 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
9342
9343         * builtins.c: Don't include gomp-constants.h.
9344         (fold_builtin_1): Don't fold acc_on_device here.
9345         * gimple-fold.c: Include gomp-constants.h.
9346         (gimple_fold_builtin_acc_on_device): New.
9347         (gimple_fold_builtin): Call it.
9348
9349 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
9350
9351         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
9352         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
9353
9354 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
9355
9356         * config/arm/aarch-common-protos.h
9357         (aarch_accumulator_forwarding): New.
9358         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
9359         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
9360         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
9361         * config/arm/cortex-a53.md: Rewrite.
9362
9363 2015-10-01  Richard Biener  <rguenther@suse.de>
9364
9365         * gimple-match.h (mprts_hook): Declare.
9366         * gimple-match.head.c (mprts_hook): Define.
9367         (maybe_push_res_to_seq): Use new hook.
9368         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
9369         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
9370         (vn_ssa_aux::has_constants): Remove.
9371         * tree-ssa-sccvn.c: Include gimple-match.h.
9372         (VN_INFO_GET): Assert we don't re-use SSA names.
9373         (vn_get_expr_for): Remove.
9374         (expr_has_constants): Likewise.
9375         (stmt_has_constants): Likewise.
9376         (simplify_binary_expression): Likewise.
9377         (simplify_unary_expression): Likewise.
9378         (vn_lookup_simplify_result): New hook.
9379         (visit_copy): Adjust.
9380         (visit_reference_op_call): Likewise.
9381         (visit_phi): Likewise.
9382         (visit_use): Likewise.
9383         (process_scc): Likewise.
9384         (init_scc_vn): Likewise.
9385         (visit_reference_op_load): Likewise.  Use match-and-simplify and
9386         a gimple seq for inserted expressions.
9387         (try_to_simplify): Remove GENERIC stmt combining code.
9388         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
9389         * tree-ssa-pre.c (eliminate_insert): Adjust.
9390         (eliminate_dom_walker::before_dom_children): Likewise.
9391
9392 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
9393
9394         * doc/invoke.texi (Optimization Options): Add
9395         -freorder-blocks-algorithm=.
9396         (Optimize Options) <-O>: Add -freorder-blocks.
9397         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
9398         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
9399         <-freorder-blocks>: Also enabled at levels -O and -Os.
9400         <-freorder-blocks-algorithm=>: Document new option.
9401
9402 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
9403
9404         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
9405         with flag_reorder_blocks_algorithm.
9406         * common.opt (freorder-blocks-algorithm=): New flag.
9407         (reorder_blocks_algorithm): New enum.
9408         * flag-types.h (reorder_blocks_algorithm): New enum.
9409         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
9410         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
9411
9412 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
9413
9414         * bb-reorder.c: Add intro comment.
9415         (reorder_basic_blocks_software_trace_cache): Print a header to
9416         the dump file.
9417         (edge_order): New function.
9418         (reorder_basic_blocks_simple): New function.
9419         (reorder_basic_blocks): Choose between the STC and the simple
9420         algorithms (always choose the former).
9421
9422 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
9423
9424         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
9425         function, factored out from ...
9426         (reorder_basic_blocks): ... here.
9427
9428 2015-10-01  Tom de Vries  <tom@codesourcery.com>
9429
9430         * tree-cfg.c (dump_function_to_file): Dump function attributes using
9431         __attribute__(()) string.  Move dumping of function attributes to before
9432         function name.
9433
9434 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
9435
9436         PR target/66870
9437         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
9438         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
9439         based on gold linker version.
9440         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
9441         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
9442         * configure, config.in: Regenerate.
9443
9444 2015-10-01  Alan Modra  <amodra@gmail.com>
9445
9446         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
9447         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
9448         (rs6000_output_mi_thunk): Likewise.
9449
9450 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
9451
9452         * config/nvptx/mkoffload.c (process): Change offload data format.
9453
9454 2015-09-30  Jeff Law  <law@redhat.com>
9455
9456         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
9457         with constant conditions.
9458         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
9459         (remove_ctrl_stmt_and_useless_edges): No longer static.
9460         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
9461         (remove_ctrl_stmt_and_useless_edges): Likewise.
9462
9463 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
9464             Cesar Philippidis  <cesar@codesourcery.com>
9465
9466         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
9467         (TARGET_GOACC_VALIDATE_DIMS): Override.
9468         * target.def (TARGET_GOACC): New target hook prefix.
9469         (validate_dims): New hook.
9470         * targhooks.h (default_goacc_validate_dims): New.
9471         * omp-low.c (oacc_validate_dims): New.
9472         (execute_oacc_device_lower): New.
9473         (default_goacc_validate_dims): New.
9474         (pass_data_oacc_device_lower): New.
9475         (pass_oacc_device_lower): New pass.
9476         (make_pass_oacc_device_lower): New.
9477         * tree-pass.h (make_pass_oacc_device_lower): Declare.
9478         * passes.def (pass_oacc_device_lower): Add it.
9479         * doc/tm.texi: Rebuilt.
9480         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
9481         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
9482
9483 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9484
9485         PR rtl-optimization/67037
9486         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
9487
9488 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
9489
9490         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
9491         * passes.c: Include tree-ssanames.h.
9492         (execute_function_todo): Flush the pending free SSA_NAMEs after
9493         eliminating unreachable basic blocks.
9494         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
9495         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
9496         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
9497         (flush_ssanames_freelist): New function.
9498         (release_ssaname_fn): Put released names on the queue.
9499         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
9500         * tree-ssanames.h (flush_ssanames_freelist): Declare.
9501
9502 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
9503
9504         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
9505         (generate_target_descr_file, generate_target_offloadend_file)
9506         (generate_host_descr_file, prepare_target_image): Pass it on.
9507         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
9508         (compile_native, main): Pass it on.
9509         * lto-wrapper.c (compile_offload_image): Likewise.
9510
9511 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
9512             Ilya Verbin  <ilya.verbin@intel.com>
9513             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9514
9515         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
9516         (prepare_target_image, main): Refactor argv building to use
9517         obstacks.
9518
9519 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9520
9521         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
9522         * config/spu/spu.c (spu_expand_atomic_op): New function.
9523         * config/spu/spu.md (AINT): New mode iterator.
9524         (ATOMIC): New code iterator.
9525         (atomic_name, atomic_pred): New code predicates.
9526         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
9527         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
9528         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
9529         "atomic_<atomic_name>_fetch<mode>"): Likewise.
9530
9531 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
9532
9533         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
9534         debug insns.
9535         (scalar_chain::convert_reg): Likewise.
9536
9537 2015-09-30  Richard Biener  <rguenther@suse.de>
9538
9539         * builtins.c: Add comment that no new simplifications should
9540         be added here.
9541
9542 2015-09-30  Marek Polacek  <polacek@redhat.com>
9543
9544         PR tree-optimization/67690
9545         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
9546         reset_flow_sensitive_info_in_bb.
9547         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
9548         * tree-ssanames.c: Include "gimple-iterator.h".
9549         (reset_flow_sensitive_info_in_bb): New function.
9550         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
9551
9552 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
9553
9554         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
9555         variable, replacing it with...
9556         (offload_abi): ... this new variable.  Adjust all users.
9557         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
9558
9559 2015-09-30  Matthias Klose  <doko@ubuntu.com>
9560
9561         * configure.ac: Remove extraneous ;;.
9562         * configure: Regenerate.
9563
9564 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
9565
9566         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
9567         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
9568         predicate, disallow register for operand 2.
9569
9570 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
9571
9572         * graphite-dependences.c (scop_get_dependences): Moved in down
9573         in order to be visible to its caller.
9574         * graphite-poly.h: Removed compute_deps, and extend_schedule.
9575
9576 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
9577             Aditya Kumar  <aditya.k7@samsung.com>
9578
9579         PR tree-optimization/67754
9580         * graphite-optimize-isl.c (optimize_isl): Call
9581         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
9582
9583 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
9584
9585         * builtins.c (expand_builtin_acc_on_device): Delete.
9586         (expand_builtin): Don't call it.
9587         (fold_builtin_1): Fold acc_on_device.
9588
9589 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
9590
9591         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
9592         (ix86_nsaved_sseregs): Likewise.
9593
9594 2015-09-29  Jeff Law  <law@redhat.com>
9595
9596         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
9597         computation of unused value.
9598
9599         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
9600         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
9601         inline macro expansion.
9602
9603         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
9604
9605         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
9606         (gen_shl_sext): Likewise.
9607         * config/sh/sh.md (divsi3): Likewise.
9608         (imm->ext_dest_operand splitter): Likewise.
9609
9610 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
9611             Aditya Kumar  <aditya.k7@samsung.com>
9612
9613         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
9614         (nb_data_writes_in_bb): Remove.
9615         (split_pbb): Remove.
9616         (split_reduction_stmt): Remove.
9617         (is_reduction_operation_p): Remove.
9618         (phi_contains_arg): Remove.
9619         (follow_ssa_with_commutative_ops): Remove.
9620         (detect_commutative_reduction_arg): Remove.
9621         (detect_commutative_reduction_assign): Remove.
9622         (follow_inital_value_to_phi): Remove.
9623         (edge_initial_value_for_loop_phi): Remove.
9624         (initial_value_for_loop_phi): Remove.
9625         (used_outside_reduction): Remove.
9626         (detect_commutative_reduction): Remove.
9627         (translate_scalar_reduction_to_array_for_stmt): Remove.
9628         (remove_phi): Remove.
9629         (dr_indices_valid_in_loop): Remove.
9630         (close_phi_written_to_memory): Remove.
9631         (translate_scalar_reduction_to_array): Remove.
9632         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
9633         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
9634         (rewrite_commutative_reductions_out_of_ssa): Remove.
9635         (build_poly_scop): Remove call to
9636         rewrite_commutative_reductions_out_of_ssa.
9637
9638 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
9639
9640         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
9641         Add new insn types for vector load and store pairs.
9642         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
9643         types "neon_ldp{,_q}".
9644         * config/arm/cortex-a57.md (neon_load_c): Add insn types
9645         "neon_ldp{,_q}".
9646         (neon_store_complex): Add insn types "neon_stp{,_q}".
9647         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
9648         "neon_{ldp,stp}_q".
9649
9650 2015-09-29  Jeff Law  <law@redhat.com>
9651
9652         * config/rx/constraints.md (Int08): Fix undefined left shift
9653         behaviour.
9654         (Sint08, Sint16, Sint24): Likewise.
9655         * config/rx/rx.c (rx_get_stack_layout): Likewise.
9656
9657         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
9658         behaviour.
9659
9660         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
9661         left shift behaviour.
9662         * config/msp430/constraints.md ('L' constraint): Similarly.
9663         ('Ys' constraint): Similarly.
9664
9665 2015-09-29  Richard Biener  <rguenther@suse.de>
9666
9667         PR tree-optimization/67170
9668         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
9669         the translate function pointer parameter to get the
9670         bool whether to disambiguate only by reference.
9671         (walk_non_aliased_vuses): Likewise.
9672         * tree-ssa-alias.c (maybe_skip_until): Adjust.
9673         (get_continuation_for_phi_1): Likewise.
9674         (get_continuation_for_phi): Likewise.
9675         (walk_non_aliased_vuses): Likewise.
9676         * tree-ssa-sccvn.c (const_parms): New bitmap.
9677         (vn_reference_lookup_3): Adjust for interface change.
9678         Disambiguate parameters pointing to readonly memory.
9679         (free_scc_vn): Free const_parms.
9680         (run_scc_vn): Initialize const_parms from a fn spec attribute.
9681
9682 2015-09-29  Richard Biener  <rguenther@suse.de>
9683
9684         PR tree-optimization/67741
9685         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
9686         builtin calls with correct signature.
9687
9688 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
9689
9690         PR target/65105
9691         * config/i386/i386.c: Include dbgcnt.h.
9692         (has_non_address_hard_reg): New.
9693         (convertible_comparison_p): New.
9694         (scalar_to_vector_candidate_p): New.
9695         (remove_non_convertible_regs): New.
9696         (scalar_chain): New.
9697         (scalar_chain::scalar_chain): New.
9698         (scalar_chain::~scalar_chain): New.
9699         (scalar_chain::add_to_queue): New.
9700         (scalar_chain::mark_dual_mode_def): New.
9701         (scalar_chain::analyze_register_chain): New.
9702         (scalar_chain::add_insn): New.
9703         (scalar_chain::build): New.
9704         (scalar_chain::compute_convert_gain): New.
9705         (scalar_chain::replace_with_subreg): New.
9706         (scalar_chain::replace_with_subreg_in_insn): New.
9707         (scalar_chain::emit_conversion_insns): New.
9708         (scalar_chain::make_vector_copies): New.
9709         (scalar_chain::convert_reg): New.
9710         (scalar_chain::convert_op): New.
9711         (scalar_chain::convert_insn): New.
9712         (scalar_chain::convert): New.
9713         (convert_scalars_to_vector): New.
9714         (pass_data_stv): New.
9715         (pass_stv): New.
9716         (make_pass_stv): New.
9717         (ix86_option_override): Created and register stv pass.
9718         (flag_opts): Add -mstv.
9719         (ix86_option_override_internal): Likewise.
9720         * config/i386/i386.md (SWIM1248x): New.
9721         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
9722         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
9723         (*anddi3_doubleword): New.
9724         (*zext<mode>_doubleword): New.
9725         (*zextsi_doubleword): New.
9726         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
9727         (*<code>di3_doubleword): New.
9728         * config/i386/i386.opt (mstv): New.
9729         * dbgcnt.def (stv_conversion): New.
9730
9731 2015-09-29  Tom de Vries  <tom@codesourcery.com>
9732
9733         * tree-cfg.c (dump_function_to_file): Dump function attributes.
9734
9735 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9736
9737         PR target/67716
9738         * config/sh/sh.c (sh_override_options_after_change): New.
9739         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
9740         (sh_option_override): Move align_loops, align_jumps and
9741         align_functions handling into sh_override_options_after_change.
9742
9743 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
9744
9745         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
9746         (nvptx_record_offload_symbol): Record function execution geometry.
9747         * config/nvptx/mkoffload.c (process): Include launch geometry in
9748         function data.
9749         * omp-low.c (oacc_launch_pack): New.
9750         (replace_oacc_fn_attrib): New.
9751         (set_oacc_fn_attrib): New.
9752         (get_oacc_fn_attrib): New.
9753         (expand_omp_target): Create keyed varargs for GOACC_parallel call
9754         generation.
9755         * omp-low.h (get_oacc_fn_attrib): Declare.
9756         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
9757         (DEF_FUNCTION_TYPE_VAR_11): Delete.
9758         * tree.h (OMP_CLAUSE_EXPR): New.
9759         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
9760
9761 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
9762             Sebastian Pop  <s.pop@samsung.com>
9763
9764         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
9765
9766 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
9767             Sebastian Pop  <s.pop@samsung.com>
9768
9769         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
9770         * graphite-scop-detection.c (struct sese_l): New type.
9771         (get_entry_bb): API for getting entry bb of SESE.
9772         (get_exit_bb): API for getting exit bb of SESE.
9773         (class debug_printer): New type.  Simple printer in debug mode.
9774         (trivially_empty_bb_p): New.  Return true when BB is empty or
9775         contains only debug instructions.
9776         (graphite_can_represent_expr): Call scalar_evoution_in_region
9777         instead of analyze_scalar_evolution.  Pass in scop instead of only
9778         the scop entry.
9779         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
9780         scop entry.
9781         (stmt_simple_for_scop_p): Same.
9782         (harmful_stmt_in_bb): Same.
9783         (graphite_can_represent_loop): Deleted.
9784         (struct scopdet_info): Deleted.
9785         (scopdet_basic_block_info): Deleted.
9786         (build_scops_1): Deleted.
9787         (bb_in_sd_region): Deleted.
9788         (find_single_entry_edge): Deleted.
9789         (find_single_exit_edge): Deleted.
9790         (create_single_entry_edge): Deleted.
9791         (sd_region_without_exit): Deleted.
9792         (create_single_exit_edge): Deleted.
9793         (unmark_exit_edges): Deleted.
9794         (mark_exit_edges): Deleted.
9795         (create_sese_edges): Deleted.
9796         (build_graphite_scops): Deleted.
9797         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
9798         (build_scops): Use the new scop_builder to build scops.
9799         (dot_all_scops_1): Use the new pretty printer.  Print loop father
9800         as well.
9801         (loop_body_is_valid_scop): New.  Return true if loop body is a
9802         valid scop.
9803         (class scop_builder): New.  Builds SCoPs for polyhedral
9804         optimizations.
9805         (scop_builder): New constructor.
9806         (static sese_l invalid_sese): sese_l with invalid edges.
9807         (get_sese): Get an sese (from a loop) if possible, invalid_sese
9808         otherwise.
9809         (get_nearest_dom_with_single_entry): Get nearest dominator of a
9810         basic_block with single entry.  Return NULL if we get to the
9811         beginning of a function.
9812         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
9813         a basic_block with single exit.  Return NULL if we get to the
9814         beginning of a function.
9815         (print_sese): Pretty-print SESE.
9816         (merge_sese): Merge two SESEs if possible and return the new SESE.
9817         (build_scop_depth): Start building the SCoP within a loop nest.
9818         (build_scop_breadth): Start building the SCoP at a single loop
9819         depth.  Merge adjacent SESEs if valid.
9820         (can_represent_loop_1): Returns true if Graphite can represent
9821         loop inside SCoP.  Helper for can_represent_loop.
9822         (can_represent_loop): Returns true if Graphite can represent LOOP
9823         and all its nested loops in SCoP.
9824         (loop_is_valid_scop): Returns true if LOOP and all its nests
9825         constitute a valid SCoP.
9826         (region_has_one_loop): Returns true of a region has only one loop.
9827         (add_scop): Add SCoP to the list of valid scops.  Removes an
9828         already existing scop if it intersects with or subsumed by this one.
9829         (harmful_stmt_in_region): Returns true if SCoP has any statment
9830         which cannot be represented by Graphite.
9831         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
9832         (remove_subscops): Remove any SCoP from the list of already found
9833         SCoPs, if subsumed by S1.
9834         (intersects): Return true if region bounded by SCoPs S1 and S2
9835         intersect.
9836         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
9837         * graphite.c (print_graphite_scop_statistics):
9838         (print_graphite_statistics): Print SCoP info while debugging.
9839         (graphite_initialize): Early exit in case number of loops in a
9840         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
9841         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
9842         (graphite_finalize):
9843         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
9844         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
9845         (recompute_all_dominators): Recalculate POST_DOMINATORS.
9846         * tree-cfg.c (print_loops): Print the function name while printing
9847         loops.
9848
9849 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
9850             Sebastian Pop  <s.pop@samsung.com>
9851
9852         PR tree-optimization/67700
9853         * graphite-sese-to-poly.c (parameter_index_in_region): Call
9854         invariant_in_sese_p_rec.
9855         (extract_affine): Same.
9856         (rewrite_cross_bb_scalar_deps): Call update_ssa.
9857         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
9858         * sese.h (invariant_in_sese_p_rec): Declare.
9859
9860 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
9861
9862         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
9863
9864 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
9865
9866         Revert:
9867         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9868                     Jiong Wang  <jiong.wang@arm.com>
9869
9870         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
9871         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
9872         (REG_CLASS_NAMES): Likewise.
9873         (REG_CLASS_CONTENTS): Likewise.
9874         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
9875         (aarch64_register_move_cost): Likewise.
9876         (aarch64_load_symref_appropriately): Invoke the new added pattern if
9877         possible.
9878         * config/aarch64/constraints.md (Uc0): New constraint.
9879
9880 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
9881
9882         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
9883
9884 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
9885
9886         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
9887         SECTION_EXCLUDE in XO mapping class.
9888
9889 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
9890
9891         PR target/54236
9892         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
9893         and handle ne and eq codes.
9894         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
9895         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
9896         CONST_INT_P.  Use reverse_condition.
9897         (sh_split_treg_set_expr): Likewise.
9898
9899 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
9900
9901         * config/arm/types.md (type): Add rotate_imm.
9902         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
9903         ROR immediate case.
9904         (*rorsi3_insn_uxtw): Likewise.
9905         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
9906         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
9907         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
9908
9909 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9910
9911         PR rtl-optimization/67481
9912         * ifcvt.c (contains_ccmode_rtx_p): New function.
9913         (insn_valid_noce_process_p): Use it.
9914
9915 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9916
9917         PR rtl-optimization/67456
9918         PR rtl-optimization/67464
9919         PR rtl-optimization/67465
9920         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
9921         move in the mode of x.  Handle combination of complex and simple
9922         block pairs as well as the case when one is empty.
9923
9924 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9925
9926         * doc/gimple.texi: Update references to gimple_statement_base.
9927         * gdbhooks.py: Likewise.
9928         * gimple.h: Likewise.
9929
9930 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
9931
9932         * config/sparc/driver-sparc.c: map LEON to leon3
9933
9934 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
9935
9936         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
9937           and make it inverse to change default
9938         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
9939           supervisor mode
9940         * doc/invoke.texi: Document change of default
9941
9942 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
9943
9944         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
9945         true on %f0 for a target without FPU.
9946         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
9947         without FPU.
9948         (untyped_return): Do not load %f0 for a target without FPU.
9949
9950 2015-09-28  Andrew Pinski  <apinski@cavium.com>
9951
9952         * config/aarch64/aarch64.md (prefetch):
9953         Change the predicate of operand 0 to register_operand.
9954
9955 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
9956
9957         * config/i386/predicates.md (register_sse4nonimm_operand): New
9958         predicate.
9959         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
9960         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
9961         Use register_sse4nonimm_operand as operand 0 predicate.
9962         (*vec_extractv8hi_sse2): Remove insn pattern.
9963         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
9964         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
9965
9966 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
9967             Kaz Kojima  <kkojima@gcc.gnu.org>
9968
9969         PR target/67391
9970         * config/sh/sh-protos.h (sh_lra_p): Declare.
9971         * config/sh/sh.c (sh_lra_p): Make non-static.
9972         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
9973         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
9974         Expand into addsi3_scr if operands[2] if needed.
9975         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
9976         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
9977         (addsi3_scr, *addsi3): New insn_and_split patterns.
9978
9979 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
9980
9981         PR rtl-optimization/64164
9982         PR tree-optimization/67312
9983         PR middle-end/67340
9984         PR middle-end/67490
9985         PR bootstrap/67597
9986         * cfgexpand.c (parm_in_stack_slot_p): Remove.
9987         (ssa_default_def_partition): Remove.
9988         (get_rtl_for_parm_ssa_default_def): Remove.
9989         (set_rtl): Check that RTL assignments match expectations.
9990         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
9991         default def location for params and results.  Record SSA names
9992         or types in REG and MEM attrs, respectively.
9993         (set_parm_rtl): New.
9994         (expand_one_ssa_partition): Drop logic that assigned MEMs with
9995         unassigned addresses.
9996         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
9997         deferred stack alloc vars.
9998         (expand_used_vars): Skip partitions holding parm default defs.
9999         Move adjust_one_expanded_partition_var loop...
10000         (pass_expand::execute): ... here.  Drop redundant assert.
10001         Adjust comments before the final loop over all ssa names.
10002         Require assigned rtl of parms and results to match exactly.
10003         Reset its attributes to match them, not any other variables in
10004         the same partition.
10005         (expand_debug_expr): Use entry value for PARM's default defs
10006         only iff they have zero nondebug uses.
10007         * cfgexpand.h (parm_in_stack_slot_p): Remove.
10008         (get_rtl_for_parm_ssa_default_def): Remove.
10009         (set_parm_rtl): Declare.
10010         * doc/invoke.texi: Improve wording.
10011         * explow.c (promote_decl_mode): Fix promote_function_mode for
10012         result decls not by reference.
10013         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
10014         bypass TYPE_MODE to get the actual vector mode.
10015         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
10016         2015-08-19's changes as follows.  Drop include of
10017         basic-block.h and df.h.
10018         (rtl_for_parm): Remove.
10019         (maybe_reset_rtl_for_parm): Remove.
10020         (parm_in_unassigned_mem_p): Remove.
10021         (use_register_for_decl): Add logic for RESULT_DECLs matching
10022         assign_parms' behavior.
10023         (split_complex_args): Revert.
10024         (assign_parms_augmented_arg_list): Revert.  Add comment
10025         referencing the logic above.
10026         (assign_parm_adjust_stack_rtl): Revert.
10027         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
10028         of SET_DECL_RTL.  Set up a REG if the parm demands so.
10029         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
10030         calls into a single set_parm_rtl.  Set up a temporary RTL
10031         temporarily for expand_assignment.
10032         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
10033         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
10034         (assign_bounds): Revert.
10035         (assign_parms): Revert.  Use set_parm_rtl.
10036         (allocate_struct_function): Relayout result and parms of
10037         non-abstruct functions.
10038         (expand_function_start): Revert.  Use set_parm_rtl.  If the
10039         result is not a hard reg, create a pseudo from the promoted
10040         mode of the default def.  Promote static chain mode.
10041         * tree-outof-ssa.c (remove_ssa_form): Drop unused
10042         partition_has_default_def.  Set up
10043         partitions_for_parm_default_defs.
10044         (finish_out_of_ssa): Remove partition_has_default_def.
10045         Release partitions_for_parm_default_defs.
10046         * tree-outof-ssa.h (struct ssaexpand): Remove
10047         partition_has_default_def.  Add
10048         partitions_for_parm_default_defs.
10049         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
10050         stor-layout.h.
10051         (build_ssa_conflict_graph): Fix conflict-detection of default
10052         defs of even unused default defs of params and results.
10053         (for_all_parms): New.
10054         (create_default_def): New.
10055         (register_default_def): New.
10056         (coalesce_with_default): New.
10057         (create_outofssa_var_map): Create default defs for all parms
10058         and results, and register their partitions.  Add GIMPLE_RETURN
10059         operands as coalesce candidates with results.  Add default
10060         defs of each parm or result as coalesce candidates with its
10061         other defs.  Mark each result def, and each default def of
10062         parms, as used_in_copy.
10063         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
10064         with the ssa names, even anonymous ones.  Drop
10065         parm_in_stack_slot_p calls.  Require same signedness and
10066         alignment.
10067         (coalesce_ssa_name): Add coalesce candidates for all defs of
10068         each parm and result, even unused ones.
10069         (parm_default_def_partition_arg): New type.
10070         (set_parm_default_def_partition): New.
10071         (get_parm_default_def_partitions): New.
10072         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
10073         * tree-ssa-live.c (partition_view_init): Regard unused defs of
10074         parms and results as used.
10075         (verify_live_on_entry): Don't error out just because they're
10076         not live.
10077
10078 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
10079
10080         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
10081         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
10082         (output_fde): Don't output length for debug_frame on AIX.
10083         (output_call_frame_info): Don't output length for debug_frame on AIX.
10084         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
10085         HAVE_XCOFF_DWARF_EXTRAS.
10086         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
10087         HAVE_XCOFF_DWARF_EXTRAS.
10088         (output_compilation_unit_header): Don't output length on AIX.
10089         (output_pubnames): Don't output length on AIX.
10090         (output_aranges): Delete argument. Compute length locally. Don't
10091         output length on AIX.
10092         (output_line_info): Don't output length on AIX.
10093         (dwarf2out_finish): Don't compute aranges_length.
10094         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
10095         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
10096         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
10097         symbol decoration for AIX.
10098         (rs6000_xcoff_debug_unwind_info): New.
10099         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
10100         for SECTION_DEBUG.
10101         (rs6000_xcoff_declare_function_name): Emit different
10102         .function pseudo-op when DWARF2_DEBUG. Don't call
10103         xcoffout_declare_function for DWARF2_DEBUG.
10104         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
10105         Redefine.
10106         * config/rs6000/aix71.h: New.
10107         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
10108         locations support.
10109         * configure: Regenerate.
10110         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
10111         DWARF support.
10112
10113 2015-09-26  Jeff Law  <law@redhat.com>
10114
10115         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
10116         behaviour.
10117         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
10118         behaviour.
10119
10120         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
10121         behaviour
10122
10123         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
10124         undefined behaviour.
10125
10126         * config/cris/cris.md (asrandb): Fix left shift undefined
10127         behaviour.
10128         (asrandw): Likewise.
10129
10130 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
10131
10132         PR target/61578
10133         * lra-constarints.c (match_reload): Check presence of the input pseudo
10134         in the output operand.
10135
10136 2015-09-25  Tobias Burnus  <burnus@net-b.de>
10137
10138         * doc/invoke.texi (-fsanitize): Minor wording tweak.
10139
10140 2015-09-25  Tobias Burnus  <burnus@net-b.de>
10141
10142         * doc/invoke.texi (-fsanitize): Update URLs.
10143
10144 2015-09-25  Teresa Johnson  <tejohnson@google.com>
10145
10146         * opts.c (finish_options): Unset -freorder-blocks-and-partition
10147         if not using profile.
10148
10149 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10150
10151         PR pretty-print/67567
10152         * pretty-print.c (pp_string): Add gcc_checking_assert.
10153         * pretty-print.h (output_buffer_append_r): Likewise.
10154
10155 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
10156
10157         PR target/67675
10158         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
10159         addr2 individually.  Don't emit logical or insn if one is known to
10160         be aligned approriately.
10161         (sh_expand_cmpnstr): Likewise.
10162
10163 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
10164
10165         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
10166         __builtin_aarch64_fp[sc]r arguments into a register.
10167
10168 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
10169
10170         * config.gcc (x86_archs): Replace lakemount with lakemont.
10171         (with_cpu): Likewise.
10172         (with_arch): Likewise.
10173         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
10174         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
10175         __tune_lakemount__ with __tune_lakemont__.
10176         * config/i386/i386.c (lakemount_cost): Renamed to ...
10177         (lakemont_cost): This.
10178         (m_LAKEMOUNT): Renamed to ...
10179         (m_LAKEMONT): This.
10180         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
10181         (processor_target_table): Replace "lakemount" with "lakemont".
10182         (processor_alias_table): Likewise.
10183         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
10184         PROCESSOR_LAKEMONT.
10185         (ix86_adjust_cost): Likewise.
10186         (ia32_multipass_dfa_lookahead): Likewise.
10187         * config/i386/i386.h (processor_type): Likewise.
10188         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
10189         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
10190         Lakemount with Lakemont.
10191
10192 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
10193
10194         * config.gcc (x86_archs): Replace iamcu with lakemount.
10195         (with_cpu): Likewise.
10196         (with_arch): Likewise.
10197         * doc/invoke.texi: Likewise.
10198         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
10199         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
10200         __tune_iamcu__ with __tune_lakemount__.
10201         * config/i386/i386.c (iamcu_cost): Renamed to ...
10202         (lakemount_cost): This.
10203         (m_IAMCU): Renamed to ...
10204         (m_LAKEMOUNT): This.
10205         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
10206         (processor_target_table): Replace "iamcu" with "lakemount".
10207         (processor_alias_table): Likewise.
10208         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
10209         PROCESSOR_LAKEMOUNT.
10210         (ix86_adjust_cost): Likewise.
10211         (ia32_multipass_dfa_lookahead): Likewise.
10212         * config/i386/i386.h (processor_type): Likewise.
10213         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
10214
10215 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
10216
10217         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
10218         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
10219         Declare.
10220         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
10221         (pa_expand_compare_and_swap_loop): New.
10222         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
10223         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
10224         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
10225         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
10226         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
10227         Revise.
10228
10229 2015-09-24  Michael Collison  <michael.collison@linaro.org>
10230
10231         PR other/57195
10232         * read-md.c (read_name): Allow mode iterators inside angle
10233         brackets in rtl expressions.
10234
10235 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
10236
10237         PR target/61578
10238         * ira-color.c (update_allocno_cost): Add parameter.
10239         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
10240         parameter.
10241
10242 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10243
10244         PR driver/67640
10245         * opts-common.c (prune_options): Discard all -fdiagnostics-color
10246         but the last one, which is moved to the front to be processed
10247         first.
10248         * opts.c (enable_warning_as_error): Reject options that do not
10249         control warnings.
10250
10251 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
10252
10253         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
10254
10255 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
10256
10257         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
10258         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
10259         (aarch64_cannot_force_const_mem): Likewise.
10260         (aarch64_classify_address): Likewise.
10261         (aarch64_classify_symbolic_expression): Likewise.
10262         (aarch64_print_operand): Likewise.
10263         (aarch64_classify_symbol): Likewise.
10264         (aarch64_mov_operand_p): Likewise.
10265         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
10266         (aarch64_mov_operand): Likewise.
10267
10268 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
10269
10270         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
10271         for info->spe_gp_size.
10272
10273 2015-09-24  Richard Biener  <rguenther@suse.de>
10274
10275         PR lto/67699
10276         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
10277         abstract origins.
10278
10279 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
10280
10281         * tree-object-size.c (plus_stmt_object_size)
10282         (cond_expr_object_size): Change the formal parameters from gimple
10283         to gimple *.
10284         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
10285         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
10286         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
10287
10288 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10289
10290         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
10291         Check for ld -type pie on Solaris 11.x and 12.
10292         * configure: Regenerate.
10293         * config.in: Regenerate.
10294
10295         * gcc.c (LD_PIE_SPEC): Allow redefinition.
10296
10297         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
10298         (STARTFILE_SPEC): Use it.
10299         (ENDFILE_CRTEND_SPEC): Define.
10300         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
10301         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
10302         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
10303         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
10304         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
10305         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
10306         (ENDFILE_ARCH_SPEC): Define.
10307         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
10308
10309 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10310
10311         * configure.ac (gcc_cv_solaris_crts): New test.
10312         * configure. Regenerate.
10313         * config.in: Regenerate.
10314         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
10315         HAVE_SOLARIS_CRTS variant.
10316
10317 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10318
10319         * tree-inline.h (count_insns_seq): Delete prototype.
10320         (estimate_num_insns_seq): Define prototype.
10321         * tree-inline.c (count_insns_seq): Delete.
10322         (estimate_num_insns_seq): Remove static qualifier.
10323         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
10324         with estimate_num_insns_seq.
10325
10326 2015-09-24  Richard Biener  <rguenther@suse.de>
10327
10328         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
10329         members.
10330         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
10331         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
10332         offset.
10333         (ao_ref_init_from_vn_reference): Record clique and base in the
10334         built base.
10335         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
10336
10337 2015-09-24  Richard Biener  <rguenther@suse.de>
10338
10339         PR tree-optimization/48885
10340         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
10341         as not including any restrict tags from other pointers.
10342
10343 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
10344
10345         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
10346         character when appending to offload_targets.
10347
10348         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
10349         offload targets by commas, not colons.
10350         * config.in: Regenerate.
10351         * configure: Likewise.
10352         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
10353         instead of setting up the default offload targets here...
10354         (process_command): ..., do it here.
10355         libgomp/
10356         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
10357         targets are separated by commas.
10358         * config.h.in: Regenerate.
10359
10360 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
10361             Nathan Sidwell  <nathan@codesourcery.com>
10362
10363         * omp-low.h (omp_reduction_init_op): Declare.
10364         * omp-low.c (omp_reduction_init_op): New, broken out of ...
10365         (omp_reduction_init): ... here.  Call it.
10366         * tree-parloops.c (initialize_reductions): Use
10367         omp_reduction_init_op.
10368
10369 2015-09-23   Richard Biener  <rguenther@suse.de>
10370
10371         PR middle-end/67662
10372         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
10373         undefined overflow unless they will cancel out.
10374
10375 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
10376
10377         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
10378         insn emit.
10379
10380 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10381
10382         PR c/49655
10383         * opts.h (write_langs): Declare.
10384         * opts-global.c (write_langs): Make it extern.
10385
10386 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
10387
10388         PR target/67391
10389         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
10390         overlapping regs when matching the pattern.
10391
10392 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
10393
10394         * config/aarch64/aarch64-simd.md
10395         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
10396         (aarch64_float_truncate_hi_v4sf_le): New.
10397         (aarch64_float_truncate_hi_v4sf_be): Likewise.
10398
10399 2015-09-23  Richard Biener  <rguenther@suse.de>
10400
10401         * tree-ssa-structalias.c (intra_create_variable_infos): Build
10402         representatives for all restrict qualified pointer destinations.
10403
10404 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
10405
10406         * config/i386/i386.md (define_code_attr mshift): New.
10407         (define_mode_iterator SWI1248_AVX512BW): Rename ...
10408         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
10409         only.
10410         (define_insn "*k<logic><mode>"): Use new iterator name.
10411         (define_insn "*<mshift><mode>3"): New.
10412
10413 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
10414
10415         PR middle-end/67649
10416         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
10417         mark the block as accessible.
10418
10419 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
10420
10421         * function.c (thread_prologue_and_epilogue_insns): Delete
10422         orig_entry_edge argument to try_shrink_wrapping.
10423         * shrink-wrap.c (can_get_prologue): New function.
10424         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
10425         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
10426         can_get_prologue where needed.  Remove code that finds a single
10427         edge for the prologue.  Remove code that tests if any reg clobbered
10428         by the prologue is live on the prologue edge.  Remove code that finds
10429         the new prologue edge after duplicating blocks.  Make a new prologue
10430         block and edge.
10431         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
10432
10433 2015-09-22  Jeff Law  <law@redhat.com>
10434
10435         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
10436         behavior.
10437
10438 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
10439
10440         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
10441         -Wtemplates, -Wnamespaces): Document.
10442
10443 2015-09-22  Tom de Vries  <tom@codesourcery.com>
10444
10445         PR tree-optimization/67671
10446         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
10447         pointer references as restrict.
10448
10449 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
10450
10451         * config/nios2/nios2.c (nios2_legitimize_address): When handling
10452         'reg + reloc' cases, allow first operand to be non-REG, and use
10453         force_reg() to enforce address pattern.
10454
10455 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
10456
10457         PR target/67480
10458         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
10459         (define_mode_iterator VI12_AVX_AVX512F): New.
10460         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
10461         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
10462         (define_insn "*<code><mode>3"): ... Into new pattern using
10463         VI12_AVX_AVX512F iterators without masking.
10464
10465 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10466
10467         * config.gcc: Support "skylake-avx512".
10468         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
10469         PROCESSOR_SKYLAKE_AVX512.
10470         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
10471         (processor_target_table): Add "skylake-avx512".
10472         (PTA_SKYLAKE_AVX512): Define.
10473         (ix86_option_override_internal): Add "skylake_avx512".
10474         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
10475         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
10476         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
10477         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
10478         * doc/invoke.texi (skylake-avx512): New.
10479
10480 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10481
10482         * config/i386/i386.md (define_insn "kunpckhi"): Fix
10483         operand in pattern.
10484         (define_insn "kunpcksi"): Ditto.
10485         (define_insn "kunpckdi"): Ditto.
10486
10487 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10488
10489         * config/i386/i386.md (define_split not/xor SWI1248x): Use
10490         iterator instead of fixed modes.
10491
10492 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
10493
10494         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
10495         Adjust declaration.
10496         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
10497         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
10498         out_result.  Update to support update-fetch operations.
10499         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
10500         Adjust for change to aarch64_gen_atomic_ldop.
10501         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
10502         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
10503         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
10504         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
10505         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
10506
10507 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
10508
10509         * config/aarch64/aarch64-protos.h
10510         (aarch64_atomic_ldop_supported_p): Declare.
10511         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
10512         (enum aarch64_atomic_load_op_code): New.
10513         (aarch64_emit_atomic_load_op): New.
10514         (aarch64_gen_atomic_ldop): Update to support load-operate
10515         patterns.
10516         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
10517         to an expander.
10518         (aarch64_atomic_<atomic_optab><mode>): New.
10519         (aarch64_atomic_<atomic_optab><mode>_lse): New.
10520         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
10521         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
10522         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
10523
10524 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
10525
10526         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
10527         (UNSPECV_ATOMIC_LDOP_OR): New.
10528         (UNSPECV_ATOMIC_LDOP_BIC): New.
10529         (UNSPECV_ATOMIC_LDOP_XOR): New.
10530         (UNSPECV_ATOMIC_LDOP_PLUS): New.
10531         (ATOMIC_LDOP): New.
10532         (atomic_ldop): New.
10533         (aarch64_atomic_load<atomic_ldop><mode>): New.
10534
10535 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
10536
10537         * config/aarch64/aarch64.md
10538         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
10539         pattern.
10540
10541 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
10542
10543         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
10544         Declare.
10545         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
10546         (aarch64_gen_atomic_ldop): New.
10547         (aarch64_split_atomic_op): Fix whitespace and add a comment.
10548         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
10549         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
10550         (atomic_exchange<mode>): Replace with an expander.
10551         (aarch64_atomic_exchange<mode>): New.
10552         (aarch64_atomic_exchange<mode>_lse): New.
10553         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
10554         (aarch64_atomic_swp<mode>): New.
10555
10556 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10557
10558         * tree-inline.c (expand_call_inline): Use inform for extra note.
10559         Do not give a note with UNKNOWN_LOCATION.
10560         Replace input_location with gimple_location (stmt).
10561         Use true/false instead of TRUE/FALSE.
10562
10563 2015-09-22  Tom de Vries  <tom@codesourcery.com>
10564
10565         PR tree-optimization/67666
10566         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
10567         with single field non-conservative.
10568
10569 2015-09-21  David S. Miller  <davem@davemloft.net>
10570
10571         PR/67622
10572         Revert:
10573         2015-09-11  David S. Miller  <davem@davemloft.net>
10574
10575         * config/sparc/constraints.md: Make "U" constraint a real register
10576         constraint.
10577         * config/sparc/sparc.c (TARGET_LRA_P): Define.
10578         (D_MODES, DF_MODES): Add missing cast.
10579         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
10580         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
10581         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
10582         cost to 8.
10583         * config/sparc/sparc.h (PROMOTE_MODE): Define.
10584         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
10585         provide these insn when flag_pic.
10586
10587         2015-09-17  David S. Miller  <davem@davemloft.net>
10588
10589         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
10590         Declare.
10591         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
10592         function.
10593         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
10594         (HARD_REGNO_CALLER_SAVE_MODE): Define.
10595         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
10596         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
10597         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
10598         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
10599         provide when flag_pic.
10600
10601 2015-09-21  Jeff Law  <law@redhat.com>
10602
10603         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
10604         behavior.
10605
10606 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10607
10608         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
10609
10610 2015-09-21  Richard Biener  <rguenther@suse.de>
10611
10612         * passes.c (rest_of_decl_compilation): Do not call
10613         dwarf2out_early_global_decl for aliases.
10614
10615 2015-09-21  Richard Biener  <rguenther@suse.de>
10616
10617         PR debug/67664
10618         * dwarf2out.c (add_location_or_const_value_attribute): Remove
10619         attribute parameter.  Early exit if either DW_AT_const_value
10620         or DW_AT_location are present already.
10621         (gen_variable_die): Adjust caller.
10622         (dwarf2out_late_global_decl): Likewise.
10623
10624 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
10625
10626         PR target/67657
10627         * config/sh/sh.c (sh_remove_overlapping_post_inc,
10628         sh_peephole_emit_move_insn): Add new functions.
10629         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
10630         sh_peephole_emit_move_insn): Declere them.
10631         * config/sh/sh.md: Use them in various peephole2 patterns.
10632
10633 2015-09-21  Richard Biener  <rguenther@suse.de>
10634
10635         PR middle-end/67651
10636         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
10637         address with -fno-delete-null-pointer-checks.
10638
10639 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
10640
10641         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
10642         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
10643         (reduc_uplus_v16qi): Remove.
10644
10645         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
10646         (reduc_<VEC_reduc_name>_v2df): Remove.
10647         (reduc_<VEC_reduc_name>_v4sf): Remove.
10648         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
10649
10650         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
10651         gen_ function by removing * prefix.
10652         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
10653
10654 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10655
10656         PR middle-end/60832
10657         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
10658         Print i_bound without converting it to a tree.
10659
10660 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
10661
10662         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
10663         operands[4] operands[5] swap with std::swap, removed tmp variable.
10664         (arm_evpc_neon_vzip): Replaced in0/in1 and
10665         out0/out1 swaps with std::swap, removed x variable.
10666         (arm_evpc_neon_vtrn): Replaced in0/int1 and
10667         out0/out1 swaos with std::swap, removed x variable.
10668         (arm_expand_vec_perm_const_1): Replaced
10669         d->op0/d->op1 swap with std::swap, removed x variable.
10670         (arm_evpc_neon_vuzp): Replaced in0/in1 and
10671         out0/out1 swaps with std::swap, removed x variable.
10672
10673 2015-09-21  Jonathan Yong  <10walls@gmail.com>
10674
10675         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
10676         sysroot/usr/lib/32api for additional win32 libraries,
10677         fixes failing Cygwin bootstrapping.
10678
10679 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
10680
10681         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
10682
10683 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
10684
10685         PR target/67126
10686         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
10687         (*mov_t_msb_neg): Rewrite negc pattern.
10688
10689 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
10690
10691         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
10692         immediate generation code.
10693
10694 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
10695
10696         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
10697         redundant immediate generation code.
10698
10699 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
10700
10701         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
10702         (AARCH64_NUM_BITMASKS): Remove.
10703         (aarch64_bitmasks_cmp): Remove.
10704         (aarch64_build_bitmask_table): Remove.
10705
10706 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
10707
10708         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
10709         slow immediate matching loops with a faster algorithm.
10710
10711 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
10712
10713         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
10714         faster algorithm.
10715
10716 2015-09-20  Jeff Law  <law@redhat.com>
10717
10718         PR tree-optimization/47679
10719         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
10720         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
10721         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
10722         (thread_through_normal_block): Use record_temporary_equivalences.
10723
10724 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
10725
10726         * coretypes.h (gimple): Change typedef to be a forward declaration.
10727         * gimple.h (gimple_statement_base): rename to gimple.
10728         * (all functions and types using gimple): Adjust.
10729         * *.[ch]: Likewise.
10730
10731 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
10732             David Edelsohn  <dje.gcc@gmail.com>
10733
10734         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
10735         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10736         (EH_FRAME_THROUGH_COLLECT2): Define.
10737         (EH_TABLES_CAN_BE_READ_ONLY): Define.
10738         (ASM_OUTPUT_DWARF_PCREL): Define.
10739         (ASM_OUTPUT_DWARF_DATAREL): Define.
10740
10741 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
10742
10743         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
10744         of TARGET_ELF32.
10745
10746 2015-09-18  Jeff Law  <law@redhat.com>
10747
10748         PR tree-optimization/47679
10749         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
10750         it here ...
10751         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
10752         object.  Update constructor.
10753         (pass_dominator::execute):  Corresponding chagnes to declaration
10754         and initialization of avail_exprs_stack.  Update constructor call
10755         for dom_opt_dom_walker object.
10756         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
10757         it down to children as needed.
10758         (record_equivalences_from_incoming_edge): Likewise.
10759         (eliminate_redundant_computations): Likewise.
10760         (record_equivalences_from_stmt): Likewise.
10761         (simplify_stmt_for_jump_threading): Likewise.
10762         (record_temporary_equivalences): Likewise.
10763         (optimize_stmt): Likewise.
10764         (dom_opt_dom_walker::thread_across_edge): Update access to
10765         avail_exprs_stack object and pass it to children as needed.
10766         (dom_opt_dom_walker::before_dom_children): Similarly.
10767         (dom_opt_dom_walker::after_dom_children): Similarly.
10768         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
10769         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
10770         Add avail_expr_stack argument.  Pass it to children as needed.
10771         (dummy_simplify): Likewise.
10772         (simplify_control_stmt_condition): Likewise.
10773         (thread_around_empty_blocks): Likewise.
10774         (thread_through_normal_block): Likewise.
10775         (thread_across_edge): Likewise.
10776         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
10777         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
10778
10779         PR tree-optimization/47679
10780         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
10781         it here ...
10782         (dom_opt_dom_walker): New private member holding the const_and_copies
10783         object.  Update constructor.
10784         (pass_dominator::execute): Corresponding changes to declaration
10785         and initialization of const_and_copies.  Update constructor call
10786         for the dom_opt_dom_walker object.
10787         (record_temporary_equivalences): Accept const_and_copies argument
10788         pass it down to children as needed.
10789         (record_equality): Likewise.
10790         (record_equivalences_from_incoming_edge): Likewise.
10791         (cprop_into_successor_phis, optimize_stmt): Likewise.
10792         (eliminate_redundant_computations): Likewise.
10793         (dom_opt_dom_walker::thread_across_edge): Update access to
10794         const_and_copies object and pass it to children as needed.
10795         (dom_opt_dom_walker::before_dom_children): Similarly.
10796         (dom_opt_dom_walker::after_dom_children): Similarly.
10797
10798         PR tree-optimization/47679
10799         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
10800         it into the avail_exprs_stack class.
10801         (pass_dominator::execute): Corresponding changes to declaration
10802         and initialization of avail_exprs.  Pass avail_exprs to
10803         dump_dominator_optimization_stats.
10804         (record_cond): Extract avail_exprs from avail_exprs_stack.
10805         (lookup_avail_expr): Similarly.
10806         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
10807         position in file.
10808         (dump_dominator_optimization_stats): Make static and prototype.
10809         Add argument for the hash table to dump.
10810         (debug_dominator_optimization_stats): Remove.
10811         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
10812         prototype.
10813         (debug_dominator_optimization_stats): Similarly.
10814         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
10815         "void" in prototype for pop_to_marker method.  Add accessor method
10816         for the underlying avail_exprs table.
10817
10818         * tree-ssa-threadedge.c: Remove trailing whitespace.
10819
10820 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
10821
10822         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
10823         unsigned.
10824         (pa_ldil_cint_p): Likewise.
10825         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
10826         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
10827         Update callers.
10828         * config/pa/pa.md: Likewise.
10829
10830 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
10831
10832         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
10833         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
10834         (diagnostic_show_locus): Likewise.
10835         (diagnostic_print_caret_line): Likewise.
10836         * diagnostic-show-locus.c: New file.
10837
10838 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
10839
10840         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
10841         "back" parameter. Declare label in #if block.
10842
10843 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
10844
10845         PR middle-end/67619
10846         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
10847         the address to a register.
10848
10849 2015-09-18  Jeff Law  <law@redhat.com>
10850
10851         PR tree-optimization/47679
10852         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
10853         * tree-ssa-dom.c: Remove unnecessary header includes.
10854         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
10855         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
10856         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
10857         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
10858         (pass_phi_only_cprop::execute): Likewise.
10859         (make_pass_phi_only_cprop): Likewise.
10860         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
10861         uses of file scoped statics by passing the required objects
10862         as parameters wherever needed.
10863
10864 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
10865             David Edelsohn  <dje.gcc@gmail.com>
10866
10867         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
10868         EH_FRAME_THROUGH_COLLECT2.
10869         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
10870         DW_EH_PE_datarel.
10871         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
10872         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
10873         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
10874         * except.c (switch_to_exception_section): Use a read-only section
10875         even if EH_FRAME_SECTION_NAME is undefined.
10876         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
10877         * collect2.c (write_c_file_stat): Provide dbase on AIX.
10878         (scan_prog_file): Don't export __dso_handle nor
10879         __gcc_unwind_dbase.
10880         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10881         (EH_TABLES_CAN_BE_READ_ONLY): Define.
10882         (ASM_OUTPUT_DWARF_PCREL): Define.
10883         (ASM_OUTPUT_DWARF_DATAREL): Define.
10884         (EH_FRAME_THROUGH_COLLECT2): Define.
10885         (EH_FRAME_IN_DATA_SECTION): Delete.
10886         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
10887         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
10888         Declare.
10889         (rs6000_asm_output_dwarf_datarel): Declare.
10890         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
10891         (rs6000_aix_asm_output_dwarf_datarel): New.
10892         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
10893         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
10894         (EH_FRAME_THROUGH_COLLECT2): Define.
10895         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
10896         (EH_FRAME_THROUGH_COLLECT2): Define.
10897         (EH_TABLES_CAN_BE_READ_ONLY): Define.
10898         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
10899         (EH_FRAME_THROUGH_COLLECT2): New.
10900         (ASM_OUTPUT_DWARF_DATAREL): New.
10901         * doc/tm.texi: Regenerate.
10902
10903 2015-09-18  Richard Biener  <rguenther@suse.de>
10904
10905         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
10906         we're in early phase.
10907         (schedule_generic_params_dies_gen): Likewise.
10908         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
10909         work as possible, retaining unhandled cases.
10910         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
10911         clear out generic_type_instances at the end.
10912         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
10913         (dwarf2out_early_finish): ... here.  Do most of
10914         gen_remaining_tmpl_value_param_die_attribute here.
10915
10916 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
10917
10918         PR tree-optimization/67283
10919         * tree-sra.c (type_consists_of_records_p): Rename to...
10920         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
10921         (completely_scalarize_record): Rename to...
10922         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
10923         (scalarize_elem): New.
10924         (analyze_all_variable_accesses): Follow renamings.
10925
10926 2015-09-18  Richard Biener  <rguenther@suse.de>
10927
10928         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
10929         in early-dwarf.
10930
10931 2015-09-18  Richard Biener  <rguenther@suse.de>
10932
10933         PR tree-optimization/66142
10934         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
10935         treat MEM[&x] and x the same.
10936         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
10937         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
10938         when we simplified sth.
10939         (vn_reference_maybe_forwprop_address): Likewise.
10940         (valueize_refs_1): When we simplified through
10941         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
10942         set valueized_anything to true.
10943         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
10944         one ref kills the other instead of just a offset-based test.
10945         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
10946         for the operand_equal_p test to compare bases and also compare
10947         sizes.
10948
10949 2015-09-17  Christian Bruel  <christian.bruel@st.com>
10950
10951         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
10952
10953 2015-09-17  Richard Henderson  <rth@redhat.com>
10954
10955         PR libstdc++/65913
10956         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
10957         pointers that encode the alignment of the object.
10958
10959 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
10960
10961         PR rtl-optimization/66790
10962         * df-problems.c (LIVE): Amend documentation.
10963
10964 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
10965
10966         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
10967         and optabs-tree.o.
10968         (GTFILES): Replace optabs.c with optabs-libfunc.c.
10969         * genopinit.c (main): Add an include guard to insn-opinit.h.
10970         Protect the rtx_code parts with NUM_RTX_CODE.
10971         * optabs.h: Split parts out to...
10972         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
10973         * optabs.c: Split parts out to...
10974         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
10975         * cilk-common.c: Include optabs-query.h rather than optabs.h.
10976         * fold-const.c: Likewise.
10977         * target-globals.c: Likewise.
10978         * tree-if-conv.c: Likewise.
10979         * tree-ssa-forwprop.c: Likewise.
10980         * tree-ssa-loop-prefetch.c: Likewise.
10981         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
10982         Remove unncessary include files.
10983         * tree-ssa-phiopt.c: Likewise.
10984         * tree-ssa-reassoc.c: Likewise.
10985         * tree-switch-conversion.c: Likewise.
10986         * tree-vect-data-refs.c: Likewise.
10987         * tree-vect-generic.c: Likewise.
10988         * tree-vect-loop.c: Likewise.
10989         * tree-vect-patterns.c: Likewise.
10990         * tree-vect-slp.c: Likewise.
10991         * tree-vect-stmts.c: Likewise.
10992         * tree-vrp.c: Likewise.
10993         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
10994         rather than optabs.h.
10995         * expr.c: Include optabs-tree.h.
10996         * function.c: Likewise.
10997
10998 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
10999
11000         PR middle-end/65958
11001         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
11002         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
11003         * config/arm/arm.c: Include common/common-target.h.
11004         (use_return_insn): Return 0 if the static chain register was saved
11005         above a non-APCS frame.
11006         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
11007         (struct scratch_reg): New.
11008         (get_scratch_register_on_entry): New function.
11009         (release_scratch_register_on_entry): Likewise.
11010         (arm_emit_probe_stack_range): Likewise.
11011         (output_probe_stack_range): Likewise.
11012         (arm_expand_prologue): Factor out code dealing with the IP register
11013         for nested function and adjust it for stack checking.
11014         Invoke arm_emit_probe_stack_range if static builtin stack checking
11015         is enabled.
11016         (thumb1_expand_prologue): Sorry out if static builtin stack checking
11017         is enabled.
11018         (arm_expand_epilogue): Add the saved static chain register, if any, to
11019         the amount of pre-pushed registers to pop.
11020         (arm_frame_pointer_required): Return true if static stack checking is
11021         enabled and we want to catch the exception with the EABI unwinder.
11022         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
11023         (UNSPEC_PROBE_STACK_RANGE): Likewise.
11024         * config/arm/arm.md (probe_stack): New insn.
11025         (probe_stack_range): Likewise.
11026
11027 2015-09-17  Richard Biener  <rguenther@suse.de>
11028
11029         * genmatch.c (parser::parse_expr): Improve error message
11030         for mis-placed flags.
11031
11032 2015-09-17  Richard Biener  <rguenther@suse.de>
11033
11034         * passes.c (rest_of_decl_compilation): Always call early_global_decl
11035         debug hook when we created a varpool node.
11036         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
11037         dwarf2out_early_global_decl, when not just add location or
11038         value attributes to existing DIEs.
11039
11040 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
11041
11042         * config/aarch64/aarch64.md (copysigndf3): New.
11043         (copysignsf3): Likewise.
11044
11045 2015-09-17  David S. Miller  <davem@davemloft.net>
11046
11047         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
11048         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
11049         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
11050         (HARD_REGNO_CALLER_SAVE_MODE): Define.
11051         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
11052         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
11053         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
11054         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
11055         provide when flag_pic.
11056
11057 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
11058
11059         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
11060         object_allocator change.
11061
11062 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
11063
11064         PR tree-optimization/66388
11065         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
11066         (dump_iv): Dump no_overflow information.
11067         (alloc_iv): Initialize new field for struct iv.
11068         (mark_bivs): Count number of no_overflow bivs.
11069         (find_deriving_biv_for_expr, record_biv_for_address_use): New
11070         functions.
11071         (idx_find_step): Call new functions above.
11072         (add_candidate_1, add_candidate): New paramter.
11073         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
11074         (get_computation_aff): Simplify convertion of cand for BIV.
11075         (get_computation_cost_at): Step cand's base if necessary.
11076
11077 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
11078
11079         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
11080         parameter.
11081         (tree_simplify_using_condition): Ditto.
11082         (simplify_using_initial_conditions): Ditto.
11083         (loop_exits_before_overflow): Pass new argument to function
11084         simplify_using_initial_conditions.  Remove case for type conversions
11085         simplification.
11086         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
11087         parameter.
11088         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
11089         in iv base using loop initial conditions.
11090
11091 2015-09-16  Jeff Law  <law@redhat.com>
11092
11093         PR tree-optimization/47679
11094         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
11095         (free_all_edge_infos): Use it.
11096         (allocate_edge_info): Free preexisting edge info data.
11097         (pass_dominator::execute): Set up initial edge info structures.
11098         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
11099         thread_across_edge.
11100         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
11101         If non-null, then push/pop markers appropriately.
11102         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
11103         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
11104         thread-across_edge.
11105
11106 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
11107
11108         * config/ft32/ft32.c: Fix the memory address space predicate.
11109
11110 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
11111
11112         PR target/67573
11113         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
11114         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
11115
11116 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11117
11118         * toplev.h (check_global_declaration): Remove declaration.
11119         * toplev.c (check_global_declaration): Move to ...
11120         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
11121         (analyze_functions): Update call.
11122
11123 2015-09-16  David S. Miller  <davem@davemloft.net>
11124
11125         * lra-constraints.c (simplify_operand_subreg): Do not assume that
11126         lowpart of a SUBREG has offset zero.
11127
11128 2015-09-16  Jeff Law  <law@redhat.com>
11129
11130         PR tree-optimization/47679
11131         * tree-ssa-dom.c (enum expr_kind): Moved from here to
11132         tree-ssa-scopedtables.h.
11133         (struct hashable_expr, class expr_hash_elt): Likewise.
11134         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
11135         Move associated methods into tree-ssa-scopedtables.c.
11136         (avail_expr_hash, initialize_expr_from_cond): Similarly.
11137         (hashable_expr_equal_p, add_expr_commutative): Likewise.
11138         (add_hashable_expr): Likewise.
11139         (record_cond): Delete element directly.
11140         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
11141         private copy ctor and assignment operator methods.
11142         (expr_elt_hasher): Inline trivial methods.
11143         (initialize_expr_from_cond): Prototype.
11144         * tree-ssa-scopedtables.c: Add necessary includes, functions and
11145         methods that were previously in tree-ssa-dom.c.  Improve various
11146         comments.
11147
11148 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
11149
11150         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
11151
11152 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
11153
11154         PR bootstrap/67587
11155         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
11156         fixup_partitions.
11157
11158 2015-09-16  Richard Biener  <rguenther@suse.de>
11159
11160         PR middle-end/67253
11161         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
11162         location of possibly shared trees.
11163
11164 2015-09-16  Richard Biener  <rguenther@suse.de>
11165
11166         PR middle-end/67271
11167         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
11168
11169 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
11170
11171         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
11172         offset and size computations instead of HOST_WIDE_INT.
11173
11174 2015-09-16  Richard Biener  <rguenther@suse.de>
11175
11176         PR middle-end/67442
11177         * fold-const.c (extract_muldiv_1): Properly extend multiplication
11178         result before builting a tree via wide_int_to_tree.
11179
11180 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
11181
11182         * Makefile.in: Add memory-block.cc
11183         (pool_allocator::initialize): Use fixed block size.
11184         (pool_allocator::release): Use memory_block_pool.
11185         (pool_allocator::allocate): Likewise.
11186         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
11187         object pools.
11188         * cfg.c (initialize_original_copy_tables): Likewise.
11189         * cselib.c (elt_list_pool, elt_loc_list_pool,
11190         cselib_val_pool): Likewise.
11191         * df-problems.c (df_chain_alloc): Likewise.
11192         * df-scan.c (df_scan_alloc): Likewise.
11193         * dse.c (cse_store_info_pool, rtx_store_info_pool,
11194         read_info_type_pool, insn_info_type_pool, bb_info_pool,
11195         group_info_pool, deferred_change_pool): Likewise.
11196         * et-forest.c (et_nodes, et_occurrences): Likewise.
11197         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
11198         ipcp_agg_lattice_pool): Likewise.
11199         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
11200         * ipa-profile.c (histogram_pool): Likewise.
11201         * ipa-prop.c (ipa_refdesc_pool): Likewise.
11202         * ira-build.c (live_range_pool, allocno_pool, object_pool,
11203         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
11204         * ira-color.c (update_cost_record_pool): Likewise.
11205         * lra-lives.c (lra_live_range_pool): Likewise.
11206         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
11207         * memory-block.cc: New file.
11208         * memory-block.h: New file.
11209         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
11210         * sched-deps.c (sched_deps_init): Likewise.
11211         * sel-sched-ir.c (sched_lists_pool): Likewise.
11212         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
11213         * tree-sra.c (access_pool): Likewise.
11214         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
11215         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
11216         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
11217         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
11218         * tree-ssa-strlen.c (strinfo_pool): Likewise.
11219         * tree-ssa-structalias.c (variable_info_pool): Likewise.
11220         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
11221         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
11222
11223 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
11224
11225         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
11226         definition.
11227         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
11228         call0 ABI.
11229
11230 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
11231
11232         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
11233         to pass TLS call argument, according to current ABI.
11234         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
11235         callx0 for TLS call, according to current ABI.
11236
11237 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11238
11239         * tree-eh.c (lower_try_finally_dup_block): Clear location information
11240         on stack restore statements.
11241         (decide_copy_try_finally): Do not consider a stack restore statement as
11242         coming from sources.
11243
11244 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
11245
11246         * config/alpha/alpha.c (alpha_expand_block_clear): Use
11247         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
11248
11249 2015-09-15  Jeff Law  <law@redhat.com>
11250
11251         PR tree-optimization/47679
11252         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
11253         methods and private members.
11254         (avail_exprs_stack): Similarly.  Change type of global
11255         from a pair of expr_hash_elt_t to the new class.
11256         (expr_elt_hasher::hash): Corresponding changes.
11257         (expr_elt_hasher::equal): Similarly.
11258         (avail_expr_hash): Similarly.
11259         (pass_dominator::execute): Similarly.
11260         (dom_opt_dom_walker::thread_across_edge): Similarly.
11261         (record_cond): Similarly.
11262         (dom_opt_dom_walker::before_dom_children): Similarly.
11263         (dom_opt_dom_walker::after_dom_children): Similarly.
11264         (lookup_avail_expr): Likewise.
11265         (initialize_hash_element): Now a expr_hash_elt constructor.
11266         (initialize_hash_element_from_expr): Similarly.
11267         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
11268         (free_expr_hash_elt): Call dtor for the element.
11269         (remove_local_expressions_from_table): Now the "pop_to_marker"
11270         method in the available_exprs_stack class.
11271         (avail_expr_stack::record_expr): Method factored out.
11272         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
11273         Fix formatting.
11274         (hashable_expr_equal_p): Fix formatting.
11275
11276 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
11277
11278         * input.h (location_get_source_line): Drop "expanded_location"
11279         param in favor of a file and line number.
11280         * input.c (location_get_source_line): Likewise.
11281         (dump_location_info): Update for change in signature of
11282         location_get_source_line.
11283         * diagnostic.c (diagnostic_print_caret_line): Likewise.
11284
11285 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11286
11287         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
11288         Bump to 4KB for SJLJ exceptions.
11289         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
11290         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
11291         * doc/tm.texi: Regenerate.
11292
11293 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11294
11295         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
11296         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
11297         Update prototype.
11298
11299 2015-09-15  Richard Biener  <rguenther@suse.de>
11300
11301         PR tree-optimization/67470
11302         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
11303         structure for PHI hoisting by inserting a forwarder block
11304         if appropriate.
11305
11306 2015-09-15  Christian Bruel  <christian.bruel@st.com>
11307
11308         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
11309         (arm_option_print): New function.
11310
11311 2015-09-15  Christian Bruel  <christian.bruel@st.com>
11312
11313         PR target/52144
11314         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
11315         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
11316         Remove flags parameter.
11317         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
11318         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
11319         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
11320         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
11321         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
11322         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
11323         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
11324         * config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
11325
11326 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
11327
11328         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
11329
11330         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
11331         AARCH64_VALID_SIMD_DREG_MODE.
11332
11333 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
11334
11335         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
11336         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
11337         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
11338         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
11339         aarch64_ld4_lane<mode>): Combine together, making...
11340         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
11341         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
11342         aarch64_st4_lane<mode>): Combine together, making...
11343         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
11344         * config/aarch64/iterators.md (nregs): Add comment.
11345
11346 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
11347
11348         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
11349         Change operand mode from <V_TWO_ELEM> to BLK.
11350         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
11351         (aarch64_vec_store_lanesoi_lane<mode): Likewise
11352         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
11353         (aarch64_ld2_lane<mode>): Likewise.
11354         (aarch64_st2_lane<VQ:mode>): Likewise.
11355         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
11356
11357 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
11358
11359         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
11360         Change operand mode from <V_FOUR_ELEM> to BLK.
11361         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
11362         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
11363         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
11364         (aarch64_ld4_lane<mode>): Likewise.
11365         (aarch64_st4_lane<mode>): Likewise.
11366         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
11367
11368 2015-09-15  Richard Biener  <rguenther@suse.de>
11369
11370         PR middle-end/67563
11371         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
11372         transfer EH info from old to new stmt.
11373         (replace_call_with_value): Likewise.
11374         (replace_call_with_call_and_fold): Likewise.
11375         (gimple_fold_builtin_memory_op): Likewise.
11376         (gimple_fold_builtin_memset): Likewise.
11377         (gimple_fold_builtin_stpcpy): Likewise.
11378         (gimple_fold_call): Likewise.
11379
11380 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
11381
11382         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
11383         comment.
11384         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
11385         (aarch64_simd_intEI_type_node): Likewise.
11386         (aarch64_simd_builtin_std_type): Remove EImode case.
11387         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
11388         * config/aarch64/aarch64-modes.def: Remove EImode.
11389
11390 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
11391
11392         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
11393         Change operand mode from <V_THREE_ELEM> to BLK.
11394         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
11395         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
11396         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
11397         (aarch64_ld3_lane<mode>): Likewise.
11398         (aarch64_st3_lane<mode>): Likewise.
11399         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
11400
11401 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
11402
11403         * config/aarch64/aarch64-simd.md
11404         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
11405         Change all TImode operands to BLKmode.
11406         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
11407         Change all EImode operands to BLKmode.
11408         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
11409         Change all OImode operands to BLKmode.
11410
11411         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
11412         and call set_mem_size.
11413         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
11414
11415         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
11416
11417 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
11418
11419         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
11420         to...
11421         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
11422
11423         (vec_store_lanesci_lane<mode>): Rename to...
11424         (aarch64_vec_store_lanesci_lane<mode>): ...this.
11425
11426         (vec_store_lanesxi_lane<mode>): Rename to...
11427         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
11428
11429         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
11430         aarch64_st4_lane<mode>): Follow renaming.
11431
11432 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11433
11434         * config/s390/s390.c (s390_const_operand_ok): Add missing
11435         brackets.
11436
11437 2015-09-15  Richard Biener  <rguenther@suse.de>
11438
11439         PR lto/67568
11440         * lto-streamer.h (lto_location_cache::current_sysp): Properly
11441         initialize.
11442         * lto-streamer-out.c (clear_line_info): Likewise.
11443
11444 2015-09-15  Richard Biener  <rguenther@suse.de>
11445
11446         * doc/match-and-simplify.texi: Fix wording.
11447
11448 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
11449
11450         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
11451         unnecessary type conversion in op1.
11452
11453 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
11454
11455         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
11456         (dup_block_and_redirect): Delete function.
11457         (can_dup_for_shrink_wrapping): New function.
11458         (fix_fake_fallthrough_edge): New function.
11459         (try_shrink_wrapping): Rewrite function.
11460         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
11461
11462 2015-09-14  Rich Felker  <dalias@libc.org>
11463
11464         * configure.ac: Change target pattern for sh TLS support
11465         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
11466         * configure: Regenerate.
11467
11468 2015-09-14  Jeff Law  <law@redhat.com>
11469
11470         PR tree-optimization/47679
11471         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
11472         type rather than void *.
11473
11474 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11475
11476         PR fortran/67460
11477         * diagnostic.c (diagnostic_initialize): Do not set
11478         some_warnings_are_errors.
11479         (diagnostic_finish): Use DK_WERROR count instead.
11480         (diagnostic_report_diagnostic): Do not set
11481         some_warnings_are_errors.
11482         * diagnostic.h (struct diagnostic_context): Remove
11483         some_warnings_are_errors.
11484
11485 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
11486
11487         * config/sparc/predicates.md (const_all_ones_operand): Use
11488         CONSTM1_RTX to simplify definition.
11489
11490 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
11491
11492         PR target/67061
11493         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
11494         Handle call insns.
11495
11496 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
11497
11498         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
11499         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
11500         OPT_fshow_column to handled saved option cases.
11501         (append_compiler_options): Do not skip the above added options.
11502
11503 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11504
11505         PR target/63304
11506         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
11507         nopcrelative_literal_loads.
11508         (aarch64_classify_address): Likewise.
11509         (aarch64_constant_pool_reload_icode): Define.
11510         (aarch64_secondary_reload): Handle secondary reloads for
11511         literal pools.
11512         (aarch64_override_options): Handle nopcrelative_literal_loads.
11513         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
11514         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
11515         Define.
11516         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
11517         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
11518         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
11519         predicate.
11520         * doc/invoke.texi (mpc-relative-literal-loads): Document.
11521
11522 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
11523
11524         PR middle-end/67401
11525         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
11526         sync_compare_and_swap_optab libcall to target_oval.
11527
11528 2015-09-14  Marek Polacek  <polacek@redhat.com>
11529
11530         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
11531         value.
11532         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
11533
11534 2015-09-11  Mark Wielaard  <mjw@redhat.com>
11535
11536         PR c/28901
11537         * toplev.c (check_global_declaration): Check and use
11538         warn_unused_const_variable.
11539         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
11540         (-Wunused-variable): Remove non-constant. For C implies
11541         -Wunused-const-variable.
11542         (-Wunused-const-variable): New.
11543
11544 2015-09-14  Richard Biener  <rguenther@suse.de>
11545
11546         * doc/match-and-simplify.texi: Update for changed syntax
11547         of inner ifs and the new switch expression.
11548
11549 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
11550
11551         * config/i386/haswell.md: New file describing Haswell pipeline.
11552         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
11553         haswell-like processors.
11554         (ix86_reassociation_width): Increase reassociation width for 64-bit
11555         Haswell processor family.
11556         * config/i386/i386.md: Introduce haswell cpu and include new md file.
11557
11558 2015-09-14  Richard Biener  <rguenther@suse.de>
11559
11560         * doc/match-and-simplify.texi: Fixup some formatting issues
11561         and document the 's' flag.
11562
11563 2015-09-13  Olivier Hainque  <hainque@adacore.com>
11564             Eric Botcazou  <ebotcazou@adacore.com>
11565
11566         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
11567         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
11568         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
11569         (TARGET_CPU_gr5): Likewise.
11570         (TARGET_CPU_gr6): Likewise.
11571         (MULTILIB_DEFAULTS): Likewise.
11572         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
11573         for mcpu=gr5 and mcpu=gr6.
11574         (MULTILIB_DIRNAMES): Adjust accordingly.
11575
11576 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11577
11578         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
11579         (mem_ref_p): Likewise.
11580         (outermost_indep_loop): Adjust.
11581         (mem_ref_in_stmt): Likewise.
11582         (determine_max_movement): Likewise.
11583         (mem_ref_alloc): Likewise.
11584         (record_mem_ref_loc): Likewise.
11585         (set_ref_stored_in_loop): Likewise.
11586         (mark_ref_stored): Likewise.
11587         (gather_mem_refs_stmt): Likewise.
11588         (mem_refs_may_alias_p): Likewise.
11589         (for_all_locs_in_loop): Likewise.
11590         (struct rewrite_mem_ref_loc): Likewise.
11591         (rewrite_mem_refs): Likewise.
11592         (struct first_mem_ref_loc_1): Likewise.
11593         (first_mem_ref_loc): Likewise.
11594         (struct sm_set_flag_if_changed): Likewise.
11595         (execute_sm_if_changed_flag_set): Likewise.
11596         (execute_sm): Likewise.
11597         (hoist_memory_references):
11598         (struct ref_always_accessed): Likewise.
11599         (ref_always_accessed_p): Likewise.
11600         (refs_independent_p): Likewise.
11601         (record_dep_loop): Likewise.
11602         (ref_indep_loop_p_1): Likewise.
11603         (ref_indep_loop_p_2): Likewise.
11604         (ref_indep_loop_p): Likewise.
11605         (can_sm_ref_p): Likewise.
11606         (find_refs_for_sm): Likewise.
11607         (tree_ssa_lim_finalize): Likewise.
11608
11609 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11610
11611         * dwarf2out.c (dw_attr_ref): Remove typedef.
11612         (dw_line_info_ref): Likewise.
11613         (pubname_ref): Likewise.
11614         (dw_ranges_ref): Likewise.
11615         (dw_ranges_by_label_ref): Likewise.
11616         (comdat_type_node_ref): Likewise.
11617         (get_AT): Adjust.
11618         (get_AT_low_pc): Likewise.
11619         (get_AT_hi_pc): Likewise.
11620         (get_AT_string): Likewise.
11621         (get_AT_flag): Likewise.
11622         (get_AT_unsigned): Likewise.
11623         (get_AT_ref): Likewise.
11624         (get_AT_file): Likewise.
11625         (remove_AT): Likewise.
11626         (print_die): Likewise.
11627         (check_die): Likewise.
11628         (die_checksum): Likewise.
11629         (attr_checksum_ordered): Likewise.
11630         (struct checksum_attributes): Likewise.
11631         (collect_checksum_attributes): Likewise.
11632         (die_checksum_ordered): Likewise.
11633         (same_die_p): Likewise.
11634         (is_declaration_die): Likewise.
11635         (clone_die): Likewise.
11636         (clone_as_declaration): Likewise.
11637         (copy_declaration_context): Likewise.
11638         (break_out_comdat_types): Likewise.
11639         (copy_decls_walk): Likewise.
11640         (output_location_lists): Likewise.
11641         (external_ref_hasher::hash): Likewise.
11642         (optimize_external_refs_1): Likewise.
11643         (build_abbrev_table): Likewise.
11644         (size_of_die): Likewise.
11645         (unmark_all_dies): Likewise.
11646         (size_of_pubnames): Likewise.
11647         (output_die_abbrevs): Likewise.
11648         (output_die): Likewise.
11649         (output_pubnames): Likewise.
11650         (add_ranges_num): Likewise.
11651         (add_ranges_by_labels): Likewise.
11652         (add_high_low_attributes): Likewise.
11653         (gen_producer_string): Likewise.
11654         (dwarf2out_set_name): Likewise.
11655         (new_line_info_table): Likewise.
11656         (prune_unused_types_walk_attribs): Likewise.
11657         (prune_unused_types_update_strings): Likewise.
11658         (prune_unused_types): Likewise.
11659         (resolve_addr): Likewise.
11660         (optimize_location_lists_1): Likewise.
11661         (index_location_lists): Likewise.
11662         (dwarf2out_finish): Likewise.
11663
11664 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11665
11666         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
11667
11668 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11669
11670         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
11671         (dump_asserts_for): Adjust.
11672         (register_new_assert_for): Likewise.
11673         (process_assert_insertions): Likewise.
11674         (insert_range_assertions): Likewise.
11675
11676 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11677
11678         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
11679         and remove typedef.
11680         (new_temp_expr_table): Adjust.
11681         (free_temp_expr_table): Likewise.
11682         (version_to_be_replaced_p): Likewise.
11683         (make_dependent_on_partition): Likewise.
11684         (add_to_partition_kill_list): Likewise.
11685         (remove_from_partition_kill_list): Likewise.
11686         (add_dependence): Likewise.
11687         (finished_with_expr): Likewise.
11688         (process_replaceable): Likewise.
11689         (kill_expr): Likewise.
11690         (kill_virtual_exprs): Likewise.
11691         (mark_replaceable): Likewise.
11692         (find_replaceable_in_bb): Likewise.
11693         (find_replaceable_exprs): Likewise.
11694         (debug_ter): Likewise.
11695
11696 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11697
11698         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
11699         (struct btr_user): Rename from btr_user_s.
11700         (struct btr_def): Rename from btr_def_s.
11701         (find_btr_def_group): Adjust.
11702         (add_btr_def): Likewise.
11703         (new_btr_user): Likewise.
11704         (note_other_use_this_block): Likewise.
11705         (compute_defs_uses_and_gen): Likewise.
11706         (link_btr_uses): Likewise.
11707         (build_btr_def_use_webs): Likewise.
11708         (block_at_edge_of_live_range_p): Likewise.
11709         (btr_def_live_range): Likewise.
11710         (combine_btr_defs): Likewise.
11711         (move_btr_def): Likewise.
11712         (migrate_btr_def): Likewise.
11713         (migrate_btr_defs): Likewise.
11714
11715 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11716
11717         * var-tracking.c (shared_hash_def): Rename to shared_hash.
11718         (shared_hash): Remove typedef.
11719         (struct dataflow_set): Adjust.
11720         (shared_hash_unshare): Likewise.
11721         (dataflow_set_merge): Likewise.
11722         (vt_initialize): Likewise.
11723         (vt_finalize): Likewise.
11724
11725 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11726
11727         * var-tracking.c (struct location_chain): Rename from
11728         location_chain_def.
11729         (struct variable_part): Adjust.
11730         (variable_htab_free): Likewise.
11731         (unshare_variable): Likewise.
11732         (get_init_value): Likewise.
11733         (get_addr_from_local_cache): Likewise.
11734         (drop_overlapping_mem_locs): Likewise.
11735         (val_reset): Likewise.
11736         (struct variable_union_info): Likewise.
11737         (variable_union): Likewise.
11738         (find_loc_in_1pdv): Likewise.
11739         (insert_into_intersection): Likewise.
11740         (intersect_loc_chains): Likewise.
11741         (canonicalize_loc_order_check): Likewise.
11742         (canonicalize_values_mark): Likewise.
11743         (canonicalize_values_star): Likewise.
11744         (canonicalize_vars_star): Likewise.
11745         (variable_merge_over_cur): Likewise.
11746         (remove_duplicate_values): Likewise.
11747         (variable_post_merge_new_vals): Likewise.
11748         (variable_post_merge_perm_vals): Likewise.
11749         (find_mem_expr_in_1pdv): Likewise.
11750         (dataflow_set_preserve_mem_locs): Likewise.
11751         (dataflow_set_remove_mem_locs): Likewise.
11752         (variable_part_different_p): Likewise.
11753         (onepart_variable_different_p): Likewise.
11754         (find_src_set_src): Likewise.
11755         (dump_var): Likewise.
11756         (set_slot_part): Likewise.
11757         (clobber_slot_part): Likewise.
11758         (delete_slot_part): Likewise.
11759         (vt_expand_var_loc_chain): Likewise.
11760         (emit_note_insn_var_location): Likewise.
11761         (vt_finalize): Likewise.
11762
11763 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11764
11765         * dse.c (store_info_t): Remove typedef.
11766         (group_info_t): Likewise.
11767         (const_group_info_t): Likewise.
11768         (deferred_change_t): Likewise.
11769         (get_group_info): Adjust.
11770         (free_store_info): Likewise.
11771         (canon_address): Likewise.
11772         (clear_rhs_from_active_local_stores): Likewise.
11773         (record_store): Likewise.
11774         (replace_read): Likewise.
11775         (check_mem_read_rtx): Likewise.
11776         (scan_insn): Likewise.
11777         (remove_useless_values): Likewise.
11778         (dse_step1): Likewise.
11779         (dse_step2_init): Likewise.
11780         (dse_step2_nospill): Likewise.
11781         (scan_stores_nospill): Likewise.
11782         (scan_reads_nospill): Likewise.
11783         (dse_step3_exit_block_scan): Likewise.
11784         (dse_step3): Likewise.
11785         (dse_step5_nospill): Likewise.
11786         (dse_step6): Likewise.
11787
11788 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11789
11790         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
11791         (alias_set_entry): Remove typedef.
11792         (alias_set_subset_of): Adjust.
11793         (alias_sets_conflict_p): Likewise.
11794         (init_alias_set_entry): Likewise.
11795         (get_alias_set): Likewise.
11796         (new_alias_set): Likewise.
11797         (record_alias_subset): Likewise.
11798
11799 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
11800
11801         * doc/install.texi (Downloading the source): Mark up
11802         contrib/download_prerequisites properly and drop leading "./".
11803
11804 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11805
11806         * config/arc/arc.h: Remove define of STRUCT_VALUE.
11807         * config/lm32/lm32.h: Likewise.
11808         * config/mep/mep.h: Likewise.
11809         * config/visium/visium.h: Likewise.
11810         * system.h: Poison STRUCT_VALUE macro.
11811
11812 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
11813
11814         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
11815         CONSTANT_P operands.
11816
11817 2015-09-11  David S. Miller  <davem@davemloft.net>
11818
11819         * config/sparc/constraints.md: Make "U" constraint a real register
11820         constraint.
11821         * config/sparc/sparc.c (TARGET_LRA_P): Define.
11822         (D_MODES, DF_MODES): Add missing cast.
11823         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
11824         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
11825         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
11826         cost to 8.
11827         * config/sparc/sparc.h (PROMOTE_MODE): Define.
11828         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
11829         provide these insn when flag_pic.
11830
11831 2015-09-11  Jeff Law  <law@redhat.com>
11832
11833         PR tree-optimization/47679
11834         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
11835         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
11836         member with m_.  Update inline member functions as necessary.  Add
11837         toplevel comment.
11838         * tree-ssa-scopedtables.c: Update const_and_copies's member
11839         functions to use m_ prefix to access the stack.
11840
11841 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
11842
11843         * graphite-optimize-isl.c (disable_tiling): Remove.
11844         (get_schedule_for_band): Do not use disable_tiling.
11845         (get_prevector_map): Delete function.
11846         (enable_polly_vector): Remove.
11847         (get_schedule_for_band_list): Remove dead code.
11848
11849 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
11850
11851         * graphite-optimize-isl.c (get_tile_map): Refactor.
11852         (get_schedule_for_band): Same.
11853         (getScheduleForBand): Same.
11854         (get_prevector_map): Same.
11855         (get_schedule_for_band_list): Same.
11856         (get_schedule_map): Same.
11857         (get_single_map): Same.
11858         (apply_schedule_map_to_scop): Same.
11859         (optimize_isl): Same.
11860
11861 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11862
11863         PR target/63304
11864         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
11865         (movtf): Delete.
11866         * config/aarch64/iterators.md (GPF_TF_F16): New.
11867         (GPF_F16): Delete.
11868
11869 2015-09-10  Nathan Sidwell  <nathan@acm.org>
11870
11871         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
11872         (nvptx_reorg): Adjust comments.
11873
11874 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
11875
11876         PR bootstrap/67363
11877         * configure.ac: Check if setenv and unsetenv are declared.
11878         * configure: Rebuild.
11879         * config.in: Rebuild.
11880         * system.h: Declare setenv and unsetenv if not declared.
11881
11882 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11883
11884         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
11885         commentary to simplify permute mask adjustment equation.
11886         (special_handling_values): Add SH_VPERM.
11887         (const_load_sequence_p): New function.
11888         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
11889         the mask loaded from the constant pool.
11890         (adjust_vperm): New function.
11891         (handle_special_swappables): Call adjust_vperm.
11892         (dump_swap_insn_table): Handle SH_VPERM.
11893
11894 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
11895
11896         * shrink-wrap.c (requires_stack_frame_p): Remove static.
11897         * shrink-wrap.h (requires_stack_frame_p): Put back.
11898
11899 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
11900
11901         * reload1.c (elimination_costs_in_insn): Locally turn
11902         -Wmaybe-uninitialized into a warning.
11903
11904 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
11905
11906         * shrink-wrap.c (requires_stack_frame_p): Make static.
11907         (prepare_shrink_wrap): Likewise.
11908         (dup_block_and_redirect): Likewise.
11909         * shrink-wrap.h: Remove declarations of those functions.
11910
11911 2015-09-10  Mark Wielaard  <mjw@redhat.com>
11912
11913         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
11914
11915 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
11916
11917         PR target/67506
11918         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
11919         missing simplify_gen_subreg.
11920
11921 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11922
11923         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
11924         the vector element is bigger than 64 bit.
11925
11926 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11927
11928         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
11929         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
11930
11931 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11932
11933         * config/s390/s390.c: Add V1TImode to constant pool modes.
11934
11935 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11936
11937         PR target/67439
11938         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
11939         predicate.  Set predicable_short_it attr to "no".
11940
11941 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
11942
11943         PR rtl-optimization/67421
11944         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
11945         left wide shift tranformation.
11946
11947 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
11948
11949         * common/config/arc/arc-common.c: Remove references to A5.
11950         * config/arc/arc-opts.h: Likewise.
11951         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
11952         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
11953         * config/arc/t-arc-newlib: Likewise.
11954
11955 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
11956
11957         * config/arc/arc.md (length): Fix attribute length for conditional
11958         executed instructions with long immediate.
11959
11960 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11961
11962         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
11963         type for second alternative.
11964
11965 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
11966
11967         * doc/invoke.texi (Downloading GCC): Mention
11968         contrib/download_prerequisites script.
11969
11970 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
11971
11972         PR c++/67523
11973         * gimplify.c (gimplify_omp_for): If inner stmt is not found
11974         for combined loop, assert seen_error () and return GS_ERROR.
11975
11976         PR middle-end/67521
11977         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
11978         if decl is already in outer->variables.
11979
11980         PR middle-end/67517
11981         * gimplify.c (gimplify_scan_omp_clauses): Instead of
11982         asserting that decl is not specified in octx->variables,
11983         break out of the loop if it is.
11984
11985         PR c++/67514
11986         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
11987         iterator is not explicitly determined, but is defined inside
11988         of the combined workshare region, handle it like if it has
11989         DECL_EXPR in OMP_FOR_PRE_BODY.
11990
11991 2015-09-09  Nathan Sidwell  <nathan@acm.org>
11992
11993         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
11994         (*cmp<mode>): Add assembler spacing.
11995         (setcc_int<mode>, set_cc_float<mode>): Likewise.
11996         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
11997         level.
11998         (write_func_decl_from_insn): Refactor argument loops & comma emission.
11999         (nvptx_expand_call): Likewise.
12000         (nvptx_output_call_insn): Likewise.
12001         (nvptx_reorg_subreg): Add spacing.
12002
12003 2015-09-09  Marek Polacek  <polacek@redhat.com>
12004
12005         PR middle-end/67512
12006         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
12007         for comparisons.
12008
12009 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
12010
12011         PR c++/53184
12012         * doc/invoke.texi ([Wsubobject-linkage]): Document.
12013
12014 2015-09-09  Tom de Vries  <tom@codesourcery.com>
12015
12016         * params-list.h: Add missing copyright notice.
12017
12018 2015-09-09  Nathan Sidwell  <nathan@acm.org>
12019
12020         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
12021         sel_truesi, not andsi.
12022
12023 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12024
12025         * config/arm/arm.md (*subsi3_compare0): Rename to...
12026         (subsi3_compare0): ... This.
12027         (modsi3): New define_expand.
12028         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
12029         when operand is power of 2.
12030
12031 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12032
12033         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
12034         (*neg<mode>2_compare0): Rename to...
12035         (neg<mode>2_compare0): ... This.
12036         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
12037         Move check for speed inside the if-then-elses.  Reflect
12038         CSNEG sequence in MOD by power of 2 case.
12039
12040 2015-09-09  Alan Modra  <amodra@gmail.com>
12041
12042         PR target/67378
12043         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
12044         reload replacement for PRE_MODIFY address reg.
12045
12046 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
12047
12048         PR tree-optimization/53852
12049         * config.in: Regenerate.
12050         * configure: Regenerate.
12051         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
12052         * graphite-optimize-isl.c (optimize_isl): Stop computation when
12053         PARAM_MAX_ISL_OPERATIONS is reached.
12054         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
12055         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
12056         result equal to isl_stat_ok as the status now can be isl_error_quota.
12057         (subtract_commutative_associative_deps): Same.
12058         (compute_deps): Same.
12059
12060 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
12061             Sebastian Pop  <s.pop@samsung.com>
12062
12063         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
12064         Return the parameter if it was saved in corresponding
12065         parameter_rename_map of the region.
12066         (copy_def): Copy def from sese region to the newly created region.
12067         (copy_internal_parameters): Copy all the internal parameters defined
12068         within a region to the newly created region.
12069         (graphite_regenerate_ast_isl): Copy parameters to the new region before
12070         translating isl to gimple.
12071         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
12072         the loop-nest does not have any data-references.
12073         (build_graphite_scops): Create a scop only when there is at least one
12074         loop inside it.
12075         (contains_only_close_phi_nodes): Deleted.
12076         (print_graphite_scop_statistics): Deleted
12077         (print_graphite_statistics): Deleted
12078         (limit_scops): Deleted.
12079         (build_scops): Removed call to limit_scops.
12080         * sese.c (new_sese): Construct.
12081         (free_sese): Destruct.
12082         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
12083         added.
12084         (set_rename): Pass sese region so that parameters inside the region can
12085         be added to its parameter_rename_map.
12086         (rename_uses): Pass sese region.
12087         (graphite_copy_stmts_from_block): Do not copy parameters that have been
12088         generated in the header of the scop. For each SSA_NAME in the
12089         parameter_rename_map rename its usage.
12090         (invariant_in_sese_p_rec): Return false if tree t is defined outside
12091         sese region.
12092         (scalar_evolution_in_region): If the tree t is invariant just return t.
12093         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
12094         struct sese to keep track of all the parameters which need renaming.
12095         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
12096         any data-refs.
12097         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
12098
12099 2015-09-08  Tom de Vries  <tom@codesourcery.com>
12100
12101         * Makefile.in (generated_files): Add params.list.
12102         (params.list, s-params.list): Add rule.
12103         * params.h (enum compiler_param): Include params-list.h.  Move define
12104         DEFPARAM, include params.def and undef DEFPARAM ...
12105         * params-list.h: ... here.  New file.
12106
12107 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
12108
12109         * pretty-print.h (printer_fn): Fix typo in comment.
12110
12111 2015-09-07  Jeff Law  <law@redhat.com>
12112
12113         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
12114
12115 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
12116
12117         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
12118         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
12119         (arm_neon_fp16_hw): New.
12120
12121 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
12122
12123         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
12124         UNITS_PER_WORD >= 4.
12125
12126 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
12127
12128         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
12129         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
12130         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
12131         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
12132         (aarch64_float_extend_lo_v2df): Rename to...
12133         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
12134
12135         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
12136         (float_extend_lo): Add v4sf.
12137
12138         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
12139         * config/aarch64/iterators.md (VQ_HSF): New iterator.
12140         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
12141         (Vwide): New mode_attr.
12142
12143 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
12144
12145         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
12146         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
12147         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
12148         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
12149         V4HF and V8HF variants to iterator.
12150
12151         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
12152
12153         * config/aarch64/iterators.md (VDQF_F16): New.
12154         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
12155
12156 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
12157
12158         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
12159         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
12160         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
12161         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
12162         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
12163         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
12164         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
12165         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
12166         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
12167         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
12168         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
12169         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
12170         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
12171         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
12172         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
12173         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
12174         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
12175         vld1q_dup_f16): New.
12176
12177 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
12178
12179         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
12180         Reparameterize to...
12181         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
12182         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
12183         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
12184
12185         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
12186         v8hf variant.
12187         (float_truncate_lo_): Use BUILTIN_VDF iterator.
12188
12189         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
12190
12191         * config/aarch64/iterators.md (VDF, Vdtype): New.
12192         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
12193
12194 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
12195
12196         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
12197         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
12198         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
12199         Add __builtin_aarch64_simd_hf.
12200         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
12201         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
12202         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
12203         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
12204         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
12205         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
12206         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
12207         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
12208         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
12209
12210         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
12211         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
12212         (VDC, Vdbl): Add V4HF.
12213
12214 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
12215
12216         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
12217         V4HFmode and V8HFmode.
12218         (aarch64_split_simd_move): Add case for V8HFmode.
12219         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
12220         (aarch64_simd_builtin_std_type): Handle HFmode.
12221         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
12222
12223         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
12224         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
12225         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
12226
12227         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
12228         Float16x8_t.
12229
12230         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
12231         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
12232         New typedefs.
12233         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
12234         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
12235         vst1q_lane_f16): New.
12236         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
12237         (VALLDI_F16, VALL_F16): New.
12238         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
12239         Add cases for V4HF and V8HF.
12240         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
12241
12242 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
12243
12244         * config/arm/arm-builtins.c (VAR11, VAR12): New.
12245         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
12246         vld4_dup): Add v4hf variant.
12247         (vget_high, vget_low): Add v8hf variant.
12248         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
12249         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
12250         v4hf and v8hf variants.
12251
12252         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
12253         (VDX): Add V4HF.
12254         (V_DOUBLE): Add case for V4HF.
12255         (VQX): Add V8HF.
12256         (V_HALF): Add case for V8HF.
12257         (VDQX): Add V4HF, V8HF.
12258         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
12259         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
12260
12261         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
12262         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
12263         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
12264         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
12265         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
12266         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
12267         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
12268         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
12269         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
12270
12271         (neon_vcreate, neon_vreinterpretv8qi<mode>,
12272         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
12273         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
12274         Change VDX to VD_RE.
12275
12276         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
12277         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
12278         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
12279
12280         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
12281         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
12282         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
12283         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
12284         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
12285         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
12286         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
12287         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
12288         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
12289
12290 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
12291
12292         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
12293         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
12294         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
12295         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
12296         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
12297         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
12298         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
12299         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
12300         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
12301         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
12302         New.
12303
12304 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
12305
12306         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
12307
12308         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
12309
12310         * config/arm/arm-builtins.c (v8hf_UP): New.
12311         (arm_init_simd_builtin_types): Initialise Float16x8_t.
12312
12313         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
12314
12315         * config/arm/arm_neon.h (float16x8_t): New typedef.
12316
12317 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
12318
12319         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
12320         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
12321         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
12322         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
12323         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
12324         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
12325         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
12326         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
12327         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
12328         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
12329
12330 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
12331
12332         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
12333         non-alphanumeric characters in the symbol name.
12334
12335 2015-09-07  Marek Polacek  <polacek@redhat.com>
12336
12337         PR inline-asm/67448
12338         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
12339         a memory input.
12340
12341 2015-09-07  Marek Polacek  <polacek@redhat.com>
12342
12343         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
12344
12345 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
12346
12347         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
12348         not warn.
12349
12350 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
12351
12352         PR middle-end/67452
12353         * tree-ssa-live.c: Include cfgloop.h.
12354         (remove_unused_locals): Clear loop->simduid if simduid is about
12355         to be removed from cfun->local_decls.
12356
12357 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
12358
12359         PR target/65210
12360         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
12361         attribute as well.
12362
12363 2015-09-04  Tom de Vries  <tom@codesourcery.com>
12364
12365         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
12366
12367 2015-09-04  Jeff Law  <law@redhat.com>
12368
12369         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
12370         unnecessary constructor.  It's now trivial and implemented inside...
12371         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
12372         constructor.  Add comments to various methods.  Remove unused
12373         private fields.
12374         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
12375         * tree-vrp.c (identify_jump_threads): Likewise.
12376         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
12377         indentation issues.
12378         (thread_across_edge): Similarly.
12379         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
12380         arguments in constructor call.
12381
12382 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
12383
12384         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
12385         temp path contains a '-'.
12386
12387 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
12388             Petr Murzin  <petr.murzin@intel.com>
12389             Kirill Yukhin  <kirill.yukhin@intel.com>
12390
12391         * config/i386/i386-builtin-types.def
12392         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
12393         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
12394         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
12395         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
12396         * config/i386/i386.c
12397         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
12398         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
12399         IX86_BUILTIN_SCATTERALTDIV16SI.
12400         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
12401         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
12402         __builtin_ia32_scatteraltdiv8si.
12403         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
12404         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
12405         IX86_BUILTIN_SCATTERALTDIV16SI.
12406         (ix86_vectorize_builtin_scatter): New.
12407         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
12408         ix86_vectorize_builtin_scatter.
12409
12410 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
12411             Petr Murzin  <petr.murzin@intel.com>
12412             Kirill Yukhin  <kirill.yukhin@intel.com>
12413
12414         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
12415         * doc/tm.texi: Regenerate.
12416         * target.def: Add scatter builtin.
12417         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
12418         for loads/stores in case of gather/scatter accordingly.
12419         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
12420         STMT_VINFO_GATHER_P(S).
12421         (vect_check_gather): Rename to ...
12422         (vect_check_gather_scatter): this.
12423         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
12424         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
12425         (vect_check_gather_scatter): Use it instead of vect_check_gather.
12426         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
12427         variable and new checkings for it accordingly.
12428         * tree-vect-stmts.c
12429         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
12430         STMT_VINFO_GATHER_P(S).
12431         (vect_check_gather_scatter): Use it instead of vect_check_gather.
12432         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
12433
12434 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
12435
12436         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
12437         define_insn.
12438         (mulv16qi3): New define_expand.
12439
12440 2015-09-03  Martin Sebor  <msebor@redhat.com>
12441
12442         PR c/66516
12443         * doc/extend.texi (Other Builtins): Document when the address
12444         of a built-in function can be taken.
12445
12446 2015-09-03  Richard Biener  <rguenther@suse.de>
12447
12448         * dwarf2out.c (flush_limbo_die_list): Split out from ...
12449         (dwarf2out_early_finish): ... here.
12450         (dwarf2out_finish): Do not call dwarf2out_early_finish but
12451         flush_limbo_die_list.  Assert we have no deferred asm names.
12452
12453 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12454
12455         * optabs.c (expand_binop): Don't create a broadcast vector with a
12456         source element wider than the inner mode.
12457
12458 2015-09-03  Richard Biener  <rguenther@suse.de>
12459
12460         * varasm.c (output_constant): Use fold_convert instead of
12461         wide_int_to_tree.
12462
12463 2015-09-03  Tom de Vries  <tom@codesourcery.com>
12464
12465         PR tree-optimization/65637
12466         * omp-low.c (expand_omp_for_static_chunk): Handle case that
12467         fin_bb has 2 predecessors.
12468
12469 2015-09-03  Tom de Vries  <tom@codesourcery.com>
12470
12471         PR tree-optimization/65637
12472         * omp-low.c (find_phi_with_arg_on_edge): New function.
12473         (expand_omp_for_static_chunk): Fix inner loop phi.
12474
12475 2015-09-03  Tom de Vries  <tom@codesourcery.com>
12476
12477         PR tree-optimization/65637
12478         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
12479         that head is NULL.
12480
12481 2015-09-03  Tom de Vries  <tom@codesourcery.com>
12482
12483         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
12484
12485 2015-09-03  Tom de Vries  <tom@codesourcery.com>
12486
12487         * doc/invoke.texi (parloops-chunk-size): Add item.
12488         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
12489         * tree-parloops.c: Include params.h.
12490         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
12491         param parloops-chunk-size is used.
12492
12493 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
12494
12495         PR middle-end/67351
12496         * fold-const.c (fold_binary_loc) : Move
12497         Transform (x >> c) << c into x & (-1<<c) or
12498         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
12499         types using simplify and match.
12500         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
12501         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
12502
12503 2015-09-03  Richard Biener  <rguenther@suse.de>
12504
12505         PR ipa/66705
12506         * tree-ssa-structalias.c (ctor_for_analysis): New function.
12507         (create_variable_info_for_1): Use ctor_for_analysis instead
12508         of get_constructor.
12509         (create_variable_info_for): Likewise.
12510
12511 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
12512
12513         PR ipa/67280
12514         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
12515         in new callgraph edge.
12516
12517 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
12518
12519         PR target/59810
12520         PR target/63652
12521         PR target/63653
12522         * config/aarch64/aarch64-simd.md
12523         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
12524         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
12525         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
12526         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
12527
12528 2015-09-02  Alan Modra  <amodra@gmail.com>
12529
12530         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
12531         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
12532         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
12533
12534 2015-09-02  Alan Modra  <amodra@gmail.com>
12535
12536         PR target/67417
12537         * config/rs6000/predicates.md (current_file_function_operand): Don't
12538         return true for weak symbols.
12539         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
12540
12541 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
12542             Andrew Bennett  <andrew.bennett@imgtec.com>
12543
12544         * config/mips/mips-opts.h (mips_cb_setting): New enum.
12545         * config/mips/mips-protos.h: Add definitions for
12546         mips_output_jump and mips_output_equal_conditional_branch
12547         * config/mips/mips.c (MIPS_JR): Change to support the
12548         JIC instruction.
12549         (mips_emit_compare): Add support for the MIPS R6 conditional
12550         compact branches.
12551         (mips_process_sync_loop): Likewise.
12552         (mips_output_order_conditional_branch): Likewise.
12553         (mips16_build_call_stub): Change MIPS_CALL to
12554         mips_output_jump.
12555         (mips_print_operand_punctuation): Update 's' case to only
12556         apply to micromips r2.
12557         (mips_adjust_insn_length): Add support for forbidden slot
12558         hazards.
12559         (mips_avoid_hazard): Likewise.
12560         (mips_reorg_process_insns): Likewise.
12561         (mips_output_jump): New function.
12562         (mips_output_equal_conditional_branch): Likewise.
12563         (mips_output_conditional_branch): Use jrc/bc if compact
12564         branch support is enabled.  Ensure the forbidden slots
12565         between the two branch instructions is filled with a nop.
12566         (mips_option_override): Add support to process the compact
12567         branch option and set the correct defaults.  Prevent
12568         non-explict relocs being using for MIPS R6.
12569         (mips_trampoline_init): Add compact branch support.
12570         (mips_mult_zero_zero_cost): Allow zero initialisation of
12571         accumulators with TARGET_DSP.
12572         * config/mips/mips.h (TARGET_CB_NEVER): New define.
12573         (TARGET_CB_MAYBE): New define.
12574         (TARGET_CB_ALWAYS): New define.
12575         (ISA_HAS_DELAY_SLOTS): New define.
12576         (ISA_HAS_COMPACT_BRANCHES): New define.
12577         (ISA_HAS_JRC): New define.
12578         (MIPS_BRANCH_C): New define.
12579         (MIPS_CALL): Removed.
12580         (MICROMIPS_J): Removed.
12581         * config/mips/mips.md (compact_form): New attr.
12582         (hazard): Add support for forbidden slots.
12583         (define_delay): Add support for compact branches.
12584         (*branch_order<mode>): Likewise.
12585         (*branch_order<mode>_inverted): Likewise.
12586         (*branch_equality<mode>): Likewise.
12587         (*branch_equality<mode>_inverted): Likewise.
12588         (*jump_absolute): Likewise.
12589         (*jump_pic): Likewise.
12590         (indirect_jump): Use mips_output_jump to produce assembly output.
12591         (tablejump_<mode>"): Likewise.
12592         (*<optab>"): Likewise.
12593         (<optab>_internal): Likewise.
12594         (sibcall_internal): Likewise.
12595         (sibcall_value_internal): Likewise.
12596         (sibcall_value_multiple_internal): Likewise.
12597         (call_internal): Likewise.
12598         (call_split): Likewise.
12599         (call_internal_direct): Likewise.
12600         (call_direct_split): Likewise.
12601         (call_value_internal): Likewise.
12602         (call_value_split): Likewise.
12603         (call_value_internal_direct): Likewise.
12604         (call_value_direct_split): Likewise.
12605         (call_value_multiple_internal): Likewise.
12606         (call_value_multiple_split): Likewise.
12607         (mips_get_fcsr_mips16_<mode>): Likewise.
12608         (mips_set_fcsr_mips16_<mode>): Likewise.
12609         (tls_get_tp_mips16_<mode>): Likewise.
12610         * config/mips/mips.opt: Add -mcompact-branches option.
12611         * config/mips/predicates.md (order_operator): Ensure the
12612         conditional compact branches are only used if the ISA them.
12613         * doc/invoke.texi: Document -mcompact-branches option.
12614
12615 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
12616
12617         PR target/61578
12618         * lra-lives.c (process_bb_lives): Process move pseudos with the
12619         same value for copies and preferences
12620         * lra-constraints.c (match_reload): Create match reload pseudo
12621         with the same value from single dying input pseudo.
12622
12623 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
12624
12625         PR target/67405
12626         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
12627
12628 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
12629
12630         * trans-mem.c: Add contributed-by.
12631         * trans-mem.h: Same.
12632
12633 2015-09-01  Richard Biener  <rguenther@suse.de>
12634
12635         * expr.c (expand_expr_real_1): For expanding TERed defs
12636         set the current location to that of the def if not UNKNOWN.
12637
12638 2015-09-01  David Sherwood  <david.sherwood@arm.com>
12639
12640         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
12641
12642 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12643
12644         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
12645         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
12646         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
12647         Include rtl-iter.h.
12648         (noce_simple_bbs): New function.
12649         (noce_try_move): Bail if basic blocks are not simple.
12650         (noce_try_store_flag): Likewise.
12651         (noce_try_store_flag_constants): Likewise.
12652         (noce_try_addcc): Likewise.
12653         (noce_try_store_flag_mask): Likewise.
12654         (noce_try_cmove): Likewise.
12655         (noce_try_minmax): Likewise.
12656         (noce_try_abs): Likewise.
12657         (noce_try_sign_mask): Likewise.
12658         (noce_try_bitop): Likewise.
12659         (bbs_ok_for_cmove_arith): New function.
12660         (noce_emit_all_but_last): Likewise.
12661         (noce_emit_insn): Likewise.
12662         (noce_emit_bb): Likewise.
12663         (noce_try_cmove_arith): Handle non-simple basic blocks.
12664         (insn_valid_noce_process_p): New function.
12665         (contains_mem_rtx_p): Likewise.
12666         (bb_valid_for_noce_process_p): Likewise.
12667         (noce_process_if_block): Allow non-simple basic blocks
12668         where appropriate.
12669
12670 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
12671
12672         * tree-ssa-dom.c (record_equivalences_from_phis,
12673         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
12674         (lookup_avail_expr): Likewise, and remove comment and unused temp.
12675
12676 2015-09-01  Nick Clifton  <nickc@redhat.com>
12677
12678         * config/msp430/msp430.opt (mcpu): Fix typo.
12679
12680 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12681
12682         * config/aarch64/aarch64.c (aarch64_set_current_function):
12683         Re-layout any vector parameters have non-simd layout.
12684         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
12685         Delete.
12686         (aarch64_simd_expand_args): Delete call to the above.
12687
12688 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
12689
12690         * doc/invoke.texi (asan-stack): Add space before option.
12691
12692 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
12693
12694         * tree.h (zerop): New function.
12695         * tree.c (zerop): Likewise.
12696         (element_precision): Handle expressions.
12697         * match.pd (define_predicates): Add zerop.
12698         (x <= +Inf): Fix comment.
12699         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
12700         * fold-const.c (fold_binary_loc): ... here. Remove.
12701
12702 2015-08-31  Richard Biener  <rguenther@suse.de>
12703
12704         PR middle-end/67381
12705         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
12706
12707 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
12708
12709         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
12710         (CEXPI): New operator list.
12711         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
12712         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
12713         Converted from ...
12714         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
12715
12716 2015-08-31  Tom de Vries  <tom@codesourcery.com>
12717
12718         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
12719         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
12720         parameter.
12721         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
12722         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
12723         (rewrite_into_loop_closed_ssa): ... here.
12724         (replace_uses_in_dominated_bbs): Remove function.
12725         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
12726         rewrite_into_loop_closed_ssa_1.
12727
12728 2015-08-31  Michael Matz  <matz@suse.de>
12729
12730         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
12731         enter entry and exit blocks for reverse post order.
12732
12733 2015-08-31  Richard Biener  <rguenther@suse.de>
12734
12735         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
12736         (lto_location_cache::current_sysp): Likewise.
12737         (output_block::current_sysp): Likewise.
12738         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
12739         (lto_location_cache::apply_location_cache): Properly record
12740         system header locations.
12741         (lto_location_cache::input_location): Input whether a file
12742         is a system header.
12743         * lto-streamer-out.c (lto_output_location): Stream whether a file
12744         is a system header.
12745
12746 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12747
12748         PR bootstrap/67363
12749         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
12750
12751 2015-08-31  Tom de Vries  <tom@codesourcery.com>
12752
12753         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
12754         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
12755         Improve function header comments.
12756
12757 2015-08-30  Michael Collison  <michael.collison@linaro.org>
12758
12759         PR other/67320
12760         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
12761         standard names
12762
12763 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12764
12765         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
12766         special_handling bitfield.
12767         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
12768         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
12769         that represents a general xxpermdi.
12770         (insn_is_swappable_p): Add handling for vec_concat of two
12771         doublewords, which maps to a specific xxpermdi.
12772         (adjust_xxpermdi): New function.
12773         (adjust_concat): Likewise.
12774         (handle_special_swappables): Call adjust_xxpermdi and
12775         adjust_concat.
12776         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
12777
12778 2015-08-30  Rich Felker <dalias@libc.org>
12779
12780         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
12781         case instead of sh[123456ble]-*-*.
12782
12783 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
12784
12785         * ira.c (print_unform_and_important_classes,
12786         print_translated_classes): Remove reg_class_names static array.
12787         (print_unform_and_important_classes): Rename to ...
12788         (print_uniform_and_important_classes): ... this.
12789         (ira_debug_allocno_classes): Update accordingly.
12790
12791 2015-08-29  Tom de Vries  <tom@codesourcery.com>
12792
12793         PR tree-optimization/46193
12794         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
12795         clause.
12796
12797 2015-08-28  Jeff Law  <law@redhat.com>
12798
12799         PR lto/66752
12800         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
12801         unable to find X NE 0 in the tables, return X as the simplified
12802         condition.
12803         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
12804         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
12805         to VISISTED_BBS.
12806         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
12807         after removing the control flow statement and unnecessary edges.
12808
12809 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
12810
12811         Revert:
12812         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
12813
12814         PR tree-optimization/67283
12815         * tree-sra.c (type_consists_of_records_p): Rename to...
12816         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
12817
12818         (completely_scalarize_record): Rename to...
12819         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
12820         code to:
12821         (scalarize_elem): New.
12822
12823 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
12824
12825         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
12826         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
12827         (aarch64_symbol_type): Likewise.
12828         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
12829         Likewise.
12830         (aarch64_expand_mov_immediate): Likewise.
12831         (aarch64_print_operand): Likewise.
12832         (aarch64_classify_tls_symbol): Likewise.
12833
12834 2015-08-28  Richard Biener  <rguenther@suse.de>
12835
12836         * cgraphunit.c (symbol_table::compile): Move early debug generation
12837         and finish...
12838         (symbol_table::finalize_compilation_unit): ... back here and
12839         add a !seen_error () guard.
12840
12841 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
12842
12843         * toplev.c (process_options): Do not use flag_loop_block,
12844         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
12845         flag_loop_optimize_isl.
12846
12847 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
12848
12849         * Makefile.in (OBJS): Remove graphite-blocking.o and
12850         graphite-interchange.o.
12851         * common.opt (floop-strip-mine, floop-interchange, floop-block):
12852         Alias of floop-nest-optimize.
12853         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
12854         Document as alias of -floop-nest-optimize.
12855         * graphite-blocking.c: Remove.
12856         * graphite-interchange.c: Remove.
12857         * graphite-optimize-isl.c: Include dumpfile.h.
12858         (getScheduleForBand): Add dump for tiled loops.  Use
12859         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
12860         * graphite-poly.c (scop_max_loop_depth): Remove.
12861         (print_scattering_function_1): Remove.
12862         (print_scattering_function): Remove.
12863         (print_scattering_functions): Remove.
12864         (debug_scattering_function): Remove.
12865         (debug_scattering_functions): Remove.
12866         (apply_poly_transforms): Remove use of flag_loop_block,
12867         flag_loop_strip_mine, and flag_loop_interchange.
12868         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
12869         PBB_ORIGINAL.
12870         (print_pdr_access_layout): Remove.
12871         (print_pdr): Print ISL representation.
12872         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
12873         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
12874         (free_scop): Same.
12875         (openscop_print_pbb_domain): Remove.
12876         (print_pbb): Remove call to print_scattering_function.
12877         (openscop_print_scop_context): Remove.
12878         (print_scop_context): Do not print matrices anymore.
12879         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
12880         SCOP_TRANSFORMED_SCHEDULE.
12881         (print_isl_set): Add printing of a new line.
12882         (print_isl_map): Same.
12883         (print_isl_aff): Same.
12884         (print_isl_constraint): Same.
12885         (loop_to_lst): Remove.
12886         (scop_to_lst): Remove.
12887         (lst_indent_to): Remove.
12888         (print_lst): Remove.
12889         (debug_lst): Remove.
12890         (dot_lst_1): Remove.
12891         (dot_lst): Remove.
12892         (reverse_loop_at_level): Remove.
12893         (reverse_loop_for_pbbs): Remove.
12894         * graphite-poly.h (pdr_dim_iter_domain): Remove.
12895         (pdr_nb_params): Remove.
12896         (pdr_alias_set_dim): Remove.
12897         (pdr_subscript_dim): Remove.
12898         (pdr_iterator_dim): Remove.
12899         (pdr_parameter_dim): Remove.
12900         (same_pdr_p): Remove.
12901         (struct poly_scattering): Remove.
12902         (struct poly_bb): Remove _original, _transformed, _saved.
12903         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
12904         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
12905         (PBB_NB_LOCAL_VARIABLES): Remove.
12906         (PBB_NB_SCATTERING_TRANSFORM): Remove.
12907         (schedule_to_scattering): Remove.
12908         (number_of_write_pdrs): Remove.
12909         (pbb_dim_iter_domain): Remove.
12910         (pbb_nb_params): Remove.
12911         (pbb_nb_scattering_orig): Remove.
12912         (pbb_nb_scattering_transform): Remove.
12913         (pbb_nb_dynamic_scattering_transform): Remove.
12914         (pbb_nb_local_vars): Remove.
12915         (pbb_iterator_dim): Remove.
12916         (pbb_parameter_dim): Remove.
12917         (psco_scattering_dim): Remove.
12918         (psct_scattering_dim): Remove.
12919         (psct_local_var_dim): Remove.
12920         (psco_iterator_dim): Remove.
12921         (psct_iterator_dim): Remove.
12922         (psco_parameter_dim): Remove.
12923         (psct_parameter_dim): Remove.
12924         (psct_dynamic_dim): Remove.
12925         (psct_static_dim): Remove.
12926         (psct_add_local_variable): Remove.
12927         (new_lst_loop): Remove.
12928         (new_lst_stmt): Remove.
12929         (free_lst): Remove.
12930         (copy_lst): Remove.
12931         (lst_add_loop_under_loop): Remove.
12932         (lst_depth): Remove.
12933         (lst_dewey_number): Remove.
12934         (lst_dewey_number_at_depth): Remove.
12935         (lst_pred): Remove.
12936         (lst_succ): Remove.
12937         (lst_find_pbb): Remove.
12938         (find_lst_loop): Remove.
12939         (lst_find_first_pbb): Remove.
12940         (lst_empty_p): Remove.
12941         (lst_find_last_pbb): Remove.
12942         (lst_contains_p): Remove.
12943         (lst_contains_pbb): Remove.
12944         (lst_create_nest): Remove.
12945         (lst_remove_from_sequence): Remove.
12946         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
12947         (lst_niter_for_loop): Remove.
12948         (pbb_update_scattering): Remove.
12949         (lst_update_scattering_under): Remove.
12950         (lst_update_scattering): Remove.
12951         (lst_insert_in_sequence): Remove.
12952         (lst_replace): Remove.
12953         (lst_substitute_3): Remove.
12954         (lst_distribute_lst): Remove.
12955         (lst_remove_all_before_including_pbb): Remove.
12956         (lst_remove_all_before_excluding_pbb): Remove.
12957         (struct scop): Remove original_schedule, transformed_schedule, and
12958         saved_schedule.
12959         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
12960         (SCOP_SAVED_SCHEDULE): Remove.
12961         (poly_scattering_new): Remove.
12962         (poly_scattering_free): Remove.
12963         (poly_scattering_copy): Remove.
12964         (store_scattering_pbb): Remove.
12965         (store_lst_schedule): Remove.
12966         (restore_lst_schedule): Remove.
12967         (store_scattering): Remove.
12968         (restore_scattering_pbb): Remove.
12969         (restore_scattering): Remove.
12970         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
12971         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
12972         compute the scattering polyhedron dimension from the dimension of
12973         pbb->domain.
12974         (build_scop_scattering): Update call to
12975         build_pbb_scattering_polyhedrons.
12976         (build_poly_scop): Remove call to scop_to_lst.
12977         * graphite.c (graphite_transform_loops): Add call to print_scop.
12978         (gate_graphite_transforms): Remove use of flag_loop_block,
12979         flag_loop_interchange, and flag_loop_strip_mine.
12980
12981 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
12982
12983         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
12984         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
12985         -floop-nest-optimize.
12986         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
12987         (generate_luj_sepclass): Remove.
12988         (generate_luj_options): Remove.
12989         (set_options): Remove opt_luj.
12990         (scop_to_isl_ast): Remove opt_luj.
12991         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
12992         flag_loop_unroll_jam.
12993         (getPrevectorMap_full): Remove.
12994         (getScheduleForBandList): Remove map_sepcl.
12995         (getScheduleMap): Same.
12996         (apply_schedule_map_to_scop): Remove sepcl.
12997         (optimize_isl): Same.
12998         * graphite-poly.c (apply_poly_transforms): Remove check for
12999         flag_loop_unroll_jam.
13000         (new_poly_bb): Remove map_sepclass.
13001         * graphite-poly.h (struct poly_bb): Same.
13002         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
13003         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
13004         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
13005         * toplev.c (process_options): Remove flag_loop_unroll_jam.
13006
13007 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
13008
13009         PR target/67317
13010         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
13011         (addqi3_cc): Ditto.
13012         (UNSPEC_ADD_CARRY): Remove.
13013         (addqi3_cconly_overflow): New expander.
13014         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
13015         Adjust for changed add<mode>3_carry.
13016         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
13017         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
13018         (<plusminus_insn><mode>3_carry): Remove expander.
13019         (*<plusminus_insn><mode>3_carry): Split insn pattern to
13020         add<mode>3_carry and sub<mode>3_carry.
13021         (plusminus_carry_mnemonic): Remove code attribute.
13022         (add<mode>3_carry): Canonicalize insn pattern.
13023         (*addsi3_carry_zext): Ditto.
13024         (sub<mode>3_carry): Ditto.
13025         (*subsi3_carry_zext): Ditto.
13026         (adcx<mode>3): Remove insn pattern.
13027         (addcarry<mode>): New insn pattern.
13028         (subborrow<mode>): Ditto.
13029         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
13030         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
13031         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
13032         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
13033         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
13034         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
13035         Rewrite expander to not clobber carry flag chains.
13036
13037 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
13038
13039         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
13040         instead of a rotate.
13041
13042 2015-08-27  Marek Polacek  <polacek@redhat.com>
13043
13044         PR middle-end/67005
13045         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
13046         an entry into an irreducible region.
13047
13048 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13049
13050         * configure: Regenerate.
13051
13052 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
13053
13054         PR tree-optimization/67283
13055         * tree-sra.c (type_consists_of_records_p): Rename to...
13056         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
13057
13058         (completely_scalarize_record): Rename to...
13059         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
13060         (scalarize_elem): New.
13061
13062 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
13063
13064         * tree-sra.c (completely_scalarize_var): Rename to...
13065         (create_total_scalarization_access): ... Here. Drop call to
13066         completely_scalarize_record.
13067
13068         (analyze_all_variable_accesses): Replace completely_scalarize_var
13069         with create_total_scalarization_access and completely_scalarize_record.
13070
13071 2015-08-27  Alan Modra  <amodra@gmail.com>
13072
13073         PR target/67356
13074         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
13075         for operand 1.
13076
13077 2015-08-27  Richard Biener  <rguenther@suse.de>
13078
13079         * passes.c (rest_of_decl_compilation): Guard early_global_decl
13080         call with !seen_error ().
13081         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
13082         early debug generation and finish...
13083         (symbol_table::compile): ... here to put it after a !seen_error ()
13084         guard.
13085
13086 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13087
13088         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
13089         Solaris 12+.
13090
13091 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13092             Andre Vieira  <andre.simoesdiasvieira@arm.com>
13093
13094         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
13095         (*cb<optab><mode>1): Likewise.
13096         (*tb<optab><mode>1): Likewise.
13097         (*cb<optab><mode>1): Likewise.
13098         * config/aarch64/iterators.md (inv_cb): New code attribute.
13099         (inv_tb): Likewise.
13100         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
13101         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
13102
13103 2015-08-27  Richard Biener  <rguenther@suse.de>
13104
13105         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
13106
13107 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13108
13109         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
13110         trap to fix ICE.
13111
13112 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13113
13114         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
13115         Add declaration.
13116
13117         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
13118         comment.
13119         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
13120         floating point in VSX registers.
13121         (rs6000_output_move_128bit): Always print out the set insn if we
13122         can't generate an appropriate 128-bit move.
13123         (rs6000_generate_compare): Add support for IEEE 128-bit floating
13124         point in VSX registers comparisons.
13125         (rs6000_expand_float128_convert): Likewise.
13126
13127         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
13128         predicate for only GPR hard registers.
13129
13130         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
13131         modes to iterators. Add new iterators for moving 128-bit values in
13132         scalar FPR registers and VSX registers.
13133         (FMOVE128): Likewise.
13134         (FMOVE128_FPR): Likewise.
13135         (FMOVE128_GPR): Likewise.
13136         (FMOVE128_VSX): Likewise.
13137         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
13138         in VSX registers.
13139         (IFKF): Likewise.
13140         (IBM128): Likewise.
13141         (TFIFKF): Likewise.
13142         (RELOAD): Add IEEE 128-bit floating point modes.
13143         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
13144         floating point in VSX registers modes.
13145         (signbit<mode>2, IBM128 iterator): Likewise.
13146         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
13147         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
13148         (negtf2): Likewise.
13149         (neg<mode>2, TFIFKF iterator): Likewise.
13150         (negtf2_internal): Likewise.
13151         (abstf2): Likewise.
13152         (abs<mode>2, TFIFKF iterator): Likewise.
13153         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
13154         VSX insn support for negate, absolute value, and negative absolute
13155         value.
13156         (ieee_128bit_vsx_neg<mode>2): Likewise.
13157         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
13158         (ieee_128bit_vsx_abs<mode>2): Likewise.
13159         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
13160         (ieee_128bit_vsx_nabs<mode>2): Likewise.
13161         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
13162         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
13163         floating point in VSX registers.
13164         (unpack<mode>_dm): Likewise.
13165         (unpack<mode>_nodm): Likewise.
13166         (pack<mode>): Likewise.
13167         (unpackv1ti): Likewise.
13168         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
13169         (packv1ti): Likewise.
13170         (pack<mode>, FMOVE128_VSX iterator): Likewise.
13171         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
13172         registers.
13173         (extenddftf2_internal): Likewise.
13174         (trunctfdf2): Likewise.
13175         (trunctfdf2_internal2): Likewise.
13176         (fix_trunc_helper): Likewise.
13177         (fix_trunctfdi2"): Likewise.
13178         (floatditf2): Likewise.
13179         (floatuns<mode>tf2): Likewise.
13180         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
13181         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
13182         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
13183         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
13184         (float<SDI:mode><IFKF:mode>2): Likewise.
13185         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
13186
13187 2015-08-26  Renlin Li  <renlin.li@arm.com>
13188
13189         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
13190
13191 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13192             Jiong Wang  <jiong.wang@arm.com>
13193
13194         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
13195         (tlsie_tiny_<mode>): New define_insn.
13196         (tlsie_tiny_sidi): Likewise.
13197         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
13198         SYMBOL_TINY_TLSIE.
13199         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
13200         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
13201         SYMBOL_TINY_TLSIE.
13202         (aarch64_expand_mov_immediate): Likewise.
13203         (aarch64_print_operand): Likewise.
13204         (arch64_classify_tls_symbol): Likewise.
13205
13206 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
13207
13208         * config/arm/arm-arches.def: Replace single value flags with
13209         an initializer built from ARM_FSET_MAKE_CPU1.
13210         * config/arm/arm-cores.def: Likewise.
13211         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
13212         derivation from the ARM_CORE macro definition, use the given value
13213         instead.
13214         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
13215         ARM_ARCH macro definition, use the given value instead.
13216
13217 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
13218
13219         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
13220         feature set.
13221         (struct builtin_description): Replace field mask with field
13222         features.
13223         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
13224         (IWMMXT2_BUILTIN): Likewise.
13225         (IWMMXT2_BUILTIN2): Likewise.
13226         (FP_BUILTIN): Likewise.
13227         (CRC32_BUILTIN): Likewise.
13228         (CRYPTO_BUILTIN): Likewise.
13229         (iwmmx_mbuiltin): Likewise.
13230         (iwmmx2_mbuiltin): Likewise.
13231         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
13232         struct builtin_description.
13233
13234 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
13235
13236         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
13237         (struct builtin_description): Change type of mask to unsigned
13238         long.
13239         * config/arm/arm-protos.h (insn_flags): Declare as type
13240         arm_feature_set.
13241         (tune_flags): Likewise.
13242         * config/arm/arm.c (feature_count): New.
13243         (insn_flags): Define as type arm_feature_set.
13244         (tune_flags): Likewise.
13245         (struct processors): Define field flags as type arm_feature_set.
13246         (all_cores): Update for change to struct processors.
13247         (all_architectures): Likewise.
13248         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
13249         macros.
13250         (arm_option_override_internal): Likewise.
13251         (arm_option_override): Likewise.
13252
13253 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13254             Jiong Wang  <jiong.wang@arm.com>
13255
13256         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
13257         tls size for tiny, small, large memory model.
13258         (aarch64_load_symref_appropriately): Support new symbol types.
13259         (aarch64_expand_mov_immediate): Likewise.
13260         (aarch64_print_operand): Likewise.
13261         (aarch64_classify_tls_symbol): Likewise.
13262         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
13263         (aarch64_symbol_type): Likewise.
13264         * config/aarch64/aarch64.md (tlsle): Deleted.
13265         (tlsle12_<mode>): New define_insn.
13266         (tlsle24_<mode>): Likewise.
13267         (tlsle32_<mode>): Likewise.
13268         (tlsle48_<mode>): Likewise.
13269         * doc/sourcebuild.texi (AArch64-specific attributes): Document
13270         "aarch64_tlsle32".
13271
13272 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
13273
13274         * config/arm/arm-protos.h (FL_NONE): New.
13275         (FL_ANY): New.
13276         (arm_feature_set): New.
13277         (ARM_FSET_MAKE): New.
13278         (ARM_FSET_MAKE_CPU1): New.
13279         (ARM_FSET_MAKE_CPU2): New.
13280         (ARM_FSET_CPU1): New.
13281         (ARM_FSET_CPU2): New.
13282         (ARM_FSET_EMPTY): New.
13283         (ARM_FSET_ANY): New.
13284         (ARM_FSET_HAS_CPU1): New.
13285         (ARM_FSET_HAS_CPU2): New.
13286         (ARM_FSET_HAS_CPU): New.
13287         (ARM_FSET_ADD_CPU1): New.
13288         (ARM_FSET_ADD_CPU2): New.
13289         (ARM_FSET_DEL_CPU1): New.
13290         (ARM_FSET_DEL_CPU2): New.
13291         (ARM_FSET_UNION): New.
13292         (ARM_FSET_INTER): New.
13293         (ARM_FSET_XOR): New.
13294         (ARM_FSET_EXCLUDE): New.
13295         (AFM_FSET_IS_EMPTY): New.
13296         (ARM_FSET_CPU_SUBSET): New.
13297
13298 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
13299
13300         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
13301         SYMBOL_TLSLE to SYMBOL_TLSLE24.
13302         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
13303         Likewise.
13304         (aarch64_expand_mov_immediate): Likewise.
13305         (aarch64_print_operand): Likewise.
13306         (aarch64_classify_symbol): Likewise.
13307
13308 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
13309
13310         * config/aarch64/aarch64.opt (mtls-size): New entry.
13311         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
13312         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
13313         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
13314
13315 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
13316
13317         * config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
13318         ARM_CORE entry.  Fix some white-space.
13319         * config/arm/arm.c: Remove FL_FOR_ARCH derivation from
13320         ARM_CORE definition.
13321
13322 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
13323
13324         * fold-const.c (fold_binary_loc) : Move Optimize
13325         root(x)*root(y) as root(x*y) to match.pd.
13326         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
13327         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
13328         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
13329         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
13330         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
13331         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
13332         (mult (exps:s @0) (exps:s @1)) : New simplifier.
13333         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
13334         (rdiv @0 (exps:s @1)) : New simplifier.
13335
13336 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
13337
13338         * gcc.c (driver::finalize): Only assign to extra_specs if
13339         [EXTRA_SPECS].
13340
13341 2015-08-25  Marek Polacek  <polacek@redhat.com>
13342
13343         PR middle-end/67330
13344         * varasm.c (declare_weak): Return after giving an error.
13345
13346 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
13347
13348         * gcc-main.c (main): Add params to driver ctor.
13349         * gcc.c (class env_manager): New.
13350         (env): New global.
13351         (env_manager::init): New.
13352         (env_manager::get): New.
13353         (env_manager::xput): New.
13354         (env_manager::restore): New.
13355         Poison getenv and putenv.
13356         (DEFAULT_TARGET_SYSTEM_ROOT): New.
13357         (target_system_root): Update initialization to use
13358         DEFAULT_TARGET_SYSTEM_ROOT.
13359         (struct spec_list): Add field "default_ptr".
13360         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
13361         (init_spec): Likewise.
13362         (set_spec): Clear field "default_ptr".
13363         (read_specs): Free "spec" and "buffer".
13364         (xputenv): Reimplement in terms of env_manager.
13365         (process_command): Replace ::getenv calls with calls to the
13366         env_manager singleton.
13367         (process_brace_body): Free string in three places.
13368         (driver::driver): New.
13369         (driver::~driver): New.
13370         (used_arg): Convert from a function to...
13371         (class used_arg_t): ...this class, and...
13372         (used_arg): ...this new global instance.
13373         (used_arg_t::finalize): New function.
13374         (getenv_spec_function): Add "const" to local "value".  Replace
13375         ::getenv call with call to the env_manager singleton.
13376         (path_prefix_reset): New function.
13377         (driver::finalize): New function.
13378         * gcc.h (driver::driver): New.
13379         (driver::~driver): New.
13380         (driver::finalize): New.
13381
13382 2015-08-25  Nathan Sidwell  <nathan@acm.org>
13383
13384         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
13385         target doesn't have one.
13386
13387 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
13388
13389         PR target/67346
13390         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
13391
13392 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
13393
13394         PR target/67344
13395         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
13396         a define_insn, remove second alternative.
13397
13398 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
13399             Joseph Myers  <joseph@codesourcery.com>
13400
13401         * gcc.c (struct switchstr): Expand comment.
13402
13403 2015-08-25  Nathan Sidwell  <nathan@acm.org>
13404
13405         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
13406         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
13407
13408 2015-08-25  Richard Biener  <rguenther@suse.de>
13409
13410         PR middle-end/67306
13411         * genmatch.c (expr::gen_transform): Verify the result of
13412         builtin_decl_implicit.
13413         (dt_simplify::gen_1): Likewise.
13414
13415 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13416
13417         * config/arm/constraints.md: Also list Cs and US ARM-specific
13418         constraints as used.
13419
13420 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
13421
13422         PR target/66609
13423         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
13424         UNSPEC_PCREL.
13425         (nonpic_symbol_mentioned_p): Likewise.
13426         (sh_delegitimize_address): Likewise.
13427         (sh_function_ok_for_sibcall): Take into account weak symbols.
13428         (sh_expand_sym_label2reg): New.
13429         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
13430         * config/sh/sh.md (UNSPEC_PCREL): New enum.
13431         (call_pcrel): Use sh_expand_sym_label2reg.
13432         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
13433         (symPCREL_label2reg) New expand.
13434
13435 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
13436
13437         * graphite-poly.c: Change type of region from void* to sese.
13438         * graphite-poly.h (struct scop): Changing the type of scop::region
13439         from void* to sese. Change accessor macro accordingly.
13440         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
13441
13442 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
13443
13444         * graphite-scop-detection.c (stmt_simple_for_scop_p):
13445         Constrain only on INTEGER_TYPE.
13446
13447 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13448
13449         PR target/67211
13450         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
13451         -mefficient-unaligned-vsx on ISA 2.7.
13452
13453         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
13454         option to a masked option.
13455
13456         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
13457         logic for -mefficient-unaligned-vsx so that it is set via an arch
13458         ISA option, instead of being set if -mtune=power8 is set. Move
13459         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
13460         near other default option handling.
13461
13462 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
13463
13464         * genflags.c (gen_macro): Delete.
13465         (gen_proto): Don't create GEN.*CALL.* macros.
13466         * gensupport.h (get_file_location): Declare.
13467         * gensupport.c (rtx_locs): New variable.
13468         (read_md_rtx): Record rtx locations.
13469         (get_file_location): New function.
13470         * target-insns.def (call, call_pop, call_value, call_value_pop)
13471         (sibcall, sibcall_value): New patterns.
13472         * gentarget-def.c (parse_argument): New function.
13473         (def_target_insn): Use it.  Handle optional operands.  Raise an
13474         error if an .md pattern has the wrong number of operands for the
13475         pattern name.  Remove the names of unused operands from the prototype.
13476         * builtins.c (expand_builtin_apply): Use targetm functions
13477         instead of HAVE_call_value and GEN_CALL_VALUE.
13478         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
13479         and sibcall_value_pop.
13480         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
13481         of GEN_CALL.
13482         * config/alpha/alpha.md (untyped_call): Likewise.
13483         * config/iq2000/iq2000.md (untyped_call): Likewise.
13484         * config/m68k/m68k.md (untyped_call): Likewise.
13485         * config/mips/mips.md (untyped_call): Likewise.
13486         * config/pa/pa.md (untyped_call): Likewise.
13487         * config/rs6000/rs6000.md (untyped_call): Likewise.
13488         * config/sparc/sparc.md (untyped_call): Likewise.
13489         * config/tilegx/tilegx.md (untyped_call): Likewise.
13490         * config/tilepro/tilepro.md (untyped_call): Likewise.
13491         * config/visium/visium.md (untyped_call): Likewise.
13492         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
13493         gen_call_value instead of GEN_CALL_VALUE.
13494         * config/arm/arm.md (untyped_call): Likewise.
13495         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
13496         GEN_CALL.
13497
13498 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
13499
13500         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
13501         (have_cbranchcc4): New variable.
13502         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
13503         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
13504         (if_convert): Initialize have_cbranchcc4.
13505
13506 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
13507
13508         * builtins.c (expand_cmpstrn): Rename to...
13509         (expand_cmpstrn_or_cmpmem): ...this.
13510         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
13511         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
13512         Remove mode argument.
13513         (expand_builtin): Update accordingly.
13514
13515 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
13516
13517         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
13518         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
13519         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
13520         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
13521         Add predicates for operands 0 and 3.
13522         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
13523         operand.
13524         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
13525         immediate_operand to nonmemory_operand.
13526
13527 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
13528
13529         * df-scan.c (df_insn_info_init_fields): New function, split out
13530         from...
13531         (df_insn_create_insn_record): ...here.
13532         (df_insn_info_free_fields): New function, split out from...
13533         (df_insn_info_delete): ...here.
13534         (df_insn_rescan): Use the new functions instead of freeing and
13535         reallocating the df_insn_info.
13536
13537 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13538
13539         * doc/install.texi (Binaries): Remove links no longer valid.
13540
13541 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
13542
13543         * config/nvptx/mkoffload.c (process): Replace
13544         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
13545
13546 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
13547
13548         PR target/67329
13549         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
13550
13551 2015-08-24  Renlin Li  <renlin.li@arm.com>
13552
13553         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
13554         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
13555         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
13556         * config/arm/constraints.md ("j"): Add check for high code.
13557
13558 2015-08-24  Tom de Vries  <tom@codesourcery.com>
13559
13560         PR tree-optimization/65468
13561         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
13562         chunk_size is one.
13563
13564 2015-08-24  Nathan Sidwell  <nathan@acm.org>
13565
13566         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
13567         change to nvptx_type_from_mode call. Use arg_promotion for both
13568         split and non-split args.
13569
13570 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
13571
13572         * target-insns.def (movstr): New pattern.
13573         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
13574         (expand_movstr): Use targetm rather than HAVE_movstr/
13575         CODE_FOR_movstr.
13576
13577 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
13578
13579         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
13580         cast syntax.
13581
13582 2015-08-24  Andrew Pinski  <apinski@cavium.com>
13583
13584         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
13585         AARCH64_EXTRA_TUNING_OPTION.
13586         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
13587         New enum.
13588         (aarch64_extra_tuning_flags): Base the shifted value on the index
13589         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
13590         * config/aarch64/aarch64.c: Remove the last argument to
13591         AARCH64_EXTRA_TUNING_OPTION.
13592
13593 2015-08-23  Nathan Sidwell  <nathan@acm.org>
13594
13595         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
13596         decls.
13597         (nvptx_declare_function_name): Insert formatting tabs for
13598         consistency.
13599
13600 2015-08-23  Tom de Vries  <tom@codesourcery.com>
13601
13602         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
13603         parm_decl, rather than generating a dummy default def in cfun.
13604         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
13605         ssa_name from cfun and child_fn do not share a stmt as def stmt.
13606         (move_stmt_op): Handle PARM_DECl.
13607         (gather_ssa_name_hash_map_from): New function.
13608         (move_sese_region_to_fn): Add default defs for function params, and add
13609         them to vars_map.  Release copied ssa names.
13610         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
13611
13612 2015-08-23  Tom de Vries  <tom@codesourcery.com>
13613
13614         * doc/sourcebuild.texi: Rename vect_no_int_max with
13615         vect_no_int_min_max.  Update description.
13616
13617 2015-08-22  Andrew Pinski  <apinski@cavium.com>
13618
13619          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
13620         * config/aarch64/aarch64-protos.h
13621         (aarch64_fusion_pairs_index): New enum.
13622         (aarch64_fusion_pairs): Base the shifted value on the index instead
13623         Rewrite AARCH64_FUSE_ALL to be based on the end index.
13624         of the argument to AARCH64_FUSION_PAIR.
13625         * config/aarch64/aarch64.c: Remove the last argument to
13626         AARCH64_FUSION_PAIR.
13627
13628 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
13629
13630         * dominance.c (new_zero_array): Define.
13631         (dom_info): Redefine as class with proper encapsulation.
13632         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
13633         Add new members.
13634         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
13635         allocations/deallocations.  Pass function as parameter (instead of
13636         using cfun).
13637         (dom_info::get_idom): Define accessor method.
13638         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
13639         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
13640         (calculate_dominance_info): Adjust to use dom_info class.
13641         (verify_dominators): Likewise.
13642
13643 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
13644
13645         * print-rtl.c (print_rtx): Check the correct range for
13646         flag_dump_unnumbered_links to behave as documented.
13647
13648         PR rtl-optimization/67227
13649         PR rtl-optimization/64164
13650         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
13651         (nonoverlapping_memrefs_p): Test offsets and sizes when given
13652         identical gimple_reg exprs.
13653
13654 2015-08-21  Nathan Sidwell  <nathan@acm.org>
13655
13656         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
13657         expansion.
13658         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
13659         crtl->stack_alignment_needed to determine alignment.
13660         (nvptx_get_drap_rtx): New.
13661         (TARGET_GET_DRAP_RTX): Override.
13662         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
13663
13664 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13665
13666         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
13667
13668 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13669
13670         * configure.ac: Remove uwin* cases.
13671         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
13672         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
13673         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
13674         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
13675         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
13676         i[34567]86-*-uwin*, powerpc-*-beos*.
13677
13678 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
13679
13680         * gencodes.c (gencodes): Print the comma for the preceding
13681         enum value rather than the current one.  Use aliased enum values
13682         rather than #defines for compiled-out patterns.
13683         (main): Update accordingly.  Replace LAST_INSN_CODE with
13684         NUM_INSN_CODES.
13685         * lra.c (insn_code_data): Update accordingly.
13686         (finish_insn_code_data_once, get_static_insn_data): Likewise.
13687         * recog.h (target_recog): Likewise.
13688         (preprocess_insn_constraints): Change parameter to unsigned int.
13689         * recog.c (preprocess_insn_constraints): Likewise.
13690         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
13691         * tree-vect-stmts.c (vectorizable_operation): Simplify.
13692
13693 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
13694
13695         PR rtl-optimization/61657
13696         * loop-iv.c (iv_number_of_iterations): Declare up and down as
13697         unsigned.  Remove superflous uint64_t cast.
13698
13699 2014-08-21  Felix Yang  <felix.yang@huawei.com>
13700             Jiji Jiang  <jiangjiji@huawei.com>
13701
13702         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
13703         argument and get builtin function code directly from CALL.
13704         (gimple_stringop_fixed_value): Modified accordingly.
13705         (gimple_stringops_transform, gimple_stringops_values_to_profile):
13706         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
13707
13708 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13709
13710         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
13711
13712 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
13713
13714         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
13715         to match.pd.
13716         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
13717         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
13718         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
13719         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
13720         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
13721         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
13722         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
13723         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
13724         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
13725         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
13726
13727         * match.pd (SIN ) : New Operator.
13728         (TAN) : New Operator.
13729         (mult (SQRT@1 @0) @1) : New simplifier.
13730         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
13731         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
13732         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
13733         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
13734         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
13735         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
13736         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
13737         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
13738         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
13739         (rdiv @0 (POW:s @1 @2)) : New simplifier.
13740
13741 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
13742
13743         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
13744         loop if EXPR is simplified to const value.
13745
13746 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
13747
13748         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
13749         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
13750
13751 2015-08-21  Richard Biener  <rguenther@suse.de>
13752
13753         PR middle-end/67285
13754         * gimple-fold.c (replace_stmt_with_simplification): Assert
13755         seq is empty when replacing a call with itself but different
13756         arguments.
13757         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
13758         a call require that it is const.
13759
13760 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13761
13762         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
13763         * builtins.c (get_object_alignment_2): Adjust.
13764         * varasm.c (align_variable): Likewise.
13765         (get_variable_align): Likewise.
13766         (build_constant_desc): Likewise.
13767         (force_const_mem): Likewise.
13768         * doc/tm.texi.in: Likewise.
13769         * doc/tm.texi: Regenerate.
13770
13771 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13772
13773         * genconfig.c (main): Always define HAVE_cc0.
13774         * recog.c (rest_of_handle_peephole2): Adjust.
13775
13776 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13777
13778         * reorg.c (relax_delay_slots): Don't use #if to check value of
13779         HAVE_cc0.
13780
13781 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13782
13783         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
13784         * targhooks.c (default_have_conditional_execution): Adjust.
13785
13786 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
13787
13788         * rtl.h (rtvec_all_equal_p): Declare.
13789         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
13790         * rtl.c (rtvec_all_equal_p): New function.
13791         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
13792         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
13793         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
13794         * config/arm/arm.c (neon_vdup_constant): Likewise.
13795         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
13796         * config/tilegx/constraints.md (W, Y): Likewise.
13797         * config/tilepro/constraints.md (W, Y): Likewise.
13798         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
13799         (classify_immediate): Use unwrap_const_vec_duplicate.
13800         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
13801         (reg_or_v2s8bit_operand): Likewise.
13802         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
13803         (reg_or_v4s8bit_operand): Likewise.
13804
13805 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13806
13807         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
13808         (vec_shasigma_be): New #define.
13809         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
13810         (VPMSUMH): Likewise.
13811         (VPMSUMW): Likewise.
13812         (VPMSUMD): Likewise.
13813         (VPMSUM): New BU_P8V_OVERLOAD_2.
13814         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
13815         entries for VEC_MADD and VEC_VPMSUM.
13816
13817 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
13818
13819         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
13820         Multiply argument avr_n_flash by 64 to match unit of "KiB".
13821         (avr_pgm_check_var_decl): Same.
13822
13823 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
13824
13825         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
13826         initialization of HFmode scalar type (float16_t) to...
13827         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
13828         code.
13829
13830         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
13831
13832         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
13833         having an -mfp16-format.
13834
13835 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
13836
13837         * config/i386/predicates.md (vector_all_ones_operand): Use
13838         CONSTM1_RTX to simplify definition.
13839
13840 2015-08-20  Richard Biener  <rguenther@suse.de>
13841
13842         * toplev.c (compile_file): Remove loop calling late_global_decl
13843         on all symbols.
13844         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
13845         on decls we assembled.
13846
13847 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
13848
13849         * common/config/aarch64/aarch64-common.c
13850         (AARCH64_CPU_NAME_LENGTH): Delete.
13851         (aarch64_option_extension): New.
13852         (all_extensions): Likewise.
13853         (processor_name_to_arch): Likewise.
13854         (arch_to_arch_name): Likewise.
13855         (all_cores): New.
13856         (all_architectures): Likewise.
13857         (aarch64_get_extension_string_for_isa_flags): Likewise.
13858         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
13859         architecture names.
13860         * config/aarch64/aarch64-protos.h
13861         (aarch64_get_extension_string_for_isa_flags): New.
13862         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
13863         (aarch64_option_print): Get the string to print from
13864         aarch64_get_extension_string_for_isa_flags.
13865         (aarch64_declare_function_name): Likewise.
13866         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
13867         (MCPU_TO_MARCH_SPEC): This.
13868         (ASM_CPU_SPEC): Use it.
13869         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
13870         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
13871         (EXTRA_SPEC_FUNCTIONS): Use it.
13872
13873 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
13874
13875         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
13876         expansion when !ISA_HAS_LWL_LWR.
13877         (mips_block_move_straight): Update the size of elements copied to
13878         account for alignment when !ISA_HAS_LWL_LWR.
13879         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
13880
13881 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
13882
13883         * expr.c (expand_expr_real_2): Check gimple statement during
13884         LSHIFT_EXPR expand.
13885
13886 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
13887
13888         * common.opt (fstack-protector): Initialize to -1.
13889         (fstack-protector-all): Likewise.
13890         (fstack-protector-strong): Likewise.
13891         (fstack-protector-explicit): Likewise.
13892         * configure.ac: Add --enable-default-ssp.
13893         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
13894         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
13895         -1.
13896         * doc/install.texi: Document --enable-default-ssp.
13897         * config.in: Regenerated.
13898         * configure: Likewise.
13899
13900 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
13901
13902         PR rtl-optimization/64164
13903         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
13904         (parm_in_stack_slot_p): ... this.  Disregard mode, what
13905         matters is whether the parm will live in a pseudo or a stack
13906         slot.
13907         (expand_one_ssa_partition): Deal with params without a default
13908         def.  Disregard mode.
13909         * cfgexpand.h: Renamed function declaration.
13910         * tree-ssa-coalesce.c: Adjust.
13911         * function.c (split_complex_args): Allocate stack slot for
13912         unassigned parms before splitting.
13913         (parm_in_unassigned_mem_p): New.  Use it instead of
13914         parm_maybe_byref_p throughout this file.
13915         (assign_parm_setup_block): Use it.  Accept pseudos in the
13916         expand-assigned rtl.
13917         (assign_parm_setup_reg): Drop BLKmode requirement.
13918         (assign_parm_setup_stack): Allocate and fill in the address of
13919         unassigned MEM parms.
13920
13921 2015-08-19  David Sherwood  <david.sherwood@arm.com>
13922
13923         * genmodes.c (emit_mode_unit_size_inline): New function.
13924         (emit_mode_unit_precision_inline): New function.
13925         (emit_insn_modes_h): Emit new #define.  Emit new functions.
13926         (emit_mode_unit_size): New function.
13927         (emit_mode_unit_precision): New function.
13928         (emit_mode_adjustments): Add mode_unit_size adjustments.
13929         (emit_insn_modes_c): Emit new arrays.
13930         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
13931         use new inline methods.
13932
13933 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13934
13935         * config/aarch64/aarch64.c (bit_count): Delete prototype
13936         and definition.
13937         (aarch64_print_operand): Use popcount_hwi instead of the above.
13938
13939 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13940
13941         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
13942         comment.
13943
13944 2015-08-19  Marek Polacek  <polacek@redhat.com>
13945
13946         PR middle-end/67133
13947         * gimple-ssa-isolate-paths.c
13948         (insert_trap_and_remove_trailing_statements): Rename to ...
13949         (insert_trap): ... this.  Don't remove trailing statements; split
13950         block instead.
13951         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
13952
13953 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
13954
13955         PR other/67042
13956         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
13957         conditionalize the whole on __GNUC__.  Add fallback code
13958         depending neither on undefined nor implementation-defined behaviour.
13959
13960 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
13961
13962         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
13963         whitespaces with tab.
13964
13965 2015-08-19  Florian Weimer  <fweimer@redhat.com>
13966
13967         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
13968         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
13969         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
13970         Move Name_Ids instantiation to the Prj.Proc package, to avoid
13971         trampolines.
13972
13973 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13974
13975         * config/arm/arm.c (bounds_check): Use %wd print format
13976         for HOST_WIDE_INT arguments.
13977
13978 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
13979
13980         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
13981         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
13982         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
13983         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
13984         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
13985         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
13986         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
13987         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
13988         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
13989         typedefs.
13990
13991 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
13992
13993         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
13994         function.c, graphite-scop-detection.c, haifa-sched.c,
13995         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
13996         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
13997         varasm.c: Remove typedefs of structs.
13998
13999 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
14000
14001         * config/rs6000/altivec.h (vec_adde): New define.
14002         (vec_addec): Likewise.
14003         (vec_double): Likewise.
14004         (vec_bperm): Likewise.
14005         (vec_gb): Likewise.
14006         * config/rs6000/rs6000-builtin.def (ADDE): New
14007         BU_ALTIVEC_OVERLOAD_3.
14008         (ADDEC): Likewise.
14009         (DOUBLE): New BU_VSX_OVERLOAD_1.
14010         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
14011         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
14012         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
14013         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
14014         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
14015         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
14016         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
14017         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
14018         and P8V_BUILTIN_VEC_VBPERMQ.
14019
14020 2015-08-18  Jason Merrill  <jason@redhat.com>
14021
14022         * print-tree.c (print_node): Handle TREE_BINFO.
14023
14024 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14025
14026         PR middle-end/36757
14027         * builtins.c (expand_builtin_signbit): Add asserts to make sure
14028         we can expand BUILT_IN_SIGNBIT inline.
14029         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
14030         * doc/extend.texi: Document the type-generic __builtin_signbit.
14031
14032 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
14033
14034         PR rtl-optimization/67218
14035         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
14036         (simplify_unary_operation_1): Use it.
14037
14038 2015-08-18  Marek Polacek  <polacek@redhat.com>
14039
14040         PR middle-end/67222
14041         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
14042         if the call isn't valid.
14043         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
14044         gimple_call_builtin_p.
14045         (call_may_clobber_ref_p_1): Likewise.
14046         (stmt_kills_ref_p): Likewise.
14047
14048 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
14049
14050         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
14051         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
14052         (mips_hard_regno_scratch_ok): Likewise.
14053         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
14054         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
14055
14056 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
14057
14058         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
14059         (determine_value_range): Call refine_value_range_using_guard for
14060         each loop initial condition to improve value range.
14061
14062 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
14063
14064         * config/i386/i386.c: Remove include of fibheap.h.
14065
14066 2015-08-17  Richard Biener  <rguenther@suse.de>
14067
14068         PR tree-optimization/67221
14069         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
14070         (sccvn_dom_walker::before_dom_children): Mark backedges of
14071         non-executable blocks as not executable.
14072
14073 2015-08-17  David Sherwood  <david.sherwood@arm.com>
14074
14075         * config/arm/arm.c (neon_element_bits): Replace call to
14076         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
14077         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
14078         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
14079         (neon_vdup_lane<mode>): Likewise.
14080         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
14081         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
14082         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
14083         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
14084         * config/spu/spu.c (arith_immediate_p): Likewise.
14085         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
14086         * expr.c (expand_expr_real_2): Likewise.
14087         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
14088         * simplify-rtx.c (simplify_immed_subreg): Likewise.
14089         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
14090         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
14091         New variable.
14092         * fold-const.c (fold_binary_loc): Replace call to
14093         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
14094         GET_MODE_UNIT_PRECISION (m).
14095
14096 2015-08-17  Mike Stump  <mikestump@comcast.net>
14097
14098         * config/arm/arm.c (arm_block_move_unaligned_straight):
14099         Emit normal move instead of unaligned load when source or destination
14100         are appropriately aligned.
14101
14102 2015-08-17  Richard Biener  <rguenther@suse.de>
14103             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
14104
14105         PR middle-end/16107
14106         * match.pd (div (coss (op @0) : New simplifier.
14107
14108 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
14109
14110         PR rtl-optimization/64164
14111         PR bootstrap/66978
14112         PR middle-end/66983
14113         PR rtl-optimization/67000
14114         PR middle-end/67034
14115         PR middle-end/67035
14116         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
14117         * tree-ssa-copyrename.c: Removed.
14118         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
14119         -ftree-coalesce-vars.
14120         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
14121         * common.opt (ftree-copyrename): Ignore.
14122         (ftree-coalesce-inlined-vars): Likewise.
14123         * doc/invoke.texi: Remove the ignored options above.
14124         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
14125         * tree-ssa-coalesce.h: ... here.
14126         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
14127         headers required by it.
14128         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
14129         across variables when flag_tree_coalesce_vars.  Check register
14130         use and promoted modes to allow coalescing.  Do not coalesce
14131         maybe-byref parms with SSA_NAMEs of other variables, or
14132         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
14133         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
14134         with its member functions to tree-ssa-coalesce.c.
14135         (var_map_base_init): Likewise.  Renamed to
14136         compute_samebase_partition_bases.
14137         (partition_view_normal): Drop want_bases parameter.
14138         (partition_view_bitmap): Likewise.
14139         * tree-ssa-live.h: Adjust declarations.
14140         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
14141         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
14142         default defs at the entry point.
14143         (dump_part_var_map): New.
14144         (compute_optimized_partition_bases): New, called by...
14145         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
14146         of compute_samebase_partition_bases.  Adjust.
14147         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
14148         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
14149         (ssa_default_def_partition): New.
14150         (get_rtl_for_parm_ssa_default_def): New.
14151         (align_local_variable, add_stack_var): Support anonymous SSA
14152         names.
14153         (defer_stack_allocation): Likewise.  Declare earlier.
14154         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
14155         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
14156         Do no record deferred-allocation marker in
14157         SA.partition_to_pseudo.
14158         (expand_stack_vars): Adjust check for the marker in it.
14159         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
14160         redundant MEM attr setting.
14161         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
14162         from...
14163         (expand_one_stack_var): ... this.  New wrapper to check and
14164         skip already expanded SSA partitions.
14165         (record_alignment_for_reg_var): New, factored out of...
14166         (expand_one_var): ... this.
14167         (expand_one_ssa_partition): New.
14168         (adjust_one_expanded_partition_var): New.
14169         (expand_one_register_var): Check and skip already expanded SSA
14170         partitions.
14171         (expand_used_vars): Don't create DECLs for anonymous SSA
14172         names.  Expand all SSA partitions, then adjust all SSA names.
14173         (pass::execute): Replace the loops that set
14174         SA.partition_to_pseudo from partition leaders and cleared
14175         DECL_RTL for multi-location variables, and that which used to
14176         rename vars and set attrs, with one that clears DECL_RTL and
14177         checks that PARMs and RESULTs default_defs match DECL_RTL.
14178         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
14179         * emit-rtl.c: Include stor-layout.h.
14180         (set_reg_attrs_for_parm): Handle NULL decl.
14181         (set_reg_attrs_for_decl_rtl): Take mode from expression if
14182         it's not a DECL.
14183         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
14184         rather than its possibly-NULL DECL.
14185         * explow.c (promote_ssa_mode): New.
14186         * explow.h (promote_ssa_mode): Declare.
14187         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
14188         (read_complex_part): Export.
14189         * expr.h (read_complex_part): Declare.
14190         * cfgexpand.h (parm_maybe_byref_p): Declare.
14191         * function.c: Include cfgexpand.h.
14192         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
14193         (use_register_for_parm_decl): Wrapper for the above to
14194         special-case the result_ptr.
14195         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
14196         (split_complex_args): Take assign_parm_data_all argument.
14197         Pass it to rtl_for_parm.  Set up rtl and context for split
14198         args.  Reset complex parm before fetching its default decl
14199         rtl.
14200         (assign_parms_unsplit_complex): Use the default-def complex
14201         parm rtl if it matches the components.
14202         (assign_parms_augmented_arg_list): Adjust.
14203         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
14204         multiple locations.  Recognize split complex args.
14205         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
14206         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
14207         (assign_parm_setup_block): Prefer SSA-assigned location, and
14208         fill in its address if the memory location of a maybe-byref
14209         parm was not assigned by cfgexpand.
14210         (assign_parm_setup_reg): Likewise.  Adjust its mode as
14211         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
14212         sure passed_pointer parms don't need conversion.  Copy address
14213         or value as needed.
14214         (assign_parm_setup_stack): Prefer SSA-assigned location.
14215         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
14216         rtl before testing for pointer bounds.  Special-case result_ptr.
14217         (expand_function_start): Maybe reset DECL_RTL of result.
14218         Prefer SSA-assigned location for result and static chain.
14219         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
14220         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
14221         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
14222         anonymous SSA names.  Use promote_ssa_mode.
14223         (get_temp_reg): Likewise.
14224         (remove_ssa_form): Adjust.
14225         * stor-layout.c (layout_decl): Don't set mem attributes of
14226         non-MEMs.
14227         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
14228         and get its reg_usage for reg invalidation.
14229         (compute_bb_dataflow): Pass it insn.
14230         (emit_notes_in_bb): Likewise.
14231
14232 2015-08-14  Marek Polacek  <polacek@redhat.com>
14233
14234         * tree-core.h (tree_base): Fix typo.
14235
14236 2015-08-14  Marek Polacek  <polacek@redhat.com>
14237
14238         PR middle-end/67133
14239         * gimple.c (infer_nonnull_range_by_attribute): Check that the
14240         nonnull argument position is not outside function arguments.
14241
14242 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
14243
14244         PR target/67143
14245         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
14246         'lconst_atomic' with 'const_atomic'.
14247         (atomic_fetch_<optab><mode>): Likewise.
14248         (atomic_<optab>_fetch<mode>): Likewise.
14249         * config/aarch64/iterators.md (lconst-atomic): Move below
14250         'const_atomic'.
14251         (const_atomic): New.
14252
14253 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
14254             Bernd Schmidt  <bernds@codesourcery.com>
14255
14256         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
14257         debug options.
14258         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
14259         (DWARF2_DEBUGGING_INFO): Don't define.
14260         * debug.h (dwarf2_lineno_debug_hooks): Declare.
14261         * toplev.c (process_options): Add a case for it.
14262         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
14263         (dwarf2out_init): Skip most initializations if
14264         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
14265         case.
14266         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
14267         DWARF2_LINENO_DEBUGGING_INFO.
14268         * opts.c (set_debug_level): Likewise.
14269
14270 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
14271
14272         * config/arm/types.md (is_neon_type): Add missing types.
14273
14274 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
14275
14276         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
14277         for skylake.
14278         * config/i386/i386.c (PTA_SKYLAKE): New macros.
14279         (processor_alias_table): Add skylake description.
14280         (enum processor_model): Add skylake processor.
14281         (arch_names_table): Add skylake record.
14282         * doc/invoke.texi: Add skylake item.
14283
14284 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
14285
14286         * ira-int.h: Include recog.h.
14287         * ira-build.c: Don't include recog.h.
14288         * ira-color.c: Likewise.
14289         * ira-conflicts.c: Likewise.
14290         * ira-costs.c: Likewise.
14291         * ira-emit.c: Likewise.
14292         * ira-lives.c: Likewise.
14293         * ira.c: Likewise.
14294         * sched-deps.c: Likewise.
14295         * sel-sched.c: Likewise.
14296         * target-globals.c: Likewise.
14297
14298 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
14299
14300         PR bootstrap/55035
14301         * reload1.c (elimination_costs_in_insn): Make it obvious to the
14302         compiler that the n_dups and n_operands loop bounds are invariant.
14303
14304 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14305
14306         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
14307         expressions in A and B.
14308
14309 2015-08-13  Richard Biener  <rguenther@suse.de>
14310
14311         * tree.c (nonnull_arg_p): Move from ...
14312         * tree-vrp.c (nonnull_arg_p): ... here.
14313         * tree.h (nonnull_arg_p): Declare.
14314         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
14315         here, register ptr != 0 for nonnull_arg_p pointer arguments.
14316         Properly initialize static chain and by-reference result pointer.
14317         (run_scc_vn): Adjust.
14318
14319 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
14320
14321         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
14322         TUNE_I6400.
14323
14324 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
14325
14326         * config/aarch64/aarch64-protos.h
14327         (aarch64_gen_atomic_cas): Declare.
14328         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
14329         Choose appropriate instruction pattern for the target.
14330         (aarch64_gen_atomic_cas): New.
14331         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
14332         (atomic_compare_and_swap<mode>_1): Rename to
14333         aarch64_compare_and_swap<mode>.  Fix some indentation.
14334         (aarch64_compare_and_swap<mode>_lse): New.
14335         (aarch64_atomic_cas<mode>): New.
14336
14337 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
14338
14339         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
14340         (TARGET_LSE): New.
14341
14342 2015-08-13  Richard Biener  <rguenther@suse.de>
14343
14344         PR tree-optimization/67191
14345         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
14346         assert we value-numbered last stmts operand because it can validly
14347         trigger for unreachable code.
14348
14349 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14350
14351         PR rtl-optimization/67103
14352         * ifcvt.c (noce_try_store_flag_constants): Move
14353         x = (-(test != 0) & (b - a)) + a transformation to...
14354         (noce_try_cmove): ... Here.  Try it if normal conditional
14355         move fails.
14356
14357 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
14358
14359         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
14360         pseudo-processors.
14361         * config/mips/mips.md (processor): Remove w32 and w64.
14362
14363 2015-08-13  Richard Biener  <rguenther@suse.de>
14364
14365         PR tree-optimization/66502
14366         PR tree-optimization/67167
14367         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
14368         backedge arguments.
14369         (vn_phi_lookup): Adjust.
14370         (vn_phi_insert): Likewise.
14371         (visit_phi): Prefer to value-number to another PHI node
14372         over value-numbering to a PHI argument.
14373         (init_scc_vn): Mark DFS back edges.
14374
14375 2015-08-13  Richard Biener  <rguenther@suse.de>
14376
14377         * gimple.h (gcall::code_): New constant static member.
14378         (gcond::code_): Likewise.
14379         * gimple.c (gcall::code_): Define.
14380         (gcond::code_): Likewise.
14381         (is_a_helper <const gcond *>): Add.
14382         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
14383         and forward to a new gcall overload with less checking and a
14384         cheaper way to access the operand.
14385         (gimple_call_lhs_ptr): Likewise.
14386         (gimple_call_set_lhs): Likewise.
14387         (gimple_call_internal_p): Likewise.
14388         (gimple_call_with_bounds_p): Likewise.
14389         (gimple_call_set_with_bounds): Likewise.
14390         (gimple_call_internal_fn): Likewise.
14391         (gimple_call_set_ctrl_altering): Likewise.
14392         (gimple_call_ctrl_altering_p): Likewise.
14393         (gimple_call_fntype): Likewise.
14394         (gimple_call_fn): Likewise.
14395         (gimple_call_fn_ptr): Likewise.
14396         (gimple_call_set_fndecl): Likewise.
14397         (gimple_call_fndecl): Likewise.
14398         (gimple_call_chain): Likewise.
14399         (gimple_call_num_args): Likewise.
14400         (gimple_call_arg): Likewise.
14401         (gimple_call_arg_ptr): Likewise.
14402         (gimple_call_set_arg): Likewise.
14403         (gimple_call_noreturn_p): Likewise.
14404         (gimple_cond_code): Likewise.
14405         (gimple_cond_lhs): Likewise.
14406         (gimple_cond_rhs): Likewise.
14407         (gimple_has_lhs): Reduce checking.
14408
14409 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
14410
14411         PR middle-end/25529
14412         * match.pd (div (mult @0 @1) @1) : New simplifier.
14413
14414 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
14415
14416         PR target/67071
14417         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
14418         predicate to allow construction of vector constants using the
14419         VSLDOI vector shift instruction.
14420
14421         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
14422         declaration.
14423
14424         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
14425         the number of bytes to be shifted left and filled in with either
14426         all zero or all one bits.
14427         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
14428         methods exist.
14429         (output_vec_const_move): On power8, generate XXLORC to generate
14430         a vector constant with all 1's. Do a split if we need to use a
14431         VSLDOI instruction.
14432
14433         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
14434         properly test for the MSB.
14435
14436         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
14437         vector constants that can be created with VSLDOI.
14438
14439 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
14440
14441         revert:
14442         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
14443         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
14444         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
14445         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
14446         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
14447         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
14448         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
14449         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
14450         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
14451
14452 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
14453
14454         * config/xtensa/constraints.md (define_constraint "Y"): New
14455         constraint.
14456         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
14457         * config/xtensa/linux.h (ASM_SPEC): Likewise.
14458         * config/xtensa/predicates.md (move_operand): Match constants
14459         and symbols in the presence of TARGET_AUTO_LITPOOLS.
14460         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
14461         immediate references to TLS data.
14462         (xtensa_emit_move_sequence): Don't force constants to memory in
14463         the presence of TARGET_AUTO_LITPOOLS.
14464         (print_operand): Add 'y' format, same as default, but capable of
14465         printing SF mode constants as well.
14466         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
14467         (movsf_internal): Add movi pattern that loads literal.
14468         (movsf, movdf): Don't force constants to memory in the presence
14469         of TARGET_AUTO_LITPOOLS.
14470         (movdf_internal): Add 'Y' constraint.
14471         * config/xtensa/xtensa.opt (mauto-litpools): New option.
14472         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
14473
14474 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
14475
14476         * config/arm/arm-fpus.def: Replace booleans with feature flags.
14477         Update comment.
14478         * config/arm/arm.c (ARM_FPU): Update macro.
14479         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
14480         (TARGET_FP16): Likewise.
14481         (TARGET_CRYPTO): Likewise.
14482         (TARGET_NEON): Likewise.
14483         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
14484         field features.
14485
14486 2015-08-12  Tom de Vries  <tom@codesourcery.com>
14487
14488         PR other/67092
14489         PR other/67098
14490         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
14491         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
14492         accordingly.  Mention default for --with-stage1-ldflags.
14493
14494 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
14495
14496         * config/arm/arm.h (arm_fpu_feature_set): New.
14497         (ARM_FPU_FSET_HAS): New.
14498         (FPU_FL_NONE): New.
14499         (FPU_FL_NEON): New.
14500         (FPU_FL_FP16): New.
14501         (FPU_FL_CRYPTO): New.
14502
14503 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14504
14505         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
14506         after -mcmodel=large -fPIC sorry.
14507
14508 2015-08-12  Richard Biener  <rguenther@suse.de>
14509
14510         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
14511         comparison operand order and commutative ternary op operand order.
14512         (sccvn_dom_walker::cond_stack): New state to track temporary
14513         expressions.
14514         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
14515         no longer valid.
14516         (sccvn_dom_walker::record_cond): Add a single temporary conditional
14517         expression.
14518         (sccvn_dom_walker::record_conds): Add a temporary conditional
14519         expressions and all related expressions also true/false.
14520         (sccvn_dom_walker::before_dom_children): Record temporary
14521         expressions based on the controlling condition of a single
14522         predecessor.  When trying to simplify a conditional statement
14523         lookup expressions we might have inserted earlier.
14524
14525 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
14526
14527         PR target/67127
14528         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
14529         to ARM core registers.
14530
14531 2015-08-12  Nathan Sidwell  <nathan@acm.org>
14532
14533         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
14534         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
14535
14536 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
14537
14538         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
14539         line with comments.
14540         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
14541
14542 2015-08-12  Richard Biener  <rguenther@suse.de>
14543
14544         * gimple.h (remove_pointer): New trait.
14545         (GIMPLE_CHECK2): New inline template function.
14546         (gassign::code_): New constant static member.
14547         (is_a_helper<const gassign *>): Add.
14548         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
14549         and forward to a new gassign overload with less checking and a
14550         cheaper way to access the operand.
14551         (gimple_assign_lhs_ptr): Likewise.
14552         (gimple_assign_set_lhs): Likewise.
14553         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
14554         Likewise.
14555         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
14556         Likewise.
14557         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
14558         Likewise.
14559         (gimple_assign_rhs_code): Likewise.
14560         * gimple.c (gassign::code_): Define.
14561
14562 2015-08-12  Richard Biener  <rguenther@suse.de>
14563
14564         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
14565         Eliminate edges marked as not executable by SCCVN.
14566         * tree-ssa-sccvn.c: Include gimple-iterator.h.
14567         (cond_dom_walker): Rename to sccvn_dom_walker.
14568         (sccvn_dom_walker::before_dom_children): Value-number defs
14569         of all stmts.
14570         (run_scc_vn): Remove loop value-numbering all SSA names.
14571         Drop not visited SSA names to varying.
14572
14573 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
14574
14575         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
14576         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
14577         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
14578         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
14579         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
14580         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
14581         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
14582         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
14583         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
14584
14585 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
14586
14587         PR target/66954
14588         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
14589         to enum feature_priority and feature_list.
14590         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
14591         and isa_names_table.
14592
14593 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
14594
14595         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
14596         vect_induction_def.
14597
14598 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14599
14600         PR c/66098
14601         PR c/66711
14602         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
14603         account when deciding what was the command-line status.
14604
14605 2015-08-11  Nathan Sidwell  <nathan@acm.org>
14606
14607         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
14608
14609         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
14610         we're not the only contributor to target phi.
14611
14612 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
14613
14614         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
14615         FIXED_REG0.
14616
14617 2015-08-11  Tom de Vries  <tom@codesourcery.com>
14618
14619         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
14620
14621 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
14622
14623         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
14624         with CPU_SLM.
14625         * config/i386/i386.md (cpu): Remove knl.
14626
14627 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
14628
14629         PR libgomp/65742
14630         PR middle-end/66332
14631         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
14632         open-coded sequence.
14633         * omp-low.c (oacc_process_reduction_data): Remove handline of
14634         GOMP_DEVICE_HOST_NONSHM.
14635
14636         * lto-streamer-in.c (lto_input_mode_table): Adjust to
14637         GET_MODE_INNER changes.
14638
14639 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
14640             Ilya Verbin  <ilya.verbin@intel.com>
14641
14642         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
14643
14644 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14645
14646         * doc/options.texi (EnabledBy): Document that the argument must be
14647         a Common option.
14648         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
14649         Not enabled by -Wall.
14650         * optc-gen.awk: Give nicer error messages. Detect if the argument
14651         of EnabledBy is not a Common option.
14652         * common.opt (Wnull-dereference): Not enabled by -Wall.
14653         * opt-functions.awk (lang_enabled_by): Nicer error messages.
14654
14655 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
14656
14657         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
14658         model == 0x4f as Broadwell.
14659
14660 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
14661
14662         PR rtl-optimization/67028
14663         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
14664         Add test to see if a const_int fits in the new mode.
14665
14666 2015-08-07  DJ Delorie  <dj@redhat.com>
14667
14668         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
14669
14670 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
14671
14672         PR rtl-optimization/67029
14673         * ira-color.c: Include "recog.h" before including "ira-int.h".
14674         * target-globals.c: Likewise.
14675         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
14676         adds an alternative_mask argument and use it instead of
14677         preferred_alternatives.
14678         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
14679         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
14680         * sched-deps.c: Include "ira-int.h" after including "ira.h".
14681         (sched_analyze_insn): Update call to
14682         ira_implicitly_set_insn_hard_regs.
14683         * sel-sched.c: Include "ira-int.h" after including "ira.h".
14684         (implicit_clobber_conflict_p): Update call to
14685         ira_implicitly_set_insn_hard_regs.
14686
14687 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
14688
14689         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
14690
14691 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
14692
14693         PR target/67002
14694         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
14695         currently_expanding_to_rtl is set.
14696
14697 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
14698
14699         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
14700         * configure: Regenerate.
14701
14702 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14703             Jiong Wang  <jiong.wang@arm.com>
14704
14705         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
14706         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
14707         (REG_CLASS_NAMES): Likewise.
14708         (REG_CLASS_CONTENTS): Likewise.
14709         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
14710         (aarch64_register_move_cost): Likewise.
14711         (aarch64_load_symref_appropriately): Invoke the new added pattern if
14712         possible.
14713         * config/aarch64/constraints.md (Uc0): New constraint.
14714
14715 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
14716
14717         * config/aarch64/constraints.md (Usf): Add the test of
14718         aarch64_is_noplt_call_p.
14719
14720 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
14721
14722         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
14723         declaration.
14724         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
14725         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
14726         (call_symbol): Likewise.
14727
14728 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
14729
14730         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
14731         for vectorizing multiplication patterns.
14732         * tree-vectorizer.h: Adjust the number of patterns.
14733
14734 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
14735
14736         * config/i386/sse.md (*vec_concatv2df): Declare added
14737         alternatives as sselog type.
14738
14739 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14740
14741         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
14742         all GPRs.
14743
14744 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14745
14746         * config/s390/s390.c (s390_expand_tbegin): Expand either
14747         tbegin_1_z13 or tbegin_1 depending on VX flag.
14748         * config/s390/s390.md ("tbegin_1_z13"): New expander.
14749
14750 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14751
14752         * config/s390/s390.opt: Clarify description for -mzvector
14753         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
14754         -mzvector.
14755
14756 2015-08-06  Richard Biener  <rguenther@suse.de>
14757
14758         * gimple.h (gimple_call_set_fn): Access op member directly.
14759         (gimple_call_chain_ptr): Likewise.
14760         (gimple_call_set_chain): Likewise.
14761         (gimple_cond_lhs_ptr): Likewise.
14762         (gimple_cond_set_lhs): Likewise.
14763         (gimple_cond_rhs_ptr): Likewise.
14764         (gimple_cond_set_rhs): Likewise.
14765         (gimple_cond_true_label): Likewise.
14766         (gimple_cond_set_true_label): Likewise.
14767         (gimple_cond_set_false_label): Likewise.
14768         (gimple_cond_false_label): Likewise.
14769         (gimple_label_label): Likewise.
14770         (gimple_label_set_label): Likewise.
14771         (gimple_goto_set_dest): Likewise.
14772         (gimple_asm_input_op): Likewise.
14773         (gimple_asm_input_op_ptr): Likewise.
14774         (gimple_asm_set_input_op): Likewise.
14775         (gimple_asm_output_op): Likewise.
14776         (gimple_asm_output_op_ptr): Likewise.
14777         (gimple_asm_set_output_op): Likewise.
14778         (gimple_asm_clobber_op): Likewise.
14779         (gimple_asm_set_clobber_op): Likewise.
14780         (gimple_asm_label_op): Likewise.
14781         (gimple_asm_set_label_op): Likewise.
14782         (gimple_switch_index): Likewise.
14783         (gimple_switch_index_ptr): Likewise.
14784         (gimple_return_retval_ptr): Likewise.
14785         (gimple_return_retval): Likewise.
14786         (gimple_return_set_retval): Likewise.
14787         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
14788         (gimple_switch_label): Likewise.
14789         (gimple_switch_set_label): Likewise.
14790
14791 2015-08-06  Richard Biener  <rguenther@suse.de>
14792
14793         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
14794         bool comparison canonicalization and restrict to integers.
14795
14796 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
14797
14798         * coretypes.h (enum symbol_visibility): Relocate here.
14799         * flag-types.h (enum symbol_visibility): Remove.
14800         * tree-core.h (enum symbol_visibility): Remove.
14801
14802 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
14803
14804         PR target/66870
14805         * config/rs6000/rs6000.c (rs6000_emit_prologue): Check
14806         for no_split_stack function attribute along with
14807         flag_split_stack.
14808         (rs6000_expand_split_stack_prologue): Likewise.
14809
14810 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14811             Jeff Law  <law@redhat.com>
14812
14813         PR c/16351
14814         * doc/invoke.texi (Wnull-dereference): New.
14815         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
14816         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
14817         Warn for potential NULL dereferences.
14818         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
14819         * ubsan.c (instrument_nonnull_arg): Call
14820         infer_nonnull_range_by_attribute.
14821         (instrument_nonnull_return): Likewise.
14822         * common.opt (Wnull-dereference); New.
14823         * gimple.c (infer_nonnull_range): Remove bool arguments.
14824         (infer_nonnull_range_by_dereference): New.
14825         (infer_nonnull_range_by_attribute): New.
14826         * gimple.h: Update declarations.
14827
14828 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
14829
14830         * gensupport.c (sequence_num): Replace with...
14831         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
14832         ...these new variables.
14833         (init_rtx_reader_args_cb): Update accordingly.
14834         (get_num_code_insns): Likewise.
14835         (read_md_rtx): Rework to use a while loop and get_c_test.
14836         Use the new counters.  Remove redundant DEFINE_SUBST case.
14837         * genoutput.c (gen_split): Delete.
14838         (main): Don't call it.
14839
14840 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
14841
14842         * gensupport.h (get_c_test): Declare.
14843         * gensupport.c (get_c_test): New function.
14844         * genconditions.c (main): Use it.
14845         * genrecog.c (validate_pattern): Likewise.
14846         (match_pattern_1): Likewise.  Remove c_test argument.
14847         (match_pattern): Update accordingly and remove c_test argument.
14848         (main): Update accordingly.
14849
14850 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
14851
14852         * gensupport.h (get_num_insn_codes): Declare.
14853         * gensupport.c (get_num_insn_codes): New function.
14854         * genattrtab.c (optimize_attrs): Rename max_insn_code to
14855         num_insn_codes.
14856         (main): Likewise.  Use get_num_insn_codes.
14857         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
14858
14859 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
14860
14861         PR middle-end/66311
14862         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
14863         is zero- rather than sign-extended.
14864
14865 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
14866
14867         * target-insns.def (can_extend): Delete.
14868
14869 2015-08-05  Richard Biener  <rguenther@suse.de>
14870
14871         PR tree-optimization/67121
14872         * tree-if-conv.c (combine_blocks): Clear range-info produced
14873         by stmts no longer executed conditionally.
14874
14875 2015-08-05  Nick Clifton  <nickc@redhat.com>
14876
14877         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
14878         to allow identical far pointers to remain.
14879
14880 2015-08-05  Richard Biener  <rguenther@suse.de>
14881
14882         PR middle-end/67120
14883         * match.pd: Compare address bases with == if they are decls
14884         or SSA names, not operand_equal_p.  Otherwise fail.
14885
14886 2015-08-05  Richard Biener  <rguenther@suse.de>
14887
14888         PR tree-optimization/67055
14889         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
14890         NULL gimple_block.
14891
14892         * g++.dg/torture/pr67055.C: New testcase.
14893
14894 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
14895
14896         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
14897         noavx512vl.
14898         (define_attr "enabled"): Handle avx521vl and noavx512vl.
14899         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
14900         AVX-512 alternative out of SSE.
14901         (define_insn "*vec_concatv2df"): Ditto.
14902
14903 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
14904
14905         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
14906         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
14907         CODE_FOR_avx_ptestv4di.
14908         * config/i386/sse.md (define_mode_iterator V_AVX): New.
14909         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
14910         (define_insn "avx_ptest256"): Merge this ...
14911         (define_insn "sse4_1_ptest"): And this ...
14912         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
14913
14914 2015-08-05  Richard Biener  <rguenther@suse.de>
14915
14916         PR tree-optimization/67109
14917         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
14918         against too big groups.  Print whether this is a load or store
14919         group.  Rename from ...
14920         (vect_analyze_group_access): ... this which is now a wrapper
14921         dissolving an invalid group.
14922         (vect_analyze_data_ref_accesses): Print whether this is a load
14923         or store group.
14924
14925 2015-08-05  Richard Biener  <rguenther@suse.de>
14926
14927         PR middle-end/67107
14928         * match.pd: Guard const_binop result checking against NULL_TREE
14929         result.
14930
14931 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
14932
14933         * cse.c (cse_insn): Restoring old behaviour for src_eqv
14934          when dest and value in the REG_EQUAL are same and dest
14935          is STRICT_LOW_PART.
14936
14937 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
14938
14939         * config/moxie/moxie.h (PRINT_OPERAND,
14940           PRINT_OPERAND_ADDRESS): Remove macros.
14941         * config/moxie/moxie-protos.h (moxie_print_operand,
14942           moxie_print_operand_address): Remove declaration.
14943         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
14944           TARGET_PRINT_OPERAND_ADDRESS): Define.
14945           (moxie_print_operand, moxie_print_operand_address): Make static.
14946
14947 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
14948
14949         PR target/66731
14950         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
14951         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
14952
14953 2015-08-04  Richard Biener  <rguenther@suse.de>
14954
14955         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
14956         generated code.
14957         (dt_operand::gen_gimple_expr): Adjust.
14958
14959 2015-08-04  Richard Biener  <rguenther@suse.de>
14960
14961         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
14962         bool compares on RHS.
14963         * match.pd: Add X ==/!= !X is false/true pattern.
14964
14965 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
14966
14967         * config/aarch64/aarch64.c: Change inner loop statement cost
14968         to be consistent with other targets.
14969
14970 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
14971
14972         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
14973         targets.
14974
14975 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
14976
14977         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
14978         (machine_function): Remove pseudos field.
14979
14980 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14981
14982         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
14983         Exit early and use target_option_current_node if processing current
14984         pragma.
14985
14986 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14987
14988         * doc/extend.texi (AArch64 Function Attributes): New node.
14989         (AArch64 Pragmas): Likewise.
14990
14991 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14992
14993         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
14994         Initialize simd builtins if TARGET_SIMD.
14995         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
14996         Make sure that the builtins are initialized only once no matter how
14997         many times the function is called.
14998         (aarch64_init_builtins): Unconditionally initialize crc builtins.
14999         (aarch64_relayout_simd_param): New function.
15000         (aarch64_simd_expand_args): Use above during argument expansion.
15001         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
15002         simd builtins if TARGET_SIMD.
15003         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
15004         prototype.
15005         (aarch64_relayout_simd_types): Likewise.
15006
15007 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15008
15009         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
15010         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
15011         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
15012         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
15013         static keyword.
15014         (aarch64_reset_previous_fndecl): New function.
15015         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
15016         the string.
15017         * config/aarch64/aarch64-c.c: New file.
15018         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
15019         Push and pop options at beginning and end.  Remove ifdef
15020         __ARM_FEATURE_CRC32.
15021         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
15022         Add pragma +nothing+simd and +nothing+crypto where appropriate.
15023         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
15024         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
15025         Define prototype.
15026         (aarch64_register_pragmas): Likewise.
15027         (aarch64_reset_previous_fndecl): Likewise.
15028         (aarch64_process_target_attr): Likewise.
15029         (aarch64_override_options_internal): Likewise.
15030
15031 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15032
15033         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
15034         New function.
15035         (aarch64_can_inline_p): Likewise.
15036         (TARGET_CAN_INLINE_P): Define.
15037
15038 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15039
15040         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
15041         Remove static.  Handle OPT_mgeneral_regs_only,
15042         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
15043         OPT_momit_leaf_frame_pointer.
15044         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
15045         (aarch64_attr_opt_type): New enum.
15046         (aarch64_attribute_info): New struct.
15047         (aarch64_handle_attr_arch): New function.
15048         (aarch64_handle_attr_cpu): Likewise.
15049         (aarch64_handle_attr_tune): Likewise.
15050         (aarch64_handle_attr_isa_flags): Likewise.
15051         (aarch64_attributes): New table.
15052         (aarch64_process_one_target_attr): New function.
15053         (num_occurences_in_str): Likewise.
15054         (aarch64_process_target_attr): Likewise.
15055         (aarch64_option_valid_attribute_p): Likewise.
15056         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
15057         * config/aarch64/aarch64-protos.h: Include input.h
15058         (aarch64_handle_option): Declare prototype.
15059
15060 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15061
15062         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
15063         * config/aarch64/aarch64.c: Include target-globals.h
15064         (aarch64_previous_fndecl): New variable.
15065         (aarch64_set_current_function): New function.
15066         (TARGET_SET_CURRENT_FUNCTION): Define.
15067
15068 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15069
15070         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
15071         (explicit_arch): Likewise.
15072         (x_aarch64_isa_flags): Likewise.
15073         (mgeneral-regs-only): Mark as Save.
15074         (mfix-cortex-a53-835769): Likewise.
15075         (mcmodel=): Likewise.
15076         (mstrict-align): Likewise.
15077         (momit-leaf-frame-pointer): Likewise.
15078         (mtls-dialect): Likewise.
15079         (master=): Likewise.
15080         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
15081         (aarch64_isa_flags): Remove extern declaration.
15082         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
15083         to indicate success or failure.
15084         (aarch64_validate_march): Likewise.
15085         (aarch64_validate_mtune): Likewise.
15086         (aarch64_isa_flags): Delete.
15087         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
15088         instead of aarch64_isa_flags.
15089         (aarch64_get_tune_cpu): New function.
15090         (aarch64_get_arch): Likewise.
15091         (aarch64_override_options): Use above and set up explicit_tune_core
15092         and explicit_arch.
15093         (aarch64_print_extension): Move earlier in file.  Add isa_flags
15094         argument and use that instead of the global aarch64_isa_flags.
15095         (aarch64_option_save): New function.
15096         (aarch64_option_restore): Likewise.
15097         (aarch64_option_print): Likewise.
15098         (aarch64_declare_function_name): Likewise.
15099         (aarch64_start_file): Delete.
15100         (TARGET_ASM_FILE_START): Do not define.
15101         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
15102         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
15103         Declare prototype.
15104
15105 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15106
15107         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
15108         flag_omit_leaf_frame_pointer to 2.
15109
15110 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15111
15112         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
15113         define to 0 or 1.
15114         (TARGET_FIX_ERR_A53_835769): New macro.
15115         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
15116         handling of opts->x_aarch64_fix_a53_err835769.
15117         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
15118         than aarch64_fix_a53_err835769.
15119         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
15120         * config/aarch64/aarch64-linux.h: Likewise.
15121
15122 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
15123
15124         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
15125         ix86_expand_int_movcc as boolean.
15126
15127 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15128
15129         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
15130         (aarch64_cpu_string): Likewise.
15131         (aarch64_tune_string): Likewise.
15132         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
15133         (aarch64_parse_extension): Return aarch64_parse_opt_result.
15134         Add extra argument to put result into.
15135         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
15136         (aarch64_parse_cpu): Add arguments to put results into. Return
15137         aarch64_parse_opt_result.
15138         (aarch64_parse_tune): Likewise.
15139         (aarch64_override_options_after_change_1): New function.
15140         (aarch64_override_options_internal): New function.
15141         (aarch64_validate_mcpu): Likewise.
15142         (aarch64_validate_march): Likewise.
15143         (aarch64_validate_mtune): Likewise.
15144         (aarch64_override_options): Update to reflect above changes.
15145         Move some logic into aarch64_override_options_internal.
15146         Initialize target_option_default_node and target_option_current_node.
15147         (aarch64_override_options_after_change): Move logic into
15148         aarch64_override_options_after_change_1 and call it with global_options.
15149         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
15150         flag values from that.
15151
15152 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15153
15154         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
15155         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
15156         * config/aarch64/aarch64.c (struct processor): Add arch field.
15157         (all_architectures): Handle above, move above all_cores.
15158         (all_cores): Handle above.
15159         (aarch64_parse_arch): Handle above changes.
15160         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
15161         above.  Update comments.
15162         (armv8.1-a): Likewise.
15163         * config/aarch64/aarch64-cores.def: Update according to above.
15164         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
15165         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
15166         aarch64_arch_driver_info.
15167
15168 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15169
15170         * config/aarch64/aarch64.c (struct processor): Add ident field.
15171         Rename core sched_core.
15172         (all_cores): Handle above changes.
15173         (all_architectures): Likewise.
15174         (aarch64_parse_arch): Likewise.
15175         (aarch64_override_options): Likewise.
15176
15177 2015-08-04  Richard Biener  <rguenther@suse.de>
15178
15179         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
15180         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
15181         comparisons embedded in [VEC_]COND_EXPRs.
15182
15183 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
15184
15185         * tree-if-conv.c: Fix various typos in comments.
15186         * tree-vect-stmts.c: Likewise.
15187
15188 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15189
15190         PR tree-optimization/67043
15191         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
15192         preheader after hoisting invariant in it.
15193         (find_defs): Force recomputation of all luids.
15194
15195 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
15196
15197         * config/rs6000/htm.md (tabort.): Restrict the source operand to
15198         using a base register.
15199
15200 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
15201
15202         * main.c (main): Pass in NULL for toplev's external_timer.
15203         * timevar.c: Include coretypes.h.
15204         (class timer::named_items): New.
15205         (timer::named_items::named_items): New.
15206         (timer::named_items::~named_items): New.
15207         (timer::named_items::push): New.
15208         (timer::named_items::pop): New.
15209         (timer::named_items::print): New.
15210         (timer::timer): Initialize field "m_jit_client_items".
15211         (timer::~timer): New.
15212         (timer::push): Move bulk of implementation to...
15213         (timer::push_internal): ...here.  New function.
15214         (timer::pop): Move bulk of implementation to...
15215         (timer::pop_internal): ...here.  New function.
15216         (timer::push_client_item): New.
15217         (timer::pop_client_item): New.
15218         (timer::print_row): New function, taken from timer::print.
15219         (timer::print): Print "GCC items" header if we also have client
15220         items.  Move row-printing to timer::print_row.  Print any client
15221         items.
15222         (timer::get_topmost_item_name): New method.
15223         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
15224         (TV_JIT_CLIENT_CODE): New.
15225         * timevar.h (timer::push_client_item): New declaration.
15226         (timer::pop_client_item): New declaration.
15227         (timer::get_topmost_item_name): New method.
15228         (timer::push_internal): New declaration.
15229         (timer::pop_internal): New declaration.
15230         (timer::print_row): New declaration.
15231         (timer::named_items): New declaration.
15232         (timer::m_jit_client_items): New field.
15233         (timer): Add friend class named_items.
15234         (auto_timevar::auto_timevar): Add timer param.
15235         (auto_timevar::~auto_timevar): Use field "m_timer".
15236         (auto_timevar::m_timer): New field.
15237         * toplev.c (initialize_rtl): Add g_timer as param when
15238         constructing auto_timevar instance.
15239         (toplev::toplev): Add "external_timer" param, and use it to
15240         initialize the "g_timer" global if non-NULL.
15241         (toplev::~toplev): If this created "g_timer", delete it.
15242         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
15243         with "external_timer" timer *.
15244
15245 2015-08-03  Alexander Basov <coohpt@gmail.com>
15246
15247         PR middle-end/64744
15248         PR middle-end/48470
15249         PR middle-end/43404
15250         * cfgexpand.c (expand_one_var): Add check if stack is going to
15251         be used in naked function.
15252         * expr.c (expand_expr_addr_expr_1): Remove excess checking
15253         whether expression should not reside in MEM.
15254         * function.c (use_register_for_decl): Do not use registers for
15255         non-register things (volatile, float, BLKMode) in naked functions.
15256
15257 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
15258
15259         PR target/67060
15260         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
15261         Adjust splits to match new pattern.
15262
15263 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
15264
15265         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
15266         (VEC_M): Likewise.
15267         (VEC_N): Likewise.
15268         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
15269         point in VSX registers.
15270
15271         * config/rs6000/constraints.md (wb constraint): Document unused
15272         w<x> constraint.
15273         (we constraint): Likewise.
15274         (wo constraint): Likewise.
15275         (wp constraint): New constraint for IEEE 128-bit floating point in
15276         VSX registers.
15277         (wq constraint): Likewise.
15278
15279         * config/rs6000/predicates.md (easy_fp_constant): Add support for
15280         IEEE 128-bit floating point in VSX registers.
15281         (easy_scalar_constant): Likewise.
15282
15283         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
15284         constraints (wp, wq) for IEEE 128-bit floating point in VSX
15285         registers.
15286         (rs6000_init_hard_regno_mode_ok): Likewise.
15287
15288         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
15289         floating point in VSX registers.
15290         (VSX_L): Likewise.
15291         (VSX_M): Likewise.
15292         (VSX_M2): Likewise.
15293         (VSm): Likewise.
15294         (VSs): Likewise.
15295         (VSr): Likewise.
15296         (VSa): Likewise.
15297         (VSv): Likewise.
15298         (vsx_le_permute_<mode>): Add support to properly swap bytes for
15299         IEEE 128-bit floating point in VSX registers on little endian.
15300         (vsx_le_undo_permute_<mode>): Likewise.
15301         (vsx_le_perm_load_<mode>): Likewise.
15302         (vsx_le_perm_store_<mode>): Likewise.
15303         (splitters for IEEE 128-bit fp moves): Likewise.
15304
15305         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
15306         wq constraints.
15307
15308         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
15309         floating point in VSX registers.
15310         (VM2): Likewise.
15311
15312         * doc/md.text (Machine Constraints): Document wp and wq
15313         constraints on PowerPC.
15314
15315 2015-08-03  Jeff Law  <law@redhat.com>
15316
15317         PR middle-end/66314
15318         PR gcov-profile/66899
15319         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
15320         iterate over the jump threading paths when an element in the
15321         jump threading paths array is eliminated.
15322
15323 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
15324
15325         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
15326
15327 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
15328
15329         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
15330         is_use_properly_guarded the variable def_preds.  Free its
15331         contents before returning.
15332         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
15333         (is_use_properly_guarded): Replace local variable def_preds with
15334         a parameter.  Adjust accordingly.  Only update *def_preds if it's
15335         the empty vector.
15336
15337 2015-08-03  Richard Biener  <rguenther@suse.de>
15338
15339         * genmatch.c (simplify::for_subst_vec): New member.
15340         (binary_ok): New helper for for lowering.
15341         (lower_for): Delay substituting operators into result expressions
15342         if we can merge the results eventually again.
15343         (capture_info::walk_result): Adjust for user_id appearing as
15344         result expression operator.
15345         (expr::gen_transform): Likewise.
15346         (dt_simplify::gen_1): Likewise.
15347         (dt_simplify::gen): Pass not substituted operators to tail
15348         functions or initialize local variable with it.
15349         (decision_tree::gen): Adjust function signature.
15350         * match.pd: Fix tests against global code and add default
15351         cases to switch stmts.
15352
15353 2015-08-03  Richard Biener  <rguenther@suse.de>
15354
15355         * genmatch.c (dt_simplify::gen): Create captures array
15356         with an initializer.
15357
15358 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15359
15360         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
15361         the host compiler is affected by placement new aliasing bug.
15362         * configure: Regenerate.
15363         * Makefile.in (ALIASING_FLAGS): New variable.
15364         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
15365
15366 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
15367
15368         PR target/66731
15369         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
15370         (negmulsf3_vfp): Likewise.
15371         (muldf3negdf_vfp): Disable for -frounding-math.
15372         (mulsf3negsf_vfp): Likewise.
15373         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
15374         fix MULT cost with -frounding-math.
15375
15376 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15377
15378         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
15379         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
15380         explicit.  Prefer to add the flag whenever possible.
15381         (noce_process_if_block): Try noce_try_store_flag_constants before
15382         noce_try_cmove.
15383
15384 2015-08-03  Richard Biener  <rguenther@suse.de>
15385
15386         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
15387         New hash-map to record equivalent transforms.
15388         (dt_node::analyze): Populate the equivalent transforms hash-map.
15389         (dt_simplify::info): Add reference to hash-map entry.
15390         (dt_simplify::gen): If we have split out a function for the
15391         transform, generate a call to it.
15392         (sinfo_hashmap_traits::hash): New function.
15393         (compare_op): New helper function for ...
15394         (sinfo_hashmap_traits::equal_keys): ... this new function.
15395         (decision_tree::gen): Split out common equivalent transforms
15396         into functions.
15397
15398 2015-08-03  Richard Biener  <rguenther@suse.de>
15399
15400         * gimple-fold.c (fold_gimple_assign): Remove folding of
15401         the comparison in COND_EXPRs.
15402
15403 2015-08-03  Richard Biener  <rguenther@suse.de>
15404
15405         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
15406         on the rhs of assignments first simplify the embedded
15407         GENERIC condition.
15408
15409 2015-08-03  Richard Biener  <rguenther@suse.de>
15410
15411         PR tree-optimization/66917
15412         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
15413         field.
15414         (DR_VECT_AUX): New macro.
15415         (set_dr_misalignment): Adjust.
15416         (dr_misalignment): Likewise.
15417         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
15418         Compute whether the base is at least element aligned.
15419         * tree-vect-stmts.c (ensure_base_align): Adjust.
15420         (vectorizable_store): If the base is not element aligned
15421         preserve alignment of the original access if misalignment is unknown.
15422         (vectorizable_load): Likewise.
15423
15424 2015-08-02  Martin Sebor  <msebor@redhat.com>
15425
15426         * c-family/c.opt (-Wframe-address): New warning option.
15427         * doc/invoke.texi (Wframe-address): Document it.
15428         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
15429         Clarify possible effects of calling the functions with non-zero
15430         arguments and mention -Wframe-address.
15431         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
15432
15433 2015-08-01  Michael Collison  <michael.collison@linaro.org
15434             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15435
15436         * config/arm/arm.md (*arm_smin_cmp): New pattern.
15437         (*arm_umin_cmp): Likewise.
15438
15439 2015-08-01  Caroline Tice  <cmtice@google.com>
15440
15441         PR 66521
15442         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
15443         global variables.
15444         (vtbl_find_mangled_name):  New function.
15445         (vtbl_register_mangled_name):  New function.
15446         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
15447         mangled name in mangled name vectors.
15448         (find_or_create_vtbl_map_node):  Ditto.
15449         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
15450         update recursion_depth on function entry; pass it to every recursive
15451         call; automatically exit if depth > 25 (give up looking at that point).
15452         (verify_bb_vtables):  Initialize recursion_depth and pass it to
15453         var_is_used_for_virtual_call_p.
15454         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
15455         global variable decls.
15456         (vtbl_register_mangled_name): New extern function decl.
15457
15458 2015-08-01  Tom de Vries  <tom@codesourcery.com>
15459
15460         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
15461         function.
15462         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
15463         Declare.
15464         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
15465         operation_no_trapping_overflow.  Allow non-overflow operations.
15466         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
15467         operations.
15468
15469 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
15470
15471         PR target/67049
15472         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
15473
15474 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15475
15476         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
15477         Enable for TARGET_32BIT.
15478         (*if_move_neg): Likewise.
15479
15480 2015-07-31  Nick Clifton  <nickc@redhat.com>
15481
15482         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
15483         Returns true for __model__.
15484         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
15485
15486 2015-07-31  Alan Modra  <amodra@gmail.com>
15487
15488         PR target/66870
15489         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
15490         (rs6000_emit_prologue): Set it.
15491         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
15492
15493 2015-07-31  Richard Biener  <rguenther@suse.de>
15494
15495         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
15496         -> X == (C1 ^ C2) which is already implemented in match.pd.
15497         Remove redundant dispatching to fold_relational_const.
15498         Move unordered self and NaN compares ...
15499         * match.pd: ... as patterns here.  Remove some stray captures
15500         and add a comment.
15501
15502 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
15503
15504         * config/i386/i386.c
15505         (bdesc_special_args): Convert mask type from signed to unsigned for
15506         masked builtins.
15507         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
15508         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
15509         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
15510         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
15511         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
15512         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
15513         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
15514         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
15515         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
15516         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
15517         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
15518         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
15519         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
15520         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
15521         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
15522         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
15523         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
15524         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
15525         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
15526         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
15527         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
15528         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
15529         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
15530         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
15531         * config/i386/i386-builtin-types.def
15532         (V16QI_FTYPE_V16SI): Remove.
15533         (V8DF_FTYPE_V8SI): Ditto.
15534         (V8HI_FTYPE_V8DI): Ditto.
15535         (V8SI_FTYPE_V8DI): Ditto.
15536         (V8SF_FTYPE_V8DF): Ditto.
15537         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
15538         (V16HI_FTYPE_V16SI): Ditto.
15539         (V16SF_FTYPE_V16HI): Ditto.
15540         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
15541         (V16SF_FTYPE_V16SI): Ditto.
15542         (V4DI_FTYPE_V4DI): Ditto.
15543         (V16SI_FTYPE_V16SF): Ditto.
15544         (V16SF_FTYPE_FLOAT): Ditto.
15545         (V8DF_FTYPE_DOUBLE): Ditto.
15546         (V8DI_FTYPE_INT64): Ditto.
15547         (V8DI_FTYPE_V4DI): Ditto.
15548         (V16QI_FTYPE_V8DI): Ditto.
15549         (UINT_FTYPE_V4SF): Ditto.
15550         (UINT64_FTYPE_V4SF): Ditto.
15551         (UINT_FTYPE_V2DF): Ditto.
15552         (UINT64_FTYPE_V2DF): Ditto.
15553         (V16SI_FTYPE_V16SI): Ditto.
15554         (V8DI_FTYPE_V8DI): Ditto.
15555         (V16SI_FTYPE_PV4SI): Ditto.
15556         (V16SF_FTYPE_PV4SF): Ditto.
15557         (V8DI_FTYPE_PV2DI): Ditto.
15558         (V8DF_FTYPE_PV2DF): Ditto.
15559         (V4DI_FTYPE_PV2DI): Ditto.
15560         (V4DF_FTYPE_PV2DF): Ditto.
15561         (V16SI_FTYPE_PV2SI): Ditto.
15562         (V16SF_FTYPE_PV2SF): Ditto.
15563         (V8DI_FTYPE_PV4DI): Ditto.
15564         (V8DF_FTYPE_PV4DF): Ditto.
15565         (V8SF_FTYPE_FLOAT): Ditto.
15566         (V4SF_FTYPE_FLOAT): Ditto.
15567         (V4DF_FTYPE_DOUBLE): Ditto.
15568         (V8SF_FTYPE_PV4SF): Ditto.
15569         (V8SI_FTYPE_PV4SI): Ditto.
15570         (V4SI_FTYPE_PV2SI): Ditto.
15571         (V8SF_FTYPE_PV2SF): Ditto.
15572         (V8SI_FTYPE_PV2SI): Ditto.
15573         (V16SF_FTYPE_PV8SF): Ditto.
15574         (V16SI_FTYPE_PV8SI): Ditto.
15575         (V8DI_FTYPE_V8SF): Ditto.
15576         (V4DI_FTYPE_V4SF): Ditto.
15577         (V2DI_FTYPE_V4SF): Ditto.
15578         (V64QI_FTYPE_QI): Ditto.
15579         (V32HI_FTYPE_HI): Ditto.
15580         (V8UHI_FTYPE_V8UHI): Ditto.
15581         (V16UHI_FTYPE_V16UHI): Ditto.
15582         (V32UHI_FTYPE_V32UHI): Ditto.
15583         (V2UDI_FTYPE_V2UDI): Ditto.
15584         (V4UDI_FTYPE_V4UDI): Ditto.
15585         (V8UDI_FTYPE_V8UDI): Ditto.
15586         (V4USI_FTYPE_V4USI): Ditto.
15587         (V8USI_FTYPE_V8USI): Ditto.
15588         (V16USI_FTYPE_V16USI): Ditto.
15589         (V2DF_FTYPE_V2DF_UINT64): Ditto.
15590         (V2DI_FTYPE_V2DF_V2DF): Ditto.
15591         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
15592         (V8DF_FTYPE_V8DF_V8DI): Ditto.
15593         (V4SF_FTYPE_V4SF_UINT64): Ditto.
15594         (V4SI_FTYPE_V4SF_V4SF): Ditto.
15595         (V16SF_FTYPE_V16SF_V16SI): Ditto.
15596         (V64QI_FTYPE_V32HI_V32HI): Ditto.
15597         (V32HI_FTYPE_V16SI_V16SI): Ditto.
15598         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
15599         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
15600         (V32HI_FTYPE_V64QI_V64QI): Ditto.
15601         (V32HI_FTYPE_V32HI_V32HI): Ditto.
15602         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
15603         (V16SI_FTYPE_V16SI_V4SI): Ditto.
15604         (V16SI_FTYPE_V16SI_V16SI): Ditto.
15605         (V16SI_FTYPE_V32HI_V32HI): Ditto.
15606         (V16SI_FTYPE_V16SI_SI): Ditto.
15607         (V8DI_FTYPE_V8DI_V8DI): Ditto.
15608         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
15609         (V8DI_FTYPE_V16SI_V16SI): Ditto.
15610         (V8DI_FTYPE_V8DI_V2DI): Ditto.
15611         (QI_FTYPE_QI): Ditto.
15612         (SI_FTYPE_SI): Ditto.
15613         (DI_FTYPE_DI): Ditto.
15614         (QI_FTYPE_QI_QI): Ditto.
15615         (QI_FTYPE_QI_INT): Ditto.
15616         (HI_FTYPE_HI_INT): Ditto.
15617         (SI_FTYPE_SI_INT): Ditto.
15618         (DI_FTYPE_DI_INT): Ditto.
15619         (HI_FTYPE_V16QI_V16QI): Ditto.
15620         (SI_FTYPE_V32QI_V32QI): Ditto.
15621         (DI_FTYPE_V64QI_V64QI): Ditto.
15622         (QI_FTYPE_V8HI_V8HI): Ditto.
15623         (HI_FTYPE_V16HI_V16HI): Ditto.
15624         (SI_FTYPE_V32HI_V32HI): Ditto.
15625         (QI_FTYPE_V4SI_V4SI): Ditto.
15626         (QI_FTYPE_V8SI_V8SI): Ditto.
15627         (QI_FTYPE_V2DI_V2DI): Ditto.
15628         (QI_FTYPE_V4DI_V4DI): Ditto.
15629         (QI_FTYPE_V8DI_V8DI): Ditto.
15630         (HI_FTYPE_V16SI_V16SI): Ditto.
15631         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
15632         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
15633         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
15634         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
15635         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
15636         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
15637         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
15638         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
15639         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
15640         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
15641         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
15642         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
15643         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
15644         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
15645         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
15646         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
15647         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
15648         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
15649         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
15650         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
15651         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
15652         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
15653         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
15654         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
15655         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
15656         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
15657         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
15658         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
15659         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
15660         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
15661         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
15662         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
15663         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
15664         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
15665         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
15666         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
15667         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
15668         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
15669         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
15670         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
15671         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
15672         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
15673         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
15674         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
15675         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
15676         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
15677         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
15678         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
15679         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
15680         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
15681         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
15682         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
15683         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
15684         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
15685         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
15686         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
15687         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
15688         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
15689         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
15690         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
15691         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
15692         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
15693         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
15694         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
15695         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
15696         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
15697         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
15698         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
15699         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
15700         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
15701         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
15702         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
15703         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
15704         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
15705         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
15706         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
15707         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
15708         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
15709         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
15710         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
15711         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
15712         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
15713         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
15714         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
15715         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
15716         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
15717         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
15718         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
15719         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
15720         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
15721         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
15722         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
15723         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
15724         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
15725         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
15726         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
15727         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
15728         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
15729         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
15730         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
15731         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
15732         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
15733         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
15734         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
15735         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
15736         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
15737         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
15738         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
15739         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
15740         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
15741         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
15742         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
15743         (HI_FTYPE_HI): Ditto.
15744         (HI_FTYPE_V16QI): Ditto.
15745         (SI_FTYPE_V32QI): Ditto.
15746         (DI_FTYPE_V64QI): Ditto.
15747         (QI_FTYPE_V8HI): Ditto.
15748         (HI_FTYPE_V16HI): Ditto.
15749         (SI_FTYPE_V32HI): Ditto.
15750         (QI_FTYPE_V4SI): Ditto.
15751         (QI_FTYPE_V8SI): Ditto.
15752         (HI_FTYPE_V16SI): Ditto.
15753         (QI_FTYPE_V2DI): Ditto.
15754         (QI_FTYPE_V4DI): Ditto.
15755         (QI_FTYPE_V8DI): Ditto.
15756         (V16QI_FTYPE_HI): Ditto.
15757         (V32QI_FTYPE_SI): Ditto.
15758         (V64QI_FTYPE_DI): Ditto.
15759         (V8HI_FTYPE_QI): Ditto.
15760         (V16HI_FTYPE_HI): Ditto.
15761         (V32HI_FTYPE_SI): Ditto.
15762         (V4SI_FTYPE_QI): Ditto.
15763         (V4SI_FTYPE_HI): Ditto.
15764         (V8SI_FTYPE_QI): Ditto.
15765         (V8SI_FTYPE_HI): Ditto.
15766         (V2DI_FTYPE_QI): Ditto.
15767         (V4DI_FTYPE_QI): Ditto.
15768         (HI_FTYPE_HI_HI): Ditto.
15769         (SI_FTYPE_SI_SI): Ditto.
15770         (DI_FTYPE_DI_DI): Ditto.
15771         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
15772         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
15773         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
15774         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
15775         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
15776         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
15777         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
15778         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
15779         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
15780         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
15781         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
15782         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
15783         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
15784         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
15785         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
15786         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
15787         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
15788         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
15789         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
15790         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
15791         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
15792         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
15793         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
15794         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
15795         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
15796         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
15797         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
15798         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
15799         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
15800         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
15801         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
15802         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
15803         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
15804         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
15805         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
15806         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
15807         (V16SI_FTYPE_HI): Ditto.
15808         (V8DI_FTYPE_QI): Ditto.
15809         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
15810         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
15811         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
15812         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
15813         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
15814         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
15815         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
15816         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
15817         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
15818         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
15819         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
15820         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
15821         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
15822         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
15823         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
15824         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
15825         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
15826         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
15827         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
15828         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
15829         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
15830         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
15831         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
15832         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
15833         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
15834         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
15835         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
15836         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
15837         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
15838         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
15839         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
15840         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
15841         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
15842         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
15843         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
15844         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
15845         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
15846         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
15847         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
15848         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
15849         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
15850         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
15851         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
15852         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
15853         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
15854         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
15855         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
15856         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
15857         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
15858         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
15859         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
15860         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
15861         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
15862         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
15863         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
15864         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
15865         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
15866         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
15867         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
15868         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
15869         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
15870         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
15871         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
15872         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
15873         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
15874         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
15875         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
15876         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
15877         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
15878         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
15879         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
15880         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
15881         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
15882         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
15883         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
15884         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
15885         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
15886         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
15887         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
15888         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
15889         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
15890         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
15891         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
15892         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
15893         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
15894         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
15895         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
15896         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
15897         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
15898         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
15899         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
15900         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
15901         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
15902         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
15903         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
15904         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
15905         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
15906         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
15907         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
15908         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
15909         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
15910         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
15911         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
15912         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
15913         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
15914         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
15915         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
15916         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
15917         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
15918         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
15919         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
15920         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
15921         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
15922         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
15923         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
15924         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
15925         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
15926         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
15927         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
15928         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
15929         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
15930         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
15931         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
15932         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
15933         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
15934         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
15935         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
15936         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
15937         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
15938         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
15939         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
15940         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
15941         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
15942         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
15943         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
15944         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
15945         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
15946         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
15947         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
15948         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
15949         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
15950         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
15951         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
15952         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
15953         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
15954         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
15955         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
15956         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
15957         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
15958         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
15959         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
15960         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
15961         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
15962         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
15963         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
15964         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
15965         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
15966         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
15967         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
15968         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
15969         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
15970         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
15971         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
15972         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
15973         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
15974         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
15975         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
15976         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
15977         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
15978         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
15979         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
15980         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
15981         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
15982         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
15983         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
15984         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
15985         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
15986         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
15987         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
15988         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
15989         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
15990         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
15991         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
15992         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
15993         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
15994         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
15995         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
15996         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
15997         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
15998         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
15999         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
16000         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
16001         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
16002         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
16003         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
16004         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
16005         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
16006         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
16007         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
16008         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
16009         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
16010         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
16011         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
16012         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
16013         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
16014         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
16015         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
16016         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
16017         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
16018         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
16019         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
16020         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
16021         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
16022         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
16023         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
16024         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
16025         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
16026         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
16027         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
16028         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
16029         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
16030         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
16031         (QI_FTYPE_V8DF_INT_QI): Ditto.
16032         (QI_FTYPE_V4DF_INT_QI): Ditto.
16033         (QI_FTYPE_V2DF_INT_QI): Ditto.
16034         (HI_FTYPE_V16SF_INT_HI): Ditto.
16035         (QI_FTYPE_V8SF_INT_QI): Ditto.
16036         (QI_FTYPE_V4SF_INT_QI): Ditto.
16037         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
16038
16039 2015-07-31  Richard Biener  <rguenther@suse.de>
16040
16041         * gimple-fold.c (fold_gimple_assign): Remove folding of
16042         GIMPLE_BINARY_RHS.
16043
16044 2015-07-31  Tom de Vries  <tom@codesourcery.com>
16045
16046         PR tree-optimization/66846
16047         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
16048         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
16049         (expand_omp_target) [ENABLE_CHECKING]: Same.
16050         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
16051         cfun if !LOOPS_NEED_FIXUP.
16052         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
16053         that omp_for already has its own loop struct.
16054         * tree-parloops.c (create_phi_for_local_result)
16055         (create_call_for_reduction): Handle simple latch bb.
16056         (create_parallel_loop): Add simple latch bb to preserve
16057         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
16058         (gen_parallel_loop): Remove call to cancel_loop_tree.
16059         (parallelize_loops): Skip loops that are inner loops of parallelized
16060         loops.
16061         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
16062         verify_loop_structure.
16063
16064 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
16065
16066         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
16067         * config/v850/v850.md (RV_REGNUM): New constants.
16068         * config/v850/v850.c (v850_libcall_value): New functions.
16069         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
16070         (TARGET_LIBCALL_VALUE): Define.
16071
16072 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
16073
16074         * rtl.h (lowpart_subreg): Move in file.
16075         * loop-iv.c (lowpart_subreg): Move to...
16076         * simplify-rtx.c (lowpart_subreg): ...here.
16077           (simplify_binary_operation_1): Use lowpart_subreg instead of
16078           simplify_gen_subreg.
16079         * expr.c (expand_expr_real_2): Ditto.
16080         * emit-rtl.c (gen_lowpart_common): Ditto.
16081         * combine.c (gen_lowpart_for_combine): Ditto.
16082         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
16083           expand_debug_source_expr): Ditto.
16084
16085 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
16086
16087         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
16088         (expand_builtin_atomic_clear): Remove support for atomic_clear
16089         pattern.
16090
16091 2015-07-30  Richard Biener  <rguenther@suse.de>
16092
16093         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
16094         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
16095         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
16096         redundant operand canonicalization.
16097
16098 2015-07-30  David Sherwood  <david.sherwood@arm.com>
16099
16100         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
16101         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
16102         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
16103         * config/arm/arm.c (neon_valid_immediate): Likewise.
16104         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
16105         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
16106         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
16107         (expand_vec_perm_vpshufb2_vpermq): Likewise.
16108         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
16109         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
16110         * config/i386/sse.md
16111         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
16112         (*ssse3_palignr<mode>_perm): Likewise.
16113         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
16114         * config/spu/spu.c (arith_immediate_p): Likewise.
16115         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
16116         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
16117
16118 2015-07-30  Richard Biener  <rguenther@suse.de>
16119
16120         * genmatch.c (decision_tree::gen_gimple): Merge with ...
16121         (decision_tree::gen_generic): ... this into ...
16122         (decision_tree::gen): ... this.
16123         (main): Adjust callers.
16124
16125 2015-07-30  Richard Biener  <rguenther@suse.de>
16126
16127         * genmatch.c (verbose): New global.
16128         (warning_at): Add overload with source_location.
16129         (capture_info::capture_info): Add bool whether generating gimple
16130         or generic.  Add gimple member.
16131         (capture_info::cinfo): Add capture member.
16132         (capture_info::walk_match): Record capture.  Warn on
16133         non-captured leafs.
16134         (capture_info::walk_c_expr): Add more fragments captures cannot
16135         escape through.  Warn on escaped captures.
16136         (dt_simplify::gen_1): Warn on operands we force to have no
16137         side-effects.
16138         (main): Initialize verbose.
16139         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
16140
16141 2015-07-30  Richard Biener  <rguenther@suse.de>
16142
16143         PR middle-end/67053
16144         * match.pd: Allow both operands to independently have conversion
16145         when simplifying compares of addresses.
16146
16147 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
16148
16149         PR target/66217
16150         PR target/67045
16151         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
16152         around those cases that need one.
16153
16154 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
16155
16156         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
16157
16158 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
16159
16160         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
16161         New.  Copied from config/i386/gnu-user.h.
16162         (ASM_COMMENT_START): Likewise.
16163         (DBX_REGISTER_NUMBER): Likewise.
16164
16165 2015-07-29  Richard Biener  <rguenther@suse.de>
16166
16167         * gimple-fold.c (fold_gimple_cond): Remove.
16168         (fold_stmt_1): Do not call it.
16169
16170 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
16171
16172         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
16173         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
16174
16175         * config/aarch64/aarch64-modes.def: Add HFmode.
16176
16177         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
16178         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
16179
16180         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
16181         aarch64_promoted_type): New.
16182
16183         (aarch64_float_const_representable_p): Disable HFmode.
16184         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
16185         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
16186         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
16187
16188         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
16189         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
16190
16191         * config/aarch64/iterators.md (GPF_F16): New.
16192
16193 2015-07-29  Richard Biener  <rguenther@suse.de>
16194
16195         * match.pd: Merge address comparison patterns and make them
16196         handle some more cases.
16197
16198 2015-07-29  Richard Biener  <rguenther@suse.de>
16199
16200         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
16201         (parser::parse_capture): Add bool argument on whether to reject
16202         unknown captures.
16203         (parser::parse_expr): Adjust.
16204         (parser::parse_op): Likewise.
16205         (parser::parse_pattern): Likewise.
16206
16207 2015-07-29  Richard Biener  <rguenther@suse.de>
16208
16209         * gimple-fold.c (has_use_on_stmt): New function.
16210         (replace_stmt_with_simplification): Use it to allow
16211         abnormals originally referenced in the stmt.
16212         (fold_stmt_1): Canonicalize operand order.
16213
16214 2015-07-28  David Sherwood  <david.sherwood@arm.com>
16215
16216         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
16217         GET_MODE_INNER unconditionally.
16218         * config/spu/spu.c (arith_immediate_p): Likewise.
16219         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
16220         * expmed.c (synth_mult): Remove check for VOIDmode result from
16221         GET_MODE_INNER.
16222         (expand_mult_const): Likewise.
16223         * fold-const.c (fold_binary_loc): Replace call to element_precision
16224         with call to GET_MODE_PRECISION.
16225         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
16226         m->name.
16227         (emit_mode_inner): Likewise.
16228         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
16229         result check.
16230         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
16231         (GET_MODE_UNIT_PRECISION): Likewise.
16232         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
16233         * simplify-rtx.c (simplify_immed_subreg): Likewise.
16234         * stor-layout.c (bitwise_type_for_mode): Update assert.
16235         (element_precision): Remove.
16236
16237 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
16238
16239         * target-insns.def (reload_load_address): New targetm instruction
16240         pattern.
16241         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
16242
16243 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
16244
16245         * target-insns.def (atomic_test_and_set): New targetm instruction
16246         pattern.
16247         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
16248         HAVE_*/gen_* interface.
16249
16250 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
16251
16252         * target-insns.def (can_extend, ptr_extend): New targetm instruction
16253         patterns.
16254         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
16255         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
16256         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
16257         * rtlanal.c (nonzero_bits1): Likewise.
16258         (num_sign_bit_copies1): Likewise.
16259
16260 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
16261
16262         * target-insns.def (eh_return): New targetm instruction pattern.
16263         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
16264         interface.
16265         * function.c (thread_prologue_and_epilogue_insns): Remove
16266         preprocessor condition.
16267
16268 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
16269
16270         * target-insns.def (indirect_jump): New targetm instruction pattern.
16271         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
16272         interface.
16273
16274 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
16275
16276         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
16277         instead of nonimmediate_operand.  Remove C condiition.
16278
16279 2015-07-28  Richard Biener  <rguenther@suse.de>
16280
16281         * match.pd: Add more simplification of address comparisons.
16282
16283 2015-07-28  Richard Biener  <rguenther@suse.de>
16284
16285         * match.pd: Re-order two cases in comparison with max/min
16286         value simplification to make it apply for bools.
16287
16288 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16289
16290         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
16291         Handle simple SIGN_EXTEND or ZERO_EXTEND.
16292         (aarch64_rtx_costs): Properly strip extend or extract before
16293         passing down to rtx costs again.
16294
16295 2015-07-28  Nick Clifton  <nickc@redhat.com>
16296
16297         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
16298         Optimizes the case where -mes0 is active and a constant symbolic
16299         address is used.
16300         * config/rl78/rl78-protos.h: Prototype the new function.
16301         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
16302
16303 2015-07-28  Tom de Vries  <tom@codesourcery.com>
16304
16305         * tree-parloops.c (reduc_stmt_res): New function.
16306         (initialize_reductions, add_field_for_reduction)
16307         (create_phi_for_local_result, create_loads_for_reductions)
16308         (create_stores_for_reduction, build_new_reduction): Handle case that
16309         reduc_stmt is a phi.
16310         (gather_scalar_reductions): Allow double_reduc reductions.
16311
16312 2015-07-28  Richard Biener  <rguenther@suse.de>
16313
16314         * fold-const.c (fold_comparison): Remove equality folding
16315         of decl addresses ...
16316         * match.pd: ... here and merge with existing pattern.
16317
16318 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16319
16320         PR tree-optimization/66828
16321         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
16322         from int64_t to uint64_t.
16323
16324 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16325
16326         * opts-common.c (read_cmdline_option): List DriverOnly enum values
16327         as valid only in the error message of the driver, not in the
16328         messages of the language compilers.
16329
16330 2015-07-27  Tom de Vries  <tom@codesourcery.com>
16331
16332         * tree-parloops.c (gather_scalar_reductions): Simplify function
16333         structure.
16334
16335 2015-07-27  Marek Polacek  <polacek@redhat.com>
16336
16337         * ipa-devirt.c (types_same_for_odr): Fix typo.
16338
16339 2015-07-27  Jason Merrill  <jason@redhat.com>
16340
16341         PR debug/66468
16342         * dwarf2out.c (gen_inlined_subroutine_die): Check
16343         cgraph_function_possibly_inlined_p.
16344
16345 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
16346
16347         * config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
16348         Place integer variant first.
16349         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
16350
16351 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
16352
16353         PR/63870
16354         * config/arm/arm-builtins.c (enum arm_builtins):
16355         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
16356         (ARM_BUILTIN_NEON_BASE): Rename macro to....
16357         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
16358         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
16359         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
16360
16361 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
16362
16363         PR/63870
16364         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
16365         Add qualifier_lane_index.
16366         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
16367         (arm_getlane_qualifiers): Use qualifier_lane_index.
16368         (arm_lanemac_qualifiers): Rename to...
16369         (arm_mac_n_qualifiers): ...this.
16370         (LANEMAC_QUALIFIERS): Rename to...
16371         (MAC_N_QUALIFIERS): ...this.
16372         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
16373         (arm_setlane_qualifiers): Use qualifier_lane_index.
16374         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
16375         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
16376         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
16377         (arm_expand_neon_builtin): Handle qualifier_lane_index.
16378
16379         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
16380         * config/arm/arm.c (bounds_check): Likewise, improve error message.
16381         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
16382         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
16383         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
16384         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
16385         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
16386         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
16387         qualifiers to TERNOP_IMM.
16388         (vdup_lane): Change qualifiers to GETLANE.
16389         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
16390         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
16391         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
16392         vqdmlsl_n): Change qualifiers to MAC_N.
16393
16394         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
16395         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
16396         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
16397         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
16398         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
16399         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
16400         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
16401         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
16402         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
16403         Remove call to neon_lane_bounds.
16404
16405 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
16406
16407         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
16408         Place integer variant first.
16409
16410 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
16411
16412         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
16413         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
16414         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
16415         for armv6kz targets.
16416         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
16417         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
16418         (FL_FOR_ARCH6ZK): Remove.
16419         (FL_FOR_ARCH6KZ): New.
16420         (arm_arch6zk): New declaration.
16421         * config/arm/arm-tables.opt: Regenerate.
16422         * config/arm/arm.c (arm_arch6kz): New.
16423         (arm_option_override): Set arm_arch6kz.
16424         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
16425         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
16426         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
16427
16428 2015-07-27  Marek Polacek  <polacek@redhat.com>
16429
16430         PR c++/66555
16431         PR c/54979
16432         * doc/invoke.texi: Document -Wtautological-compare.
16433
16434 2015-07-27  Richard Biener  <rguenther@suse.de>
16435
16436         * genmatch.c (decision_tree::gen_gimple): Split out large
16437         subtrees into separate functions.
16438         (decision_tree::gen_generic): Likewise.
16439
16440 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
16441
16442         * config/alpha/alpha.c: Use SUBREG_P predicate.
16443         * config/alpha/predicates.md: Ditto.
16444
16445 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16446
16447         * config.host (s390*-*-*): Include driver-native.c only when
16448         building with s390* as host *and* target.
16449
16450 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
16451
16452         PR target/66930
16453         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
16454         T bit register modified_between_p check.
16455
16456 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
16457
16458         * config/i386/i386.c: Use SUBREG_P predicate.
16459         * config/i386/i386.md: Ditto.
16460         * config/i386/sse.md: Ditto.
16461         * config/i386/predicates.md: Ditto.
16462
16463 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
16464
16465         PR target/67004
16466         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
16467         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
16468
16469 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
16470
16471         * Makefile.in: Remove use of TREEBROWSER.
16472         * config.in: Regenerated.
16473         * configure: Regenerated.
16474         * configure.ac: Remove definition of TREEBROWSER.
16475         * tree-browser.c: Removed.
16476         * tree-browser.def: Removed.
16477
16478 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
16479
16480         * graphite-scop-detection.c: Include gimple-pretty-print.h.
16481         (stmt_simple_for_scop_p): Print when a stmt is not handled in
16482         Graphite.
16483         (scopdet_basic_block_info): Print when a loop or bb cannot be
16484         represented in Graphite.
16485
16486 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
16487
16488         PR target/66648
16489         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
16490         execution guard when min_size is less than size_needed.
16491
16492 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
16493
16494         * doc/install.texi: Document supported versions of ISL.
16495
16496 2015-07-25  Jeff Law  <law@redhat.com>
16497
16498         Revert:
16499         PR lto/66752
16500         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
16501         unable to find X NE 0 in the tables, return X as the simplified
16502         condition.
16503         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
16504         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
16505         to VISISTED_BBS.  */
16506         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
16507         after removing the control flow statement and unnecessary edges.
16508
16509 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
16510
16511         Revert:
16512         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
16513
16514         PR rtl-optimization/64164
16515         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
16516         * tree-ssa-copyrename.c: Removed.
16517         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
16518         -ftree-coalesce-vars.
16519         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
16520         * common.opt (ftree-copyrename): Ignore.
16521         (ftree-coalesce-inlined-vars): Likewise.
16522         * doc/invoke.texi: Remove the ignored options above.
16523         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
16524         * tree-ssa-coalesce.h: ... here.
16525         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
16526         headers required by it.
16527         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
16528         across variables when flag_tree_coalesce_vars.  Check register
16529         use and promoted modes to allow coalescing.  Moved to
16530         tree-ssa-coalesce.c.
16531         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
16532         with its member functions to tree-ssa-coalesce.c.
16533         (var_map_base_init): Likewise.  Renamed to
16534         compute_samebase_partition_bases.
16535         (partition_view_normal): Drop want_bases parameter.
16536         (partition_view_bitmap): Likewise.
16537         * tree-ssa-live.h: Adjust declarations.
16538         * tree-ssa-coalesce.c: Include explow.h.
16539         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
16540         default defs at the entry point.
16541         (dump_part_var_map): New.
16542         (compute_optimized_partition_bases): New, called by...
16543         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
16544         of compute_samebase_partition_bases.  Adjust.
16545         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
16546         * cfgexpand.c (leader_merge): New.
16547         (get_rtl_for_parm_ssa_default_def): New.
16548         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
16549         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
16550         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
16551         redundant MEM attr setting.
16552         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
16553         from...
16554         (expand_one_stack_var): ... this.  New wrapper to check and
16555         skip already expanded SSA partitions.
16556         (record_alignment_for_reg_var): New, factored out of...
16557         (expand_one_var): ... this.
16558         (expand_one_ssa_partition): New.
16559         (adjust_one_expanded_partition_var): New.
16560         (expand_one_register_var): Check and skip already expanded SSA
16561         partitions.
16562         (expand_used_vars): Don't create DECLs for anonymous SSA
16563         names.  Expand all SSA partitions, then adjust all SSA names.
16564         (pass::execute): Replace the loops that set
16565         SA.partition_to_pseudo from partition leaders and cleared
16566         DECL_RTL for multi-location variables, and that which used to
16567         rename vars and set attrs, with one that clears DECL_RTL and
16568         checks that PARMs and RESULTs default_defs match DECL_RTL.
16569         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
16570         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
16571         * explow.c (promote_ssa_mode): New.
16572         * explow.h (promote_ssa_mode): Declare.
16573         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
16574         * function.c: Include cfgexpand.h.
16575         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
16576         (use_register_for_parm_decl): Wrapper for the above to
16577         special-case the result_ptr.
16578         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
16579         (split_complex_args): Take assign_parm_data_all argument.
16580         Pass it to rtl_for_parm.  Set up rtl and context for split
16581         args.
16582         (assign_parms_augmented_arg_list): Adjust.
16583         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
16584         multiple locations.  Recognize split complex args.
16585         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
16586         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
16587         (assign_parm_setup_block): Prefer SSA-assigned location.
16588         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
16589         if stack_parm is NULL.
16590         (assign_parm_setup_stack): Prefer SSA-assigned location.
16591         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
16592         rtl before testing for pointer bounds.  Special-case result_ptr.
16593         (expand_function_start): Maybe reset DECL_RTL of result.
16594         Prefer SSA-assigned location for result and static chain.
16595         Factor out DECL_RESULT and SET_DECL_RTL.
16596         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
16597         anonymous SSA names.  Use promote_ssa_mode.
16598         (get_temp_reg): Likewise.
16599         (remove_ssa_form): Adjust.
16600         * stor-layout.c (layout_decl): Don't set mem attributes of
16601         non-MEMs.
16602         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
16603         and get its reg_usage for reg invalidation.
16604         (compute_bb_dataflow): Pass it insn.
16605         (emit_notes_in_bb): Likewise.
16606
16607 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
16608
16609         * config/i386/i386.c (ix86_va_start): Remove
16610         unneeded !TARGET_64BIT check.
16611         (ix86_gimplify_va_arg): Ditto.
16612
16613 2015-07-24  Tom de Vries  <tom@codesourcery.com>
16614
16615         * graphite-sese-to-poly.c (build_poly_scop): Always call
16616         rewrite_commutative_reductions_out_of_ssa.
16617
16618 2015-07-24  Tom de Vries  <tom@codesourcery.com>
16619
16620         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
16621         flag_associative_math to FLOAT_TYPE_P.  Honour
16622         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
16623
16624 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16625
16626         PR c++/64079
16627         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
16628         and "%qD" in warning_at instead of "%q+D" in warning.
16629
16630 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
16631
16632         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
16633         (ix86_function_abi): Cleanup.
16634
16635 2015-07-24  Michael Darling  <darlingm@gmail.com>
16636
16637         PR other/66259
16638         * acinclude.m4: Reflects renaming of configure.in to configure.ac
16639         * configure: Likewise
16640         * configure.ac: Likewise
16641         * doc/install.texi: Likewise
16642         * doc/tm.texi: Likewise
16643         * doc/tm.texi.in: Likewise
16644
16645 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16646
16647         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
16648         manually swapping values.
16649         * cse.c (fold_rtx): Likewise.
16650         * lra-eliminations.c (form_sum): Likewise.
16651
16652 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
16653
16654         PR target/64003
16655         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
16656         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
16657         (*jcc_1, *jcc_2, jump, simple_return_internal)
16658         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
16659         Set length_nobnd attribute instead of length attribute.
16660         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
16661         (length_nobnd): Remove attribute.
16662         (length): Remove length_nobnd processing.
16663
16664 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
16665
16666         * gimplify.c (omp_default_clause): New function.  Reorganize flow
16667         for clarity. Broken out of ...
16668         (omp_notice_variable): ... here.
16669
16670 2015-07-24  Gary Funck  <gary@intrepid.com>
16671
16672         PR middle-end/66984
16673         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
16674         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
16675
16676 2015-07-24  Tom de Vries  <tom@codesourcery.com>
16677
16678         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
16679         exit-first loop transform.
16680
16681 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
16682
16683         PR 66714
16684         * tree-cfg.c (struct replace_decls_d): New struct.
16685         (replace_block_vars_by_duplicates_1): New function.
16686         (replace_block_vars_by_duplicates): Use it to replace the decls
16687         in the value exprs by duplicates.
16688
16689 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
16690
16691         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
16692         -shared, -symbolic, -rdynamic.
16693
16694 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
16695
16696         PR target/65711
16697         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
16698         -dynamic-linker within %{!static %{!shared, and -rdynamic within
16699         %{!static.
16700
16701 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
16702
16703         PR ipa/66566
16704         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
16705         edge summary is available.
16706
16707 2015-07-24  Richard Biener  <rguenther@suse.de>
16708
16709         * genmatch.c (struct dt_node): Add statistic fields.
16710         (dt_node::analyze): New method.
16711         (decision_tree::gen_gimple): Call analyze on the root node
16712         and print statistics to stderr.
16713         (decision_tree::gen_generic): Likewise.
16714
16715 2015-07-24  Richard Biener  <rguenther@suse.de>
16716
16717         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
16718         against the highest or lowest possible integer ...
16719         * match.pd: ... as patterns here.
16720
16721 2015-07-24  Richard Biener  <rguenther@suse.de>
16722
16723         * genmatch.c (struct capture_info): Add same_as field.
16724         (capture_info::capture_info): Initialize same_as.
16725         (capture_info::walk_match): Compute same_as.
16726         (capture_info::walk_result): Compute stuff for the leader.
16727         (capture_info::walk_c_expr): Likewise.
16728         (dt_simplify::gen_1): Only look at leaders when deciding
16729         to force no side-effects or emit side-effects of omitted operands.
16730
16731 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16732
16733         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
16734         reg note to the GPR -> FPR save instructions.
16735
16736 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16737
16738         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
16739         cheaper.
16740         (s390_expand_insv): Don't generate risbg pattern for constant zero
16741         sources.
16742         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
16743         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
16744         splitters.
16745
16746 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16747
16748         * config/s390/s390.c (s390_reorg): Clean up handling of processors
16749         with
16750         -mtune=
16751         (s390_issue_rate): Likewise.
16752         (s390_sched_reorder): Likewise.
16753         (s390_sched_variable_issue): Likewise.
16754         (s390_loop_unroll_adjust): Likewise.
16755         (s390_option_override):  Likewise.
16756
16757 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16758
16759         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
16760         processor capabilities with -march=native.
16761         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
16762         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
16763         (S390_TARGET_BITS_STRING): Macro to simplify specs.
16764
16765 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16766
16767         * config/s390/s390.c (s390_issue_rate): Handle
16768         PROCESSOR_2094_Z9_EC.
16769         (s390_option_override): Likewise.
16770         (s390_adjust_priority): Likewise.
16771
16772 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16773
16774         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
16775         when cross compiling.
16776
16777 2015-07-24  Richard Biener  <rguenther@suse.de>
16778
16779         * fold-const.c (maybe_canonicalize_comparison_1): Move
16780         A code CST canonicalization ...
16781         * match.pd: ... to a pattern here.
16782
16783 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
16784
16785         Revert:
16786         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
16787         PR target/63521
16788         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
16789         (HONOR_REG_ALLOC_ORDER): Define.
16790
16791 2015-07-24  Richard Biener  <rguenther@suse.de>
16792
16793         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
16794         * fold-const.c (fold_comparison): Move parameter does not
16795         alias &local simplification ...
16796         * match.pd: ... as a pattern here.
16797
16798 2015-07-24  Richard Biener  <rguenther@suse.de>
16799
16800         * gimple-fold.c (replace_stmt_with_simplification): Special-case
16801         valueizing call operands.
16802         * gimple-match-head.c (maybe_push_res_to_seq): Take
16803         number of call arguments from ops array.
16804         (do_valueize): New function.
16805         (gimple_simplify): Return true if valueization changed
16806         any operand even if the result didn't simplify further.
16807
16808 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
16809
16810         PR middle-end/25530
16811         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
16812
16813 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
16814
16815         PR middle-end/25529
16816         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
16817
16818 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
16819
16820         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
16821         instruction.
16822
16823 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
16824
16825         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
16826         clean up.
16827
16828 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
16829
16830         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
16831         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
16832         targets here.
16833         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
16834         ms_va_list_type_node initialization.
16835
16836 2015-07-23  Jeff Law  <law@redhat.com>
16837
16838         PR lto/66752
16839         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
16840         unable to find X NE 0 in the tables, return X as the simplified
16841         condition.
16842         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
16843         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
16844         to VISISTED_BBS.  */
16845         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
16846         after removing the control flow statement and unnecessary edges.
16847
16848 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16849
16850         * tree-pass.h (get_current_pass_name): Removed.
16851
16852 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
16853
16854         PR rtl-optimization/64164
16855         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
16856         * tree-ssa-copyrename.c: Removed.
16857         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
16858         -ftree-coalesce-vars.
16859         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
16860         * common.opt (ftree-copyrename): Ignore.
16861         (ftree-coalesce-inlined-vars): Likewise.
16862         * doc/invoke.texi: Remove the ignored options above.
16863         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
16864         * tree-ssa-coalesce.h: ... here.
16865         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
16866         headers required by it.
16867         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
16868         across variables when flag_tree_coalesce_vars.  Check register
16869         use and promoted modes to allow coalescing.  Moved to
16870         tree-ssa-coalesce.c.
16871         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
16872         with its member functions to tree-ssa-coalesce.c.
16873         (var_map_base_init): Likewise.  Renamed to
16874         compute_samebase_partition_bases.
16875         (partition_view_normal): Drop want_bases parameter.
16876         (partition_view_bitmap): Likewise.
16877         * tree-ssa-live.h: Adjust declarations.
16878         * tree-ssa-coalesce.c: Include explow.h.
16879         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
16880         default defs at the entry point.
16881         (dump_part_var_map): New.
16882         (compute_optimized_partition_bases): New, called by...
16883         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
16884         of compute_samebase_partition_bases.  Adjust.
16885         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
16886         * cfgexpand.c (leader_merge): New.
16887         (get_rtl_for_parm_ssa_default_def): New.
16888         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
16889         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
16890         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
16891         redundant MEM attr setting.
16892         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
16893         from...
16894         (expand_one_stack_var): ... this.  New wrapper to check and
16895         skip already expanded SSA partitions.
16896         (record_alignment_for_reg_var): New, factored out of...
16897         (expand_one_var): ... this.
16898         (expand_one_ssa_partition): New.
16899         (adjust_one_expanded_partition_var): New.
16900         (expand_one_register_var): Check and skip already expanded SSA
16901         partitions.
16902         (expand_used_vars): Don't create DECLs for anonymous SSA
16903         names.  Expand all SSA partitions, then adjust all SSA names.
16904         (pass::execute): Replace the loops that set
16905         SA.partition_to_pseudo from partition leaders and cleared
16906         DECL_RTL for multi-location variables, and that which used to
16907         rename vars and set attrs, with one that clears DECL_RTL and
16908         checks that PARMs and RESULTs default_defs match DECL_RTL.
16909         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
16910         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
16911         * explow.c (promote_ssa_mode): New.
16912         * explow.h (promote_ssa_mode): Declare.
16913         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
16914         * function.c: Include cfgexpand.h.
16915         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
16916         (use_register_for_parm_decl): Wrapper for the above to
16917         special-case the result_ptr.
16918         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
16919         (split_complex_args): Take assign_parm_data_all argument.
16920         Pass it to rtl_for_parm.  Set up rtl and context for split
16921         args.
16922         (assign_parms_augmented_arg_list): Adjust.
16923         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
16924         multiple locations.  Recognize split complex args.
16925         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
16926         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
16927         (assign_parm_setup_block): Prefer SSA-assigned location.
16928         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
16929         if stack_parm is NULL.
16930         (assign_parm_setup_stack): Prefer SSA-assigned location.
16931         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
16932         rtl before testing for pointer bounds.  Special-case result_ptr.
16933         (expand_function_start): Maybe reset DECL_RTL of result.
16934         Prefer SSA-assigned location for result and static chain.
16935         Factor out DECL_RESULT and SET_DECL_RTL.
16936         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
16937         anonymous SSA names.  Use promote_ssa_mode.
16938         (get_temp_reg): Likewise.
16939         (remove_ssa_form): Adjust.
16940         * stor-layout.c (layout_decl): Don't set mem attributes of
16941         non-MEMs.
16942         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
16943         and get its reg_usage for reg invalidation.
16944         (compute_bb_dataflow): Pass it insn.
16945         (emit_notes_in_bb): Likewise.
16946
16947 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
16948
16949         PR target/66217
16950         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
16951         prototype.
16952         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
16953         (rs6000_emit_2insn_and): Handle dot forms.
16954         * config/rs6000/rs6000.md (and<mode>3): Adjust.
16955         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
16956         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
16957
16958 2015-07-23  Richard Biener  <rguenther@suse.de>
16959
16960         * generic-match-head.c: Include cgraph.h.
16961         * gimple-match-head.c: Likewise.
16962         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
16963         SSA names.
16964         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
16965         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
16966         pattern.
16967
16968 2015-07-23  Richard Biener  <rguenther@suse.de>
16969
16970         * gimple-fold.c (fold_gimple_cond): Do not require folding
16971         results to pass valid_gimple_rhs_p.
16972         * tree-cfg.h (fold_cond_expr_cond): Remove.
16973         * tree-cfg.c (fold_cond_expr_cond): Likewise.
16974         (make_edges): Do not call it.
16975         * tree-inline.c (tree_function_versioning): Likewise.
16976
16977 2015-07-23  Tom de Vries  <tom@codesourcery.com>
16978
16979         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
16980         vect_force_simple_reduction.
16981         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
16982         (vect_is_simple_reduction_1): Add and handle
16983         need_wrapping_integral_overflow parameter.
16984         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
16985         need_wrapping_integral_overflow parameter.
16986         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
16987         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
16988         decl.
16989
16990 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
16991
16992         PR tree-optimization/66926,66951
16993         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
16994         INNER_LOOP and fix up condition for renaming virtual operands.
16995
16996 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16997
16998         * combine.c (try_combine): Use std::swap instead of manually
16999         swapping.
17000
17001 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
17002
17003         * config/mips/i6400.md: New file.
17004         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
17005         (mips64r6): Likewise.
17006         (i6400): Define.
17007         * config/mips/mips-tables.opt: Regenerate.
17008         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
17009         (mips_issue_rate): Add support for i6400.
17010         (mips_multipass_dfa_lookahead): Likewise.
17011         * config/mips/mips.h (TUNE_I6400): Define.
17012         * config/mips/mips.md: Include i6400.md.
17013         (processor): Add i6400.
17014         * doc/invoke.texi (-march=@var{arch}): Add i6400.
17015
17016 2015-07-23  Richard Biener  <rguenther@suse.de>
17017
17018         PR middle-end/66916
17019         * match.pd: Guard widen and sign-change comparison simplification
17020         with single_use.
17021
17022 2015-07-23  Richard Biener  <rguenther@suse.de>
17023
17024         PR tree-optimization/66945
17025         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
17026         ::before_dom_children): Force the propagators idea of
17027         non-executable edges to materialize, not what the folder
17028         chooses.
17029
17030 2015-07-23  Richard Biener  <rguenther@suse.de>
17031
17032         * gimple.h (gimple_cond_make_false): Use 0 != 0.
17033         (gimple_cond_make_true): Use 1 != 0.
17034
17035 2015-07-22  DJ Delorie  <dj@redhat.com>
17036
17037         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
17038         slashes.
17039
17040         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
17041         (ashrhi3): Likewise.
17042         (lshrhi3): Likewise.
17043         (movhi): Take advantage of zero-extend to load small constants.
17044         (movpsi): Likewise.
17045         (and<mode>3): Likewise.
17046         (zero_extendqihi2): Likewise.
17047         (zero_extendqisi2): New.
17048         * config/msp430/constraints.md (N,O): New.
17049         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
17050
17051 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
17052
17053         PR target/66954
17054         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
17055         to enum feature_priority and feature_list.
17056         (fold_builtin_cpu): Add F_AES to enum processor_features
17057         and isa_names_table.
17058
17059 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
17060
17061         PR driver/66737
17062         * config/i386/linux-common.h (MPX_SPEC): Use linker option
17063         for 64bit target only.
17064
17065 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17066
17067         * config/nvptx/nvptx.c: Expand some comments.
17068
17069 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
17070
17071         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
17072         (cortex_a53_advsimd): ...This.
17073
17074 2015-07-22  Richard Biener  <rguenther@suse.de>
17075
17076         * genmatch.c (expr::gen_transform): Clarify error message
17077         and display location.
17078
17079 2015-07-22  Richard Biener  <rguenther@suse.de>
17080
17081         * genmatch.c (struct operand): Add location member.
17082         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
17083         constructors.
17084         (struct simplify): Remove match_location and result_location
17085         members.
17086         (elsehwere): Adjust.
17087
17088 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
17089
17090         * config/mips/m5100.md: New file.
17091         * config/mips/mips-cpus.def (m5100, m5101): Define.
17092         * config/mips/mips-tables.opt: Regenerate.
17093         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
17094         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
17095         -march=m5101 to -mips32r5.
17096         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
17097         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
17098         !-msoft-float.
17099         * config/mips/mips.md: Include m5100.md.
17100         (processor): Add m5100.
17101         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
17102
17103 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
17104
17105         * config/mips/mips-cpus.def (interaptiv): Define.
17106         * config/mips/mips-tables.opt: Regenerate.
17107         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
17108         -mips32r2.
17109         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
17110         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
17111
17112 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
17113
17114         PR target/63521
17115         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
17116         (HONOR_REG_ALLOC_ORDER): Define.
17117
17118 2015-07-22  Richard Biener  <rguenther@suse.de>
17119
17120         PR tree-optimization/66952
17121         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
17122         blocks we end up executing unconditionally reset all SSA
17123         info such as range and alignment.
17124         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
17125         * tree-ssanames.c (reset_flow_sensitive_info): New function.
17126
17127 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
17128
17129         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
17130         typo in attribute.
17131
17132 2015-07-22  Richard Biener  <rguenther@suse.de>
17133
17134         * genmatch.c (parser::parse_result): Properly handle
17135         match with result operands and conditions.
17136
17137 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
17138
17139         PR target/63870
17140         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
17141         Add qualifier_struct_load_store_lane_index.
17142         (aarch64_types_loadstruct_lane_qualifiers): Use
17143         qualifier_struct_load_store_lane_index for lane index argument for
17144         last argument.
17145         (aarch64_types_storestruct_lane_qualifiers): Ditto.
17146         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
17147         (aarch64_simd_expand_args): Add new argument describing mode of
17148         builtin. Check lane bounds for arguments with
17149         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
17150         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
17151         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
17152         (aarch64_simd_expand_builtin): Handle arguments with
17153         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
17154         aarch64_simd_expand_args.
17155         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
17156         vst[234]_lane with BUILTIN_VALLDIF.
17157         * config/aarch64/aarch64-simd.md:
17158         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
17159         endianness reversal on lane index.
17160         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
17161         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
17162         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
17163         (vec_store_lanesci_lane<mode>): Ditto.
17164         (vec_store_lanesxi_lane<mode>): Ditto.
17165         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
17166         reversal of lane index.
17167         (aarch64_ld3_lane<mode>): Ditto.
17168         (aarch64_ld4_lane<mode>): Ditto.
17169         (aarch64_st2_lane<mode>): Ditto.
17170         (aarch64_st3_lane<mode>): Ditto.
17171         (aarch64_st4_lane<mode>): Ditto.
17172         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
17173         to qmode. Add new mode parameter. Update uses.
17174         (__LD3_LANE_FUNC): Ditto.
17175         (__LD4_LANE_FUNC): Ditto.
17176         (__ST2_LANE_FUNC): Ditto.
17177         (__ST3_LANE_FUNC): Ditto.
17178         (__ST4_LANE_FUNC): Ditto.
17179
17180 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
17181
17182         * doc/invoke.texi (Language Independent Options): Rename node to
17183         Diagnostic Message Formatting Options.
17184
17185 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
17186
17187         PR ipa/66424.
17188         * lra-remat.c (operand_to_remat): Prevent using insns with input
17189         subregs processed separately by IRA.
17190
17191 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
17192
17193         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
17194         straight loops.
17195         (single_imm_use): Check for iterator node.
17196         (num_imm_uses): Likewise.
17197         * tree-ssa-operands.c (has_zero_uses_1): Delete.
17198         (single_imm_use_1): Check for iterator node.
17199
17200 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
17201             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
17202
17203         * configure.ac: Add check for new options in isl-0.15.
17204         * config.in, configure: Rebuilt.
17205         * graphite-blocking.c: Include <isl/constraint.h>
17206         * graphite-interchange.c,  graphite-poly.c: Likewise.
17207         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
17208         * graphite.c: Likewise.
17209         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
17210         <isl/union_set.h>.
17211         * graphite-dependences.c: Include <isl/constraint.h>.
17212         (max_number_of_out_dimensions): Returns isl_stat.
17213         (extend_schedule_1): Likewise
17214         (extend_schedule): Corresponding changes.
17215         * graphite-optimize-isl.c: Include <isl/constraint.h> and
17216         <isl/union_set.h>.
17217         (getSingleMap): Change return type of isl_stat.
17218         (optimize_isl): Conditionally use
17219         isl_options_set_schedule_serialize_sccs.
17220         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
17221         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
17222
17223 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
17224
17225         PR target/66956
17226         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
17227         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
17228
17229 2015-07-21  Richard Biener  <rguenther@suse.de>
17230
17231         PR tree-optimization/66948
17232         * genmatch.c (capture_info::walk_match): Also recurse to
17233         captures.  Properly compute expr state from captures of
17234         captures.
17235         * match.pd: Add single-use guards to
17236         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
17237
17238 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
17239
17240         * config/nvptx/mkoffload.c (process): Add static destructor call.
17241
17242 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17243
17244         PR middle-end/66915
17245         * match.pd (A - B -> A + (-B)): Don't allow folding
17246         when type if a fixed-point type.
17247
17248 2015-07-20  DJ Delorie  <dj@redhat.com>
17249
17250         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
17251         (iorqi3_real): Likewise for set1.
17252
17253 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
17254
17255         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
17256         for !TARGET_64BIT.
17257
17258 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
17259
17260         * graphite-isl-ast-to-gimple.c:
17261         Refactor so that each function can access 'region'. This will help
17262         maintain a parameter rename_map within a region.
17263
17264 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
17265
17266         * config/rs6000/rs6000.md (*lt0_disi): New.
17267
17268 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
17269
17270         PR target/66217
17271         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
17272         "available letters" comment.
17273         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
17274         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
17275         and_2rld_operand):  Delete.
17276         (and_operand): Adjust.
17277         (rotate_mask_operator): New.
17278         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
17279         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
17280         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
17281         extract_ME): Delete.
17282         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
17283         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
17284         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
17285         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
17286         rs6000_emit_2insn_and): New.
17287         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
17288         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
17289         includes_rldic_lshift_p, includes_rldicr_lshift_p,
17290         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
17291         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
17292         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
17293         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
17294         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
17295         rs6000_emit_2insn_and): New.
17296         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
17297         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
17298         handling.
17299         <NOT>: Don't fall through to next case.
17300         <AND>: Handle the various rotate-and-mask cases directly.
17301         <IOR>: Always cost as one insn.
17302         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
17303         (and<mode>3): Adjust expander for the new patterns.
17304         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
17305         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
17306         (*and<mode>3_imm_dot_shifted): New.
17307         (*and<mode>3_mask): Delete, rewrite as ...
17308         (and<mode>3_mask): ... New.
17309         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
17310         (andsi3_internal0_nomc): Delete.
17311         (*andsi3_internal6): Delete.
17312         (*and<mode>3_2insn): New.
17313         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
17314         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
17315         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
17316         *insvdi_internal3): Delete.
17317         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
17318         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
17319         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
17320         *ior<mode>_mask): New.
17321         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
17322         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
17323         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
17324         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
17325         Delete.
17326         (ashr<mode>3): Delete expander.
17327         (*ashr<mode>3): Rename to ...
17328         (ashr<mode>3): ... This.
17329         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
17330         (*rotldi3_internal4, *rotldi3_internal5 and split,
17331         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
17332         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
17333         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
17334         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
17335         (splitter for loading a mask): Adjust.
17336         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
17337
17338 2015-07-20  Marek Polacek  <polacek@redhat.com>
17339
17340         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
17341         output_add_clobbers, output_added_clobbers_hard_reg_p,
17342         gen_rtx_scratch): Remove declarations.
17343
17344 2015-07-20  Marek Polacek  <polacek@redhat.com>
17345
17346         PR c++/55095
17347         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
17348
17349 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17350
17351         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
17352         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
17353
17354 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17355
17356         * combine.c (combine_simplify_rtx): Move simplification step
17357         before various transformations/substitutions.
17358
17359 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
17360
17361         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
17362         (struct int_traits): Likewise.
17363
17364 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17365
17366         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
17367         function to vmsdbgout_function_decl.
17368
17369 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
17370
17371         PR target/66922
17372         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
17373         from misaligned positions.
17374         (ix86_expand_pinsr): Reject insertions to misaligned positions.
17375
17376 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
17377
17378         PR middle-end/46851
17379         PR middle-end/60340
17380         * Makefile.in: Removed omega.o.
17381         * common.opt: Document flag fcheck-data-deps as deprecated.
17382         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
17383         its associated params: omega-max-vars, omega-max-geqs,
17384         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
17385         omega-max-keys, omega-eliminate-redundant-constraints.
17386         * doc/loop.texi: Remove all the section on Omega.
17387         * graphite-blocking.c: Include missing params.h: it used to be
17388         included through tree-data-ref.h and omega.h.
17389         * graphite-isl-ast-to-gimple.c: Same.
17390         * graphite-optimize-isl.c: Same.
17391         * graphite-sese-to-poly.c: Same.
17392         * graphite.c: Same.
17393         * omega.c: Remove.
17394         * omega.h: Remove.
17395         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
17396         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
17397         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
17398         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
17399         * passes.def: Remove pass_check_data_deps.
17400         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
17401         (dump_conflict_function): Same.
17402         (dump_subscript): Same.
17403         (print_direction_vector): Same.
17404         (print_dir_vectors): Same.
17405         (print_lambda_vector): Same.
17406         (print_dist_vectors): Same.
17407         (dump_data_dependence_relation): Same.
17408         (dump_data_dependence_relations): Same.
17409         (dump_dist_dir_vectors): Same.
17410         (dump_ddrs): Same.
17411         (init_omega_eq_with_af): Removed.
17412         (omega_extract_distance_vectors): Removed.
17413         (omega_setup_subscript): Removed.
17414         (init_omega_for_ddr_1): Removed.
17415         (init_omega_for_ddr): Removed.
17416         (ddr_consistent_p): Removed.
17417         (compute_affine_dependence): Do not use omega to check data
17418         dependences.
17419         (compute_data_dependences_for_bb): Removed.
17420         (analyze_all_data_dependences): Removed.
17421         (tree_check_data_deps): Removed.
17422         * tree-data-ref.h: Do not include omega.h.
17423         (compute_data_dependences_for_bb): Removed.
17424         (tree_check_data_deps): Removed.
17425         * tree-ssa-loop.c (pass_check_data_deps): Removed.
17426         (make_pass_check_data_deps): Removed.
17427         * tree-ssa-phiopt.c: Include params.h.
17428         * tree-vect-data-refs.c: Same.
17429         * tree-vect-slp.c: Same.
17430
17431 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
17432
17433         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
17434         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
17435         (mem->fpreg splitters): Ditto.
17436         (general_operand->nonimmediate_operand splitter): Use explicit modes.
17437         Disable DFmode for TARGET_64BIT.
17438
17439 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
17440
17441         PR target/66906
17442         * config/i386/i386.c (ix86_expand_prologue): Replicate static
17443         chain on the stack.
17444
17445 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
17446
17447         * config/nvptx/mkoffload.c (process): Constify host data.
17448         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
17449         Constify host data.
17450         (generate_host_descr_file): Likewise.
17451
17452 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
17453             Sebastian Pop  <s.pop@samsung.com>
17454
17455         PR middle-end/61929
17456         * graphite-dependences.c (add_pdr_constraints): Renamed
17457         pdr->extent to pdr->subscript_sizes.
17458         * graphite-interchange.c (build_linearized_memory_access): Add
17459         back all gcc_assert's that the "isl_int to isl_val conversion"
17460         patch has removed.  Refactored.
17461         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
17462         * graphite-poly.c (new_poly_dr): Same.
17463         (free_poly_dr): Same.
17464         * graphite-poly.h (struct poly_dr): Same.
17465         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
17466         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
17467         * graphite-scop-detection.h: Fix space.
17468         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
17469         back all gcc_assert's removed by a previous patch.
17470         (wrap): Remove the_isl_ctx global variable that the same patch has
17471         added.
17472         (build_loop_iteration_domains): Same.
17473         (add_param_constraints): Same.
17474         (pdr_add_data_dimensions): Same.  Refactored.
17475         (build_poly_dr): Renamed extent to subscript_sizes.
17476
17477 2015-07-17  Marek Polacek  <polacek@redhat.com>
17478
17479         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
17480         * match.pd: ... here.
17481
17482 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
17483
17484         * config/nvptx/mkoffload.c (process): Constify target data.
17485         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
17486         Constify target data.
17487         (generate_target_offloadend_file): Likewise.
17488
17489 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
17490
17491         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
17492         to allow renaming of PHI arguments on edges incoming from outer
17493         loop header, add corresponding check before start PHI iterator.
17494         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
17495         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
17496         with true force_vectorize.  Set-up dominator for outer loop too.
17497         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
17498         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
17499         was marked with force_vectorize and has restricted cfg.
17500         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
17501         inner loop.
17502         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
17503         do peeling for outer loops.
17504
17505 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
17506             Matthias Klose  <doko@ubuntu.com>
17507
17508         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
17509         build-sysroot, sysroot from the `Miscenalleous configure options' to
17510         the `Directories' section and strip trailing `/' from with_sysroot.
17511         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
17512         * configure: Regenerated.
17513
17514 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
17515
17516         PR target/66824
17517         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
17518         (TARGET_HARD_DF_REGS): Ditto.
17519         (TARGET_HARD_XF_REGS): Ditto.
17520         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
17521         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
17522         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
17523         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
17524         (*movsf_internal): Add alternatives 16 and 17. Enable
17525         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
17526
17527 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
17528
17529         PR rtl-optimization/66891
17530         * calls.c (expand_call): Wrap precompute_register_parameters with
17531         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
17532
17533 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
17534
17535         * config/nvptx/mkoffload.c (process): Constify mapping variables.
17536         Define target data struct and initialize it.
17537
17538 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
17539
17540         PR rtl-optimization/66626
17541         * ira.h (emit-rtl.h): Include.
17542         (non_spilled_static_chain_regno_p): New.
17543         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
17544         unless it is non spilled static chain pseudo.
17545         (assign_hard_rego): Spill memory profitable allocno unless it is
17546         non spilled static chain pseudo.
17547         (allocno_spill_priority_compare): Put non spilled static chain
17548         pseudo at the end of sorted array.
17549         (improve_allocation): Do nothing if we have static chain and
17550         non-local goto.
17551         (allocno__priority_compare_func): Put non spilled static chain
17552         pseudo at the beginning of sorted array.
17553         (move_spill_restore): Ignore non spilled static chain pseudo.
17554         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
17555         to non spilled static chain pseudo.
17556         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
17557         pseudo at the beginning of sorted array.
17558         (spill_for): Spill non spilled static chain pseudo last.
17559         * lra-constraints.c (lra_constraints): Remove static chain pseudo
17560         check for equivalence.
17561
17562 2015-07-16  Martin Liska  <mliska@suse.cz>
17563
17564         PR ipa/66896.
17565         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
17566         dst_ctx if it does not exist.
17567
17568 2015-07-16  Martin Liska  <mliska@suse.cz>
17569
17570         * hash-set.h (remove): New function.
17571         (iterator): New iteration class for hash_set.
17572
17573 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
17574
17575         * genattrtab.c (make_canonical): Add a file_location parameter.
17576         Use fatal_at rather than fatal.
17577         (get_attr_value): Likewise.  Update call to make_canonical.
17578         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
17579         (make_internal_attr): Update calls accordingly.
17580
17581 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
17582
17583         * read-md.h (message_with_line, error_with_line): Delete.
17584         * read-md.c (message_with_line, error_with_line): Delete.
17585         * gensupport.h: Include read-md.h.
17586         (md_rtx_info): New structure.
17587         (read_md_rtx): Use it.  Return a bool success value.
17588         * gensupport.c (read_md_rtx): Likewise.
17589         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
17590         (main): Update after interface changes.
17591         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
17592         (main): Update after interface changes.
17593         * genattrtab.c (insn_code_number): Delete.
17594         (optimize_attrs): Add a max_insn_code parameter and use it instead
17595         of insn_code_number.
17596         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
17597         Use *_at rather than *_with_line functions.
17598         (gen_insn): Likewise.
17599         (gen_delay): Likewise.
17600         (gen_insn_reserv): Likewise.
17601         (gen_bypass): Take an md_rtx_info rather than an rtx.
17602         (main): Update after interface changes.  Use a local max_insn_code
17603         variable instead of insn_code_number.
17604         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
17605         an rtx.  Use fatal_at rather than fatal.
17606         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
17607         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
17608         (gen_absence_set, gen_final_absence_set, gen_automaton)
17609         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
17610         (main): Update after interface changes.
17611         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
17612         and code number.
17613         (main): Update after interface changes.
17614         * genconditions.c (main): Use new read_md_rtx interface.
17615         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
17616         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
17617         (main): Update after interface changes.
17618         * genemit.c (insn_code_number, insn_index_number): Delete.
17619         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
17620         Use fatal_at rather than fatal.
17621         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
17622         rather than fatal.
17623         (gen_split): Likewise.
17624         (main): Update after interface changes.
17625         * genextract.c (line_no): Delete.
17626         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
17627         Update call to walk_rtx.
17628         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
17629         rather than message_with_line.
17630         (walk_rtx): Add an md_rtx_info argument.  Update call to
17631         VEC_safe_set_locstr.
17632         (main): Update after interface changes.
17633         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
17634         and lineno.  Use error_at rather than separate message_with_line
17635         calls and have_error assignments.
17636         (main): Update after interface changes.
17637         * genmddump.c (main): Use new read_md_rtx interface.
17638         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
17639         (main): Update after interface changes.
17640         * genoutput.c (next_code_number): Delete.
17641         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
17642         (gen_peephole, gen_expand, gen_split): Likewise.
17643         (note_constraint): Likewise.  Use *_at rather than *_with_line
17644         functions.
17645         (main): Update after interface changes.
17646         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
17647         rtx and lineno.
17648         (main): Update after interface changes.
17649         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
17650         than an rtx and lineno.
17651         (process_define_constraint): Likewise.
17652         (process_define_register_constraint): Likewise.
17653         (main): Update after interface changes.
17654         * genrecog.c (next_insn_code, pattern_lineno): Delete.
17655         (validate_pattern): Replace top-level rtx with an md_rtx_info.
17656         Use *_at rather than *_with_line functions.
17657         (match_pattern_2): Likewise.
17658         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
17659         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
17660         Use *_at rather than *_with_line functions.
17661         * gentarget-def.c (add_insn): New function.
17662         (main): Use it.  Use new read_md_rtx interface.
17663
17664 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
17665
17666         * gensupport.h (compute_test_codes): Take a file_location rather
17667         than a line number.
17668         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
17669         rather than *_with_line functions.
17670         (process_define_predicate): Update call to compute_test_codes.
17671         * genpreds.c (validate_exp): Take a file_location rather than a
17672         line number.  Use *_at functions rather than *_with_line functions.
17673         (process_define_predicate): Update call to validate_exp.
17674         (constraint_data): Replace lineno field with a file_location.
17675         (add_constraint): Take a file_location rather than a line number.
17676         Use *_at functions rather than *_with_line functions.  Fix error
17677         message for address constraints.  Update after changes to
17678         validate_exp, constraint_data and compute_test_codes.
17679         (process_define_constraint): Update accordingly.
17680         (process_define_register_constraint): Likewise.
17681
17682 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
17683
17684         * genoutput.c (data): Use a file_location to record the source
17685         position.
17686         (nothing): Delete.
17687         (idata, idata_end): Remove initialization.
17688         (constraint_data): Replace lineno with a file_location.
17689         (output_insn_data): Update after changes to data.
17690         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
17691         (scan_operands): Likewise, using *_at rather than *_with_line
17692         functions.
17693         (process_template): Likewise.
17694         (validate_insn_alternatives): Likewise.
17695         (validate_insn_operands): Likewise.
17696         (validate_optab_operands): Likewise.
17697         (init_insn_for_nothing): Initialize idata and idata_end.
17698         (note_constraint): Update after changes to constraint_data,
17699         using at rather than with_line functions.
17700         (mdep_constraint_len): Take a file_location rather than a
17701         line number.  Use at rather than with_line functions.
17702
17703 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
17704
17705         * read-md.h (fatal_at): Declare.
17706         * read-md.c (fatal_at): New function.
17707         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
17708         to record the source position.
17709         (check_attr_test): Take a file_location instead of a line number.
17710         Use fatal_at instead of fatal.
17711         (check_attr_value): Update after above changes, using "at"
17712         rather than "with_line" reporting functions.
17713         (convert_set_attr_alternative): Likewise.
17714         (gen_attr): Likewise.
17715         (check_defs): Likewise.  Don't assign to read_md_filename.
17716         (gen_insn): Update initialization after above changes.
17717         (gen_delay): Likewise.
17718         (write_insn_cases): Print the filename for a define_peephole.
17719         (gen_insn_reserv): Take a line number as argument and update
17720         the call to check_attr_test.
17721         (main): Pass a line number to gen_insn_reserv.
17722
17723 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
17724
17725         * read-md.h (file_location): New structure.
17726         (directive_handler_t): Take a file_location rather than a line number.
17727         (message_at, error_at): Declare.
17728         (read_skip_construct): Delete.
17729         * read-md.c (message_with_line_1): Replace with...
17730         (message_at_1): ...this new function.
17731         (message_at, error_at): New functions.
17732         (message_with_line, error_with_line): Update to use message_at_1.
17733         (handle_enum): Take a file_location rather than a line number
17734         and use error_at for error reporting.
17735         (handle_include): Likewise.
17736         (read_skip_construct): Likewise.  Make static.
17737         (handle_file): Update after above changes.  Pass a file_location
17738         rather than a line number to handle_directive.
17739         * gensupport.c (queue_elem): Replace separate filename and lineno
17740         with a file_location.
17741         (queue_pattern): Replace filename and lineno arguments with a
17742         file_location.  Update after change to queue_elem.
17743         (process_define_predicate): Replace lineno argument with a
17744         file_location and use error_at for error reporting.  Update
17745         after above changes.
17746         (process_rtx): Likewise.
17747         (subst_pattern_match): Likewise.
17748         (get_alternatives_number): Likewise.
17749         (alter_predicate_for_insn): Likewise.
17750         (rtx_handle_directive): Likewise.
17751         (is_predicable): Update after above changes, using error_at rather
17752         than error_with_line.
17753         (has_subst_attribute): Likewise.
17754         (identify_predicable_attribute): Likewise.
17755         (alter_attrs_for_subst_insn): Likewise.
17756         (process_one_cond_exec): Likewise.
17757         (process_substs_on_one_elem): Likewise.
17758         (process_define_subst): Likewise.
17759         (check_define_attr_duplicates): Likewise.
17760         (read_md_rtx): Update after change to queue_elem.
17761
17762 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
17763
17764         * genoutput.c (next_index_number): Delete.
17765         (data): Remove index_number.
17766         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
17767         (main): Remove manipulation of next_index_number.
17768
17769 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
17770
17771         * genattrtab.c (check_attr_value): Remove handling of null attrs.
17772         (make_canonical): Likewise.
17773
17774 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
17775
17776         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
17777         instead of adjust_address_nv.
17778         (restore_stack_nonlocal): Likewise.
17779         (nonlocal_goto): Likewise.
17780
17781 2015-07-16  Tom de Vries  <tom@codesourcery.com>
17782
17783         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
17784         not have a corresponding loop header phi.
17785
17786 2015-07-16  Tom de Vries  <tom@codesourcery.com>
17787
17788         * tree-parloops.c (create_loads_for_reductions): Handle case that
17789         reduction is unused.
17790
17791 2015-07-16  Richard Biener  <rguenther@suse.de>
17792
17793         PR tree-optimization/66894
17794         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
17795         about deriving NE_EXPR from truncated values.
17796
17797 2015-07-16  Martin Liska  <mliska@suse.cz>
17798
17799         * alloc-pool.h
17800         (object_allocator): Add new class.
17801         (pool_allocator::initialize): Use the underlying class.
17802         (pool_allocator::allocate): Likewise.
17803         (pool_allocator::remove): Likewise.
17804         (operator new): A new generic allocator.
17805         * asan.c (struct asan_mem_ref): Remove unused members.
17806         (asan_mem_ref_new): Replace new operator with
17807         object_allocator::allocate.
17808         (free_mem_ref_resources): Change deallocation.
17809         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
17810         with object_allocator.
17811         * config/sh/sh.c (add_constant): Replace new operator with
17812         object_allocator::allocate.
17813         (sh_reorg): Change call to a release method.
17814         * cselib.c (struct elt_list): Remove unused members.
17815         (new_elt_list): Replace new operator with
17816         object_allocator::allocate.
17817         (new_elt_loc_list): Likewise.
17818         (new_cselib_val): Likewise.
17819         (unchain_one_elt_list): Change delete operator with remove method.
17820         (unchain_one_elt_loc_list): Likewise.
17821         (unchain_one_value): Likewise.
17822         (cselib_finish): Release newly added static allocators.
17823         * cselib.h (struct cselib_val): Remove unused members.
17824         (struct elt_loc_list): Likewise.
17825         * df-problems.c (df_chain_alloc): Replace pool_allocator with
17826         object_allocator.
17827         * df-scan.c (struct df_scan_problem_data): Likewise.
17828         (df_scan_alloc): Likewise.
17829         * df.h (struct dataflow): Likewise.
17830         * dse.c (struct read_info_type): Likewise.
17831         (struct insn_info_type): Likewise.
17832         (struct dse_bb_info_type): Likewise.
17833         (struct group_info): Likewise.
17834         (struct deferred_change): Likewise.
17835         (get_group_info): Likewise.
17836         (delete_dead_store_insn): Likewise.
17837         (free_read_records): Likewise.
17838         (replace_read): Likewise.
17839         (check_mem_read_rtx): Likewise.
17840         (scan_insn): Likewise.
17841         (dse_step1): Likewise.
17842         (dse_step7): Likewise.
17843         * et-forest.c (struct et_occ): Remove unused members.
17844         (et_new_occ): Use allocate instead of new operator.
17845         (et_new_tree): Likewise.
17846         (et_free_tree): Call release method explicitly.
17847         (et_free_tree_force): Likewise.
17848         (et_free_pools): Likewise.
17849         (et_split): Use remove instead of delete operator.
17850         * et-forest.h (struct et_node): Remove unused members.
17851         * ipa-cp.c: Change pool_allocator to object_allocator.
17852         * ipa-inline-analysis.c: Likewise.
17853         * ipa-profile.c: Likewise.
17854         * ipa-prop.c: Likewise.
17855         * ipa-prop.h: Likewise.
17856         * ira-build.c (initiate_cost_vectors): Cast return value.
17857         (ira_allocate_cost_vector): Likewise.
17858         * ira-color.c (struct update_cost_record): Remove unused members.
17859         * lra-int.h (struct lra_live_range): Likewise.
17860         (struct lra_copy): Likewise.
17861         (struct lra_insn_reg): Likewise.
17862         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
17863         * lra.c (new_insn_reg): Replace new operator with allocate method.
17864         (free_insn_regs): Same for operator delete.
17865         (finish_insn_regs): Release new static allocator.
17866         (finish_insn_recog_data): Likewise.
17867         (lra_free_copies): Replace delete operator with remove method.
17868         (lra_create_copy): Replace operator new with allocate method.
17869         (invalidate_insn_data_regno_info): Same for remove method.
17870         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
17871         (free_debug_insn_changes): Replace delete operator with remove method.
17872         (replace_oldest_value_reg): Replace operator new with allocate method.
17873         (pass_cprop_hardreg::execute): Release new static variable.
17874         * sched-deps.c (sched_deps_init): Change pool_allocator to
17875         object_allocator.
17876         * sel-sched-ir.c: Likewise.
17877         * sel-sched-ir.h: Likewise.
17878         * stmt.c (expand_case): Likewise.
17879         (expand_sjlj_dispatch_table): Likewise.
17880         * tree-sra.c (struct access): Remove unused members.
17881         (struct assign_link): Likewise.
17882         (sra_deinitialize): Release newly added static pools.
17883         (create_access_1):Replace operator new with allocate method.
17884         (build_accesses_from_assign): Likewise.
17885         (create_artificial_child_access): Likewise.
17886         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
17887         pool_allocator to object_allocator.
17888         * tree-ssa-pre.c: Likewise.
17889         * tree-ssa-reassoc.c: Likewise.
17890         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
17891         * tree-ssa-strlen.c: Likewise.
17892         * tree-ssa-structalias.c: Likewise.
17893         * var-tracking.c (onepart_pool_allocate): New function.
17894         (unshare_variable): Use the newly added function.
17895         (variable_merge_over_cur): Likewise.
17896         (variable_from_dropped): Likewise.
17897         (variable_was_changed): Likewise.
17898         (set_slot_part): Likewise.
17899         (emit_notes_for_differences_1): Likewise.
17900         (vt_finalize): Release newly added static pools.
17901
17902 2015-07-16  Martin Jambor  <mjambor@suse.cz>
17903
17904         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
17905         all uses.  Fix two typos in its general comment.
17906         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
17907
17908 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
17909
17910         * config/i386/linux-common.h (LINK_MPX): New.
17911         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
17912         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
17913         indicating '-z bndplt' support by linker.
17914         * configure: Regenerate.
17915         * config.in: Regenerate.
17916
17917 2015-07-16  Richard Biener  <rguenther@suse.de>
17918
17919         * fold-const.c (fold_widened_comparison): Remove.
17920         (fold_sign_changed_comparison): Likewise.
17921         (fold_comparison): Move widened and sign-changed comparison
17922         simplification ...
17923         * match.pd: ... to patterns here.
17924         * generic-match-head.c: Include target.h.
17925         * gimple-match-head.c: Likewise.
17926
17927 2015-07-16  Richard Biener  <rguenther@suse.de>
17928
17929         * tree-ssa-dom.c (dom_valueize): New function.
17930         (record_temporary_equivalences): Also record equivalences
17931         for dominating stmts that have uses of equivalences we are
17932         about to record.
17933
17934 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
17935
17936         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
17937         add_autoinc_candidates.
17938         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
17939         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
17940         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
17941         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
17942         Call new function.
17943         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
17944         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
17945         Remove parameter struct iv*.  Call add_autoinc_candidates here.
17946         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
17947         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
17948         Call new function.
17949         (find_iv_candidates): Call new functions.
17950
17951 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
17952
17953         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
17954         uninitialized-variable warning.
17955
17956 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
17957
17958         PR target/65249
17959         * config/sh/sh.md (movdi): Split simple reg move to two movsi
17960         when the destination is R0.
17961
17962 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
17963
17964         PR target/66866
17965         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
17966         * config/i386/i386.c (ix86_expand_pextr): New function.
17967         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
17968         for non-lowpart subregs.
17969         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
17970         (insv<mode>): Use SWI248 mode iterator.
17971         (insv<mode>_1): Ditto.
17972
17973 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
17974             Sebastian Pop  <s.pop@samsung.com>
17975
17976         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
17977         iterator to use_stmt.
17978
17979 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
17980             Sebastian Pop <s.pop@samsung.com>
17981
17982         * graphite-scop-detection.c (build_scops_1): Discard scops for
17983         which entry==exit.
17984
17985 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
17986             Sebastian Pop <s.pop@samsung.com>
17987
17988         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
17989         case of a return statement in scop.
17990
17991 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
17992             Sebastian Pop <s.pop@samsung.com>
17993
17994         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
17995         INTEGER_TYPE parameters.
17996         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
17997         VECTOR_CST in scan_tree_for_params.
17998         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
17999
18000 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
18001
18002         * gimple-pretty-print.h: Don't include pretty-print.h.
18003         * tree-streamer.h: Don't include lto-streamer.h.
18004         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
18005         * gimple-streamer-in.c: Remove redundant includes.
18006         * gimple-streamer-out.c: Likewise.
18007         * ipa-devirt.c: Likewise.
18008         * ipa-icf.c: Likewise.
18009         * ipa-inline-analysis.c: Likewise.
18010         * ipa-polymorphic-call.c: Likewise.
18011         * ipa-profile.c: Likewise.
18012         * ipa-prop.c: Likewise.
18013         * ipa-pure-const.c: Likewise.
18014         * lto-cgraph.c: Likewise.
18015         * lto-streamer-in.c: Likewise.
18016         * lto-streamer-out.c: Likewise.
18017         * lto-streamer.c: Likewise.
18018         * tree-streamer-in.c: Likewise.
18019         * tree-streamer-out.c: Likewise.
18020         * tree-streamer.c: Likewise.
18021
18022 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
18023
18024         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
18025         include input.h.
18026         * opts.c: Remove multiline #include comment.
18027
18028 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
18029
18030         * config/nvptx/mkoffload.c (process): Add C++ protection to
18031         emitted code.
18032
18033 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
18034
18035         PR target/66854
18036         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
18037         null before IEEE 128-bit floating point support patch.
18038
18039 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18040
18041         * simplify-rtx.c (simplify_ternary_operation): Add simplification
18042         for (!c) != {0,...,0} ? a : b for vector modes.
18043
18044 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
18045             Martin Jambor  <mjambor@suse.cz>
18046
18047         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
18048         struct func_body_info* instead of struct ipa_node_params*, expecting
18049         fbi->info to be filled in.  Replace throughout.  Adjust call to
18050         ipa_load_from_parm_agg.
18051         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
18052         instead of struct ipa_node_params*.  Adjust calls to other functions
18053         so that they pass either fbi or fbi->info.
18054         (set_switch_stmt_execution_predicate): Likewise.
18055         (will_be_nonconstant_predicate): Likewise.
18056         (compute_bb_predicates): Likewise.
18057         (estimate_function_body_sizes): Move asserts earlier.  Fill in
18058         struct func_body_info, replace parms_info with fbi.info.  Adjust
18059         calls to functions that now accept struct func_body_info.
18060         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
18061         (struct func_body_info): Likewise.
18062         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
18063         remove static.  Adjust callers.
18064         (ipa_load_from_parm_agg): Remove.
18065         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
18066         (func_body_info): Likewise.
18067         (ipa_load_from_parm_agg): Adjust prototype.
18068
18069 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18070
18071         * gensupport.c (rtx_handle_directive): Adjust.
18072         * read-rtl.c (apply_iterators): Take vector to add rtxs to
18073         instead of expr list rtx.
18074         (add_define_attr_for_define_subst): Likewise.
18075         (add_define_subst_attr): Likewise.
18076         (read_subst_mapping): Likewise.
18077         (read_rtx): Likewise.
18078         * rtl.h (read_rtx): Adjust.
18079
18080 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18081
18082         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
18083
18084 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
18085
18086         PR target/58066
18087         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
18088         (*tls_local_dynamic_base_64_<mode>): Ditto.
18089         (*tls_local_dynamic_base_64_largepic): Ditto.
18090         (tls_global_dynamic_64_<mode>): Update expander pattern.
18091         (tls_local_dynamic_base_64_<mode>): Ditto.
18092
18093 2015-07-15  Richard Biener  <rguenther@suse.de>
18094
18095         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
18096         and bool_var == 1 -> bool_var simplifications ...
18097         * match.pd: ... to patterns here.  Factor out negate_expr_p
18098         cases from the A - B -> A + (-B) patterns as negate_expr_p
18099         predicate and add a -(A + B) -> (-B) - A pattern.
18100
18101 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
18102
18103         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
18104
18105 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
18106             Robert Suchanek  <robert.suchanek@imgtec.com>
18107
18108         * config/mips/mips.c (mips_int_mask): New enum.
18109         (mips_shadow_set): Likewise.
18110         (int_mask): New variable.
18111         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
18112         (machine_function): Add int_mask and use_shadow_register_set.
18113         (mips_attribute_table): Add attribute handlers for interrupt and
18114         use_shadow_register_set.
18115         (mips_interrupt_mask): New static function.
18116         (mips_handle_interrupt_attr): Likewise.
18117         (mips_handle_use_shadow_register_set_attr): Likewise.
18118         (mips_use_shadow_register_set): Change return type to enum
18119         mips_shadow_set.  Add argument handling for use_shadow_register_set
18120         attribute.
18121         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
18122         compare with mips_shadow_set enum.
18123         (mips_compute_frame_info): Add interrupt mask and
18124         use_shadow_register_set to per-function information structure.
18125         Add a stack slot for EPC unconditionally.
18126         (mips_expand_prologue): Compare use_shadow_register_set value
18127         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
18128         masked interrupt register but in EIC mode use K0 and save Cause in K0.
18129         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
18130         copying the stack pointer from the shadow register set.
18131         * config/mips/mips.h (SR_IM0): New define.
18132         * config/mips/mips.md (mips_rdpgpr): Rename to...
18133         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
18134         * doc/extend.texi (Declaring Attributes of Functions): Document
18135         optional arguments for interrupt and use_shadow_register_set
18136         attributes.
18137
18138 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
18139
18140         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
18141         interrupt attribute.
18142         (mips_expand_prologue): Disable the floating point unit in an ISR.
18143         * config/mips/mips.h (SR_COP1): New define.
18144
18145 2015-07-15  Richard Biener  <rguenther@suse.de>
18146
18147         * genmatch.c (parser::peek, parser::peek_ident): Add argument
18148         to tell how many tokens to peek ahead (default 1).
18149         (parser::eat_token, parser::eat_ident): Return token consumed.
18150         (parser::parse_result): Parse new switch statement.
18151         * match.pd: Use case statements where appropriate.
18152
18153 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
18154
18155         PR rtl-optimization/58066
18156         * calls.c (expand_call): Precompute register parameters before stack
18157         alignment is performed.
18158
18159 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
18160
18161         PR rtl-optimization/66838
18162         * postreload.c (reload_cse_move2add): Also process
18163         CALL_INSN_FUNCTION_USAGE when resetting information of
18164         call-clobbered registers.
18165
18166 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
18167             Cesar Philippidis  <cesar@codesourcery.com>
18168             Chung-Lin Tang  <cltang@codesourcery.com>
18169
18170         * config/nios2/constraints.md (U, v): New constraints.
18171         * config/nios2/predicates.md (rdprs_dcache_operand): New.
18172         (ldstex_memory_operand): New.
18173         * config/nios2/sync.md: New file.
18174         * config/nios2/nios2.md (unspecv): Add new builtin function
18175         UNSPECV codes.
18176         (rdprs, flushd, flushda, wrpie, eni): New patterns.
18177         (top-level): Include sync.md.
18178         * config/nios2/nios2.c (N2_FTYPES): Add function types for
18179         new builtins.
18180         (N2_BUILTINS): Add arch field setting, add new builtins.
18181         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
18182         for arch field.
18183         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
18184         Also handle ldex/stex/ldsex/stsex builtins.
18185         (nios2_expand_rdprs_builtin): New function.
18186         (nios2_expand_cache_builtin): New function.
18187         (nios2_expand_wrpie_builtin): New function.
18188         (nios2_expand_eni_builtin): New function.
18189         (nios2_expand_builtin): Add arch field handling and new builtin
18190         cases.
18191         * doc/extend.texi (Altera Nios II Built-in Functions): Document
18192         new builtins.
18193         * doc/md.texi (Machine Constraints): Document U and v constraints.
18194
18195 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
18196             Cesar Philippidis  <cesar@codesourcery.com>
18197             Chung-Lin Tang  <cltang@codesourcery.com>
18198
18199         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
18200         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
18201         callee_save_reg_size and uses_anonymous_args fields.
18202         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
18203         (nios2_create_cfa_notes): New function.
18204         (nios2_adjust_stack): New function for adjusting stack.
18205         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
18206         Use nios2_adjust_stack.
18207         (nios2_expand_epilogue): Likewise.
18208         (nios2_expand_return): New function.
18209         (nios2_can_use_return_insn): Update for CDX pop.n usage.
18210         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
18211         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
18212         * config/nios2/nios2.md (return): Use nios2_expand_return.
18213
18214 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
18215             Cesar Philippidis  <cesar@codesourcery.com>
18216             Chung-Lin Tang  <cltang@codesourcery.com>
18217
18218         * config/nios2/predicates.md (pop_operation): New.
18219         (ldwm_operation, stwm_operation): New.
18220         (nios2_hard_register_operand): New.
18221         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
18222         (ldstwm_operation_p): Declare.
18223         (gen_ldstwm_peep): Declare.
18224         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
18225         (base_reg_adjustment_p): New.
18226         (pop_operation_p): New.
18227         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
18228         (nios2_ldstwm_regset_p): New.
18229         (ldstwm_operation_p): New.
18230         (gen_ldst): New.
18231         (nios2_ldst_parallel): New.
18232         (struct ldswm_operand): Declare.
18233         (compare_ldstwm_operands): New.
18234         (can_use_cdx_ldstw): New.
18235         (gen_ldstwm_peep): New.
18236         * config/nios2/nios2-ldstwm.sml: New.
18237         * config/nios2/nios2.md: Include ldstwm.md.
18238         * config/nios2/ldstwm.md: Generated.
18239
18240 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
18241             Cesar Philippidis  <cesar@codesourcery.com>
18242             Chung-Lin Tang  <cltang@codesourcery.com>
18243
18244         * config/nios2/nios2.h (LABEL_ALIGN): Define.
18245         (REG_ALLOC_ORDER): Define.
18246         (ADJUST_REG_ALLOC_ORDER): Define.
18247         (HONOR_REG_ALLOC_ORDER): Define.
18248         (CDX_REG_P): Define.
18249         (ANDCLEAR_INT): Define.
18250         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
18251         (nios2_label_align): Declare.
18252         (nios2_cdx_narrow_form_p): Declare.
18253         (nios2_adjust_reg_alloc_order): Declare.
18254         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
18255         operation.
18256         (nios2_large_unspec_reloc_p): New function, split from...
18257         (nios2_legitimate_pic_operand_p): ...here.
18258         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
18259         (nios2_print_operand_punct_valid_p): New.
18260         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
18261         (split_mem_address): New.
18262         (split_alu_insn): New.
18263         (cdxreg): New.
18264         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
18265         (enum nios2_add_insn_kind): New.
18266         (nios2_add_insn_names, nios2_add_insn_narrow): New.
18267         (nios2_add_insn_classify): New.
18268         (nios2_add_insn_asm): New.
18269         (nios2_cdx_narrow_form_p): New.
18270         (label_align, min_labelno, max_labelno): New.
18271         (nios2_reorg): New.
18272         (nios2_label_align): New.
18273         (nios2_adjust_reg_alloc_order): New.
18274         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
18275         (TARGET_MACHINE_DEPENDENT_REORG): Define.
18276         * config/nios2/constraints.md (P): New constraint.
18277         * config/nios2/predicates.md (const_and_operand): New.
18278         (and_operand): New.
18279         (stack_memory_operand): New.
18280         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
18281         (length): Update to use nios2_cdx_narrow_form_p().
18282         (type): Add new insn type values.
18283         (control, alu, st, ld, shift): Update insn reservations with
18284         new insn type values.
18285         (*high, *lo_sum): Define new insn patterns for constant generation.
18286         (movqi_internal, movhi_internal, movsi_internal): Reduce
18287         alternatives, update asm template to handle CDX variants, update
18288         type attributes.
18289         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
18290         template, update type attributes.
18291         (extendhisi2, extendqi<mode>2): Likewise.
18292         (addsi3): Change to use function for asm string.
18293         (subsi3): Add CDX notation to asm template, update type attributes.
18294         (negsi3, one_cmplsi3): Likewise.
18295         (andsi3): New pattern, specialized from logical patterns.
18296         (<code>si3): Remove and case, combine alternatives, update asm
18297         template.
18298         (<shift_op>si3): Add CDX notation, update type attributes.
18299         (rotrsi3): Update type attribute.
18300         (*merge, extzv, insv): New insn patterns.
18301         (return): Change to define_expand.
18302         (simple_return): Add CDX notation, update type attributes.
18303         (indirect_jump): Add CDX notation.
18304         (jump): Update asm cases, update length attribute expression.
18305         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
18306         (nios2_cbranch): Update asm cases and length attribute expression
18307         to handle CDX variants.
18308         (nios2_cmp<code>): Update asm template.
18309         (nop): Add CDX notation, update type attributes.
18310         (trap): Add CDX notation.
18311         (ctrapsi4): Update asm cases and length attribute expression to
18312         handle CDX variant.
18313         * doc/md.texi (Machine Constraints): Document P constraint.
18314
18315 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
18316             Cesar Philippidis  <cesar@codesourcery.com>
18317             Chung-Lin Tang  <cltang@codesourcery.com>
18318
18319         * config/nios2/nios2.h (SMALL_INT12): New macro.
18320         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
18321         (nios2_valid_addr_expr_p): Use it.
18322         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
18323         with implicit "io" instructions on R2.
18324         * config/nios2/constraints.md (w): New constraint.
18325         * config/nios2/predicates.md (ldstio_memory_operand): New.
18326         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
18327         operand predicate and constraint.
18328         (ld<bh>io_signed, st<bhw>io>): Likewise.
18329         * doc/md.texi (Machine Constraints): Document w constraint.
18330
18331 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
18332             Cesar Philippidis  <cesar@codesourcery.com>
18333             Chung-Lin Tang  <cltang@codesourcery.com>
18334
18335         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
18336         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
18337         Nios II architecture level.
18338         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
18339         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
18340         (OPTION_DEFAULT_SPECS): Define.
18341         (ASM_SPEC): Add -march= spec strings.
18342         * config/nios2/nios2.c (nios2_option_override): Check for
18343         conflicts involving new options.
18344         * config.gcc (nios2*-*-*): Support --with-arch=.
18345         * doc/invoke.texi (Option Summary, Nios II Options): Document
18346         -march=, -mbmx, and -mcdx.
18347
18348 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
18349
18350         PR rtl-optimization/66626
18351         * lra-constraints.c (lra_constraints): Prevent equivalence
18352         substitution for static chain pseudo in functions with nonlocal
18353         goto.
18354
18355 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
18356
18357         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
18358         (nios2_emit_stack_limit_check): Add size parameter.  Handle
18359         -fstack-limit-symbol as well as -fstack-limit-register.
18360         (nios2_expand_prologue): Emit only a single stack limit check,
18361         even if multiple stack adjustments are required.
18362         (nios2_option_override): Diagnose unsupported combination of -fpic
18363         and -stack-limit-symbol.
18364
18365 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
18366
18367         * Makefile.in (top_srcdir): New.
18368         * configure.ac: Use AM_ZLIB.
18369         * configure: Regeneated.
18370
18371 2015-07-14  Matthias Klose  <doko@ubuntu.com>
18372
18373         PR target/66840
18374         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
18375
18376 2015-07-14  Richard Biener  <rguenther@suse.de>
18377
18378         PR tree-optimization/66863
18379         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
18380         what we record for conversion use stmt lhs inequalities.
18381
18382 2015-07-14  Richard Biener  <rguenther@suse.de>
18383
18384         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
18385         (decision_tree::gen_gimple): Likewise.
18386
18387 2015-07-14  Tom de Vries  <tom@codesourcery.com>
18388
18389         * gcc.c (greater_than_spec_func): Declare forward.
18390         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
18391         -ftree-parallelize-loops={0,1}.
18392         (static_spec_functions): Add greater_than_spec_func function with name
18393         "gt".
18394         (greater_than_spec_func): New function.
18395
18396 2015-07-14  Richard Biener  <rguenther@suse.de>
18397
18398         * tree-ssa-dom.c (record_temporary_equivalences): Merge
18399         wideing type conversion case from record_equivalences_from_incoming_edge
18400         and use record_equality to record equivalences.
18401         (record_equivalences_from_incoming_edge): Call
18402         record_temporary_equivalences.
18403
18404 2015-07-14  Richard Biener  <rguenther@suse.de>
18405
18406         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
18407         (struct if_expr): New.
18408         (struct with_expr): Likewise.
18409         (is_a_helper): Add helpers for if_expr and with_expr.
18410         (struct simplify): Add simplify_kind enum and member.  Remove
18411         ifexpr_vec member.
18412         (simplify::simplify): Adjust.
18413         (lower_commutative): Adjust.
18414         (lower_opt_convert): Likewise.
18415         (lower_cond): Likewise.
18416         (replace_id): Handle with_expr and if_expr.
18417         (lower_for): Adjust.
18418         (dt_simplify::gen_1): New recursive worker, split out from ...
18419         (dt_simplify::gen): ... here.  Deal with if and with expansion
18420         recursively.
18421         (capture_info::capture_info): Take context argument
18422         (capture_info::walk_result): Only analyze specific result.
18423         (parser::parse_result): New function.
18424         (parser::parse_simplify): Adjust to parse ifs with then end
18425         else case.
18426         (parser::parse_if): Simplify.
18427         (parser::parse_pattern): Pass down simplify kind.
18428         * match.pd: Convert if structure to new syntax.
18429
18430 2015-07-13  Marek Polacek  <polacek@redhat.com>
18431
18432         * rtl.c (rtx_equal_p_cb): Fix typo.
18433
18434 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
18435
18436         * omega.h: Don't include config.h, don't include params.h again if
18437         omega.h has already been included.
18438         * graphite-poly.h: Include sese.h.
18439         * graphite.c: Don't include sese.h, remove needless includes and
18440         minimize includes outside #ifdef HAVE_isl block.
18441         * graphite-blocking.c: Don't include sese.h, remove needless includes,
18442         and wrap entire file in #ifdef HAVE_isl
18443         * graphite-dependences.c: Likewise.
18444         * graphite-interchange.c: Likewise.
18445         * graphite-isl-ast-to-gimple.c: Likewise.
18446         * graphite-optimize-isl.c: Likewise.
18447         * graphite-poly.c: Likewise.
18448         * graphite-scop-detection.c: Likewise.
18449         * graphite-sese-to-poly.c: Likewise.
18450
18451 2015-07-13  Tom de Vries  <tom@codesourcery.com>
18452
18453         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
18454
18455 2015-07-13  Renlin Li  <renlin.li@arm.com>
18456
18457         PR rtl/66556
18458         * simplify-rtx.c (simplify_const_relational_operation): Add
18459         side_effects_p checks.
18460
18461 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
18462
18463         * bitmap.h: Fix double word typos.
18464         * builtins.c: Same.
18465         * calls.c: Same.
18466         * cfgloopmanip.c: Same.
18467         * cgraph.c: Same.
18468         * cgraph.h: Same.
18469         * cgraphclones.c: Same.
18470         * combine.c: Same.
18471         * config/aarch64/aarch64-protos.h: Same.
18472         * config/aarch64/aarch64.c: Same.
18473         * config/aarch64/aarch64.md: Same.
18474         * config/arm/arm.md: Same.
18475         * config/arm/arm1020e.md: Same.
18476         * config/arm/arm1026ejs.md: Same.
18477         * config/arm/arm926ejs.md: Same.
18478         * config/arm/fa526.md: Same.
18479         * config/arm/fa606te.md: Same.
18480         * config/arm/fa626te.md: Same.
18481         * config/arm/fa726te.md: Same.
18482         * config/arm/fmp626.md: Same.
18483         * config/darwin.c: Same.
18484         * config/epiphany/epiphany.c: Same.
18485         * config/frv/frv.c: Same.
18486         * config/ft32/ft32.c: Same.
18487         * config/gnu-user.h: Same.
18488         * config/h8300/constraints.md: Same.
18489         * config/i386/i386.c: Same.
18490         * config/i386/i386.md: Same.
18491         * config/iq2000/iq2000.md: Same.
18492         * config/mips/mips.c: Same.
18493         * config/mmix/mmix.md: Same.
18494         * config/moxie/moxie.c: Same.
18495         * config/nds32/nds32.md: Same.
18496         * config/pa/pa.h: Same.
18497         * config/rs6000/aix.h: Same.
18498         * config/rs6000/rs6000.h: Same.
18499         * config/sh/sh.c: Same.
18500         * config/tilegx/tilegx.md: Same.
18501         * config/tilepro/gen-mul-tables.cc: Same.
18502         * cse.c: Same.
18503         * dbxout.c: Same.
18504         * doc/invoke.texi: Same.
18505         * dse.c: Same.
18506         * dwarf2out.c: Same.
18507         * final.c: Same.
18508         * gcc.c: Same.
18509         * genmatch.c: Same.
18510         * gimplify.c: Same.
18511         * hash-table.h: Same.
18512         * internal-fn.c: Same.
18513         * ipa-cp.c: Same.
18514         * ipa-devirt.c: Same.
18515         * ipa-icf.c: Same.
18516         * ipa-icf.h: Same.
18517         * ipa-profile.c: Same.
18518         * ipa-prop.c: Same.
18519         * ipa-prop.h: Same.
18520         * ira.c: Same.
18521         * omp-low.c: Same.
18522         * reg-stack.c: Same.
18523         * regcprop.c: Same.
18524         * reorg.c: Same.
18525         * rtl.h: Same.
18526         * sbitmap.h: Same.
18527         * tree-eh.c: Same.
18528         * tree-inline.c: Same.
18529         * tree-sra.c: Same.
18530         * tree-ssa-dom.c: Same.
18531         * tree-ssa-loop-ivopts.c: Same.
18532         * tree-ssa-structalias.c: Same.
18533         * tree-ssa-tail-merge.c: Same.
18534         * tree-ssa-ter.c: Same.
18535         * tree-ssa-threadupdate.c: Same.
18536         * tree-ssa-uninit.c: Same.
18537         * tree-ssanames.c: Same.
18538         * tree-vect-loop-manip.c: Same.
18539         * tree-vrp.c: Same.
18540         * tree.c: Same.
18541         * valtrack.c: Same.
18542         * vec.h: Same.
18543
18544 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
18545
18546         PR middle-end/66726
18547         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
18548         tree_ssa_phiopt_worker): Call it.
18549
18550 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
18551
18552         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
18553         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
18554         REG_EQUAL note.
18555
18556 2015-07-11  Marek Polacek  <polacek@redhat.com>
18557
18558         PR middle-end/66353
18559         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
18560         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
18561         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
18562         rather than bb_has_abnormal_call_pred.
18563         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
18564         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
18565         rather than bb_has_abnormal_call_pred.
18566
18567 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
18568
18569         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
18570         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
18571         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
18572         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
18573         v850_legitimate_address_p): New functions.
18574         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
18575
18576 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
18577
18578         PR target/66819
18579         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
18580         indirect sibcall with register arguments if register available
18581         for argument passing.
18582         (init_cumulative_args): Set cfun->machine->arg_reg_available
18583         to (cum->nregs > 0) or to true if function has a variable
18584         argument list.
18585         (function_arg_advance_32): Set cfun->machine->arg_reg_available
18586         to false if cum->nregs <= 0.
18587         * config/i386/i386.h (machine_function): Add arg_reg_available.
18588
18589 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
18590
18591         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
18592         and gen_higpart instead of gen_rtx_SUBREG.
18593         * config/i386/i386.md
18594         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
18595         (read-modify peephole2): Use gen_lowpart instead of
18596         gen_rtx_SUBREG for operand 5.
18597
18598 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
18599
18600         * config/tilepro/gen-mul-tables.cc (main): Change include list for
18601         generated files.
18602         * config/tilepro/mul-tables.c: Regenerate.
18603         * config/tilegx/mul-tables.c: Regenerate.
18604
18605 2015-07-10  Richard Biener  <rguenther@suse.de>
18606
18607         * fold-const.c (distribute_bit_expr): Remove.
18608         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
18609         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
18610         to A & (B | C) and simplifying A << C1 << C2 to ...
18611         * match.pd: ... patterns here.
18612
18613 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
18614
18615         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
18616         Mark mem as READONLY and NOTRAP for PIC symbol.
18617
18618 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
18619
18620         * gimple-predict.h: New file.
18621         (gimple_predict_predictor, gimple_predict_set_predictor,
18622         gimple_predict_outcome, gimple_predict_set_outcome,
18623         gimple_build_predict): Relocate here.
18624         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
18625         gimple_predict_outcome, gimple_predict_set_outcome): Move to
18626         gimple-predict.h.
18627         * gimple.c (gimple_build_predict): Move to gimple-predict.h
18628         * basic-block.h: Don't include cfghooks.h.
18629         * backend.h: Don't include predict.h.
18630         * cfghooks.h: Include predict.h.
18631         * gimple-pretty-print.c: Include gimple-predict.h.
18632         * gimplify.c: Likwise.
18633         * predict.c: Adjust includes.
18634         * tree-inline.c: Likewise.
18635         * asan.c: Likewise.
18636         * auto-inc-dec.c: Likewise.
18637         * auto-profile.c: Likewise.
18638         * bb-reorder.c: Likewise.
18639         * builtins.c: Likewise.
18640         * caller-save.c: Likewise.
18641         * calls.c: Likewise.
18642         * cfganal.c: Likewise.
18643         * cfgbuild.c: Likewise.
18644         * cfg.c: Likewise.
18645         * cfgcleanup.c: Likewise.
18646         * cfgexpand.c: Likewise.
18647         * cfghooks.c: Likewise.
18648         * cfgloopanal.c: Likewise.
18649         * cfgloop.c: Likewise.
18650         * cfgloopmanip.c: Likewise.
18651         * cfgrtl.c: Likewise.
18652         * cgraph.c: Likewise.
18653         * cgraphunit.c: Likewise.
18654         * combine.c: Likewise.
18655         * cprop.c: Likewise.
18656         * cse.c: Likewise.
18657         * dce.c: Likewise.
18658         * dojump.c: Likewise.
18659         * dse.c: Likewise.
18660         * except.c: Likewise.
18661         * expmed.c: Likewise.
18662         * expr.c: Likewise.
18663         * final.c: Likewise.
18664         * fold-const.c: Likewise.
18665         * function.c: Likewise.
18666         * fwprop.c: Likewise.
18667         * gcc-plugin.h: Likewise.
18668         * gcse.c: Likewise.
18669         * genattrtab.c: Likewise.
18670         * genemit.c: Likewise.
18671         * gengtype.c: Likewise.
18672         * genopinit.c: Likewise.
18673         * genoutput.c: Likewise.
18674         * genpreds.c: Likewise.
18675         * genrecog.c: Likewise.
18676         * gimple-fold.c: Likewise.
18677         * gimple-iterator.c: Likewise.
18678         * gimple-ssa-isolate-paths.c: Likewise.
18679         * gimple-ssa-strength-reduction.c: Likewise.
18680         * graph.c: Likewise.
18681         * graphite-blocking.c: Likewise.
18682         * graphite.c: Likewise.
18683         * graphite-dependences.c: Likewise.
18684         * graphite-interchange.c: Likewise.
18685         * graphite-isl-ast-to-gimple.c: Likewise.
18686         * graphite-optimize-isl.c: Likewise.
18687         * graphite-poly.c: Likewise.
18688         * graphite-scop-detection.c: Likewise.
18689         * graphite-sese-to-poly.c: Likewise.
18690         * haifa-sched.c: Likewise.
18691         * ifcvt.c: Likewise.
18692         * internal-fn.c: Likewise.
18693         * ipa-cp.c: Likewise.
18694         * ipa-profile.c: Likewise.
18695         * ipa-split.c: Likewise.
18696         * ipa-utils.c: Likewise.
18697         * ira-build.c: Likewise.
18698         * ira-color.c: Likewise.
18699         * ira-conflicts.c: Likewise.
18700         * ira-costs.c: Likewise.
18701         * ira-emit.c: Likewise.
18702         * ira-lives.c: Likewise.
18703         * jump.c: Likewise.
18704         * loop-doloop.c: Likewise.
18705         * loop-init.c: Likewise.
18706         * loop-invariant.c: Likewise.
18707         * loop-unroll.c: Likewise.
18708         * lower-subreg.c: Likewise.
18709         * lra-assigns.c: Likewise.
18710         * lra.c: Likewise.
18711         * lra-coalesce.c: Likewise.
18712         * lra-constraints.c: Likewise.
18713         * lra-lives.c: Likewise.
18714         * lto-cgraph.c: Likewise.
18715         * lto-streamer-in.c: Likewise.
18716         * mode-switching.c: Likewise.
18717         * modulo-sched.c: Likewise.
18718         * omp-low.c: Likewise.
18719         * optabs.c: Likewise.
18720         * passes.c: Likewise.
18721         * postreload.c: Likewise.
18722         * postreload-gcse.c: Likewise.
18723         * profile.c: Likewise.
18724         * recog.c: Likewise.
18725         * regstat.c: Likewise.
18726         * reload1.c: Likewise.
18727         * reorg.c: Likewise.
18728         * rtlanal.c: Likewise.
18729         * sched-ebb.c: Likewise.
18730         * sel-sched-ir.c: Likewise.
18731         * sese.c: Likewise.
18732         * shrink-wrap.c: Likewise.
18733         * simplify-rtx.c: Likewise.
18734         * stmt.c: Likewise.
18735         * store-motion.c: Likewise.
18736         * tracer.c: Likewise.
18737         * trans-mem.c: Likewise.
18738         * tree-call-cdce.c: Likewise.
18739         * tree-cfg.c: Likewise.
18740         * tree-cfgcleanup.c: Likewise.
18741         * tree-chkp.c: Likewise.
18742         * tree-complex.c: Likewise.
18743         * tree-eh.c: Likewise.
18744         * tree-if-conv.c: Likewise.
18745         * tree-loop-distribution.c: Likewise.
18746         * tree-outof-ssa.c: Likewise.
18747         * tree-parloops.c: Likewise.
18748         * tree-predcom.c: Likewise.
18749         * tree-pretty-print.c: Likewise.
18750         * tree-profile.c: Likewise.
18751         * tree-sra.c: Likewise.
18752         * tree-ssa.c: Likewise.
18753         * tree-ssa-coalesce.c: Likewise.
18754         * tree-ssa-dce.c: Likewise.
18755         * tree-ssa-dom.c: Likewise.
18756         * tree-ssa-forwprop.c: Likewise.
18757         * tree-ssa-ifcombine.c: Likewise.
18758         * tree-ssa-loop-ch.c: Likewise.
18759         * tree-ssa-loop-im.c: Likewise.
18760         * tree-ssa-loop-ivcanon.c: Likewise.
18761         * tree-ssa-loop-ivopts.c: Likewise.
18762         * tree-ssa-loop-manip.c: Likewise.
18763         * tree-ssa-loop-prefetch.c: Likewise.
18764         * tree-ssa-loop-unswitch.c: Likewise.
18765         * tree-ssa-math-opts.c: Likewise.
18766         * tree-ssa-phiopt.c: Likewise.
18767         * tree-ssa-pre.c: Likewise.
18768         * tree-ssa-reassoc.c: Likewise.
18769         * tree-ssa-sink.c: Likewise.
18770         * tree-ssa-tail-merge.c: Likewise.
18771         * tree-ssa-threadedge.c: Likewise.
18772         * tree-ssa-threadupdate.c: Likewise.
18773         * tree-switch-conversion.c: Likewise.
18774         * tree-tailcall.c: Likewise.
18775         * tree-vect-data-refs.c: Likewise.
18776         * tree-vect-loop.c: Likewise.
18777         * tree-vect-loop-manip.c: Likewise.
18778         * tree-vectorizer.c: Likewise.
18779         * tree-vrp.c: Likewise.
18780         * ubsan.c: Likewise.
18781         * value-prof.c: Likewise.
18782         * varasm.c: Likewise.
18783         * var-tracking.c: Likewise.
18784         * config/aarch64/aarch64-builtins.c: Likewise.
18785         * config/aarch64/aarch64.c: Likewise.
18786         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
18787         * config/alpha/alpha.c: Likewise.
18788         * config/arc/arc.c: Likewise.
18789         * config/arm/arm.c: Likewise.
18790         * config/avr/avr.c: Likewise.
18791         * config/bfin/bfin.c: Likewise.
18792         * config/c6x/c6x.c: Likewise.
18793         * config/cr16/cr16.c: Likewise.
18794         * config/cris/cris.c: Likewise.
18795         * config/darwin.c: Likewise.
18796         * config/darwin-c.c: Likewise.
18797         * config/epiphany/epiphany.c: Likewise.
18798         * config/epiphany/mode-switch-use.c: Likewise.
18799         * config/epiphany/resolve-sw-modes.c: Likewise.
18800         * config/fr30/fr30.c: Likewise.
18801         * config/frv/frv.c: Likewise.
18802         * config/ft32/ft32.c: Likewise.
18803         * config/h8300/h8300.c: Likewise.
18804         * config/i386/i386.c: Likewise.
18805         * config/i386/winnt.c: Likewise.
18806         * config/ia64/ia64.c: Likewise.
18807         * config/iq2000/iq2000.c: Likewise.
18808         * config/lm32/lm32.c: Likewise.
18809         * config/m32c/m32c.c: Likewise.
18810         * config/m32r/m32r.c: Likewise.
18811         * config/m68k/m68k.c: Likewise.
18812         * config/mcore/mcore.c: Likewise.
18813         * config/mep/mep.c: Likewise.
18814         * config/microblaze/microblaze.c: Likewise.
18815         * config/mips/mips.c: Likewise.
18816         * config/mmix/mmix.c: Likewise.
18817         * config/mn10300/mn10300.c: Likewise.
18818         * config/moxie/moxie.c: Likewise.
18819         * config/msp430/msp430.c: Likewise.
18820         * config/nds32/nds32.c: Likewise.
18821         * config/nds32/nds32-cost.c: Likewise.
18822         * config/nds32/nds32-fp-as-gp.c: Likewise.
18823         * config/nds32/nds32-intrinsic.c: Likewise.
18824         * config/nds32/nds32-isr.c: Likewise.
18825         * config/nds32/nds32-md-auxiliary.c: Likewise.
18826         * config/nds32/nds32-memory-manipulation.c: Likewise.
18827         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
18828         * config/nds32/nds32-predicates.c: Likewise.
18829         * config/nios2/nios2.c: Likewise.
18830         * config/nvptx/nvptx.c: Likewise.
18831         * config/pa/pa.c: Likewise.
18832         * config/pdp11/pdp11.c: Likewise.
18833         * config/rl78/rl78.c: Likewise.
18834         * config/rs6000/rs6000.c: Likewise.
18835         * config/rx/rx.c: Likewise.
18836         * config/s390/s390.c: Likewise.
18837         * config/sh/sh.c: Likewise.
18838         * config/sh/sh-mem.cc: Likewise.
18839         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
18840         * config/sh/sh_treg_combine.cc: Likewise.
18841         * config/sparc/sparc.c: Likewise.
18842         * config/spu/spu.c: Likewise.
18843         * config/stormy16/stormy16.c: Likewise.
18844         * config/tilegx/tilegx.c: Likewise.
18845         * config/tilepro/tilepro.c: Likewise.
18846         * config/v850/v850.c: Likewise.
18847         * config/vax/vax.c: Likewise.
18848         * config/visium/visium.c: Likewise.
18849         * config/xtensa/xtensa.c: Likewise.
18850
18851 2015-07-10  Richard Biener  <rguenther@suse.de>
18852
18853         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
18854         (decision_tree::gen_gimple): Likewise.
18855         (decision_tree::gen_generic): Likewise.
18856
18857 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
18858
18859         PR target/66813
18860         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
18861         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
18862
18863 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
18864
18865         PR middle-end/66820
18866         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
18867         or ORT_TASK contexts.
18868         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
18869         is non-zero.
18870
18871 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18872
18873         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
18874         above function.
18875
18876 2015-07-10  Tom de Vries  <tom@codesourcery.com>
18877
18878         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
18879         insert nit + 1 bound.
18880
18881 2015-07-10  Richard Biener  <rguenther@suse.de>
18882
18883         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
18884         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
18885         (if_convertible_loop_p_1): For this always compute bb predicates.
18886         (if_convertible_loop_p): And free them.
18887
18888 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18889
18890         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
18891         in dump message.
18892
18893 2015-07-10  Richard Biener  <rguenther@suse.de>
18894
18895         PR tree-optimization/66823
18896         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
18897         inverted predicate.
18898
18899 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
18900
18901         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
18902         to handle mips[32|64]r3 and mips[32|64]r5.
18903
18904 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
18905
18906         PR middle-end/66633
18907         * tree-nested.c (get_static_chain): Or in a flag into
18908         info->static_chain_added.
18909         (get_frame_field, get_nonlocal_debug_decl): Likewise.
18910         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
18911         2015-07-01 changes.
18912         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
18913         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
18914         add it to clauses.
18915
18916         PR tree-optimization/66718
18917         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
18918         field.
18919         (vect_simd_lane_linear): New function.
18920         (vectorizable_simd_clone_call): Support using linear arguments for
18921         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
18922
18923 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
18924
18925         PR target/66821
18926         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
18927
18928 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
18929
18930         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
18931         Use machine mode, not enum machine_mode in the prototype.
18932
18933         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
18934         classify 128-bit floating point support.
18935         (FLOAT128_IBM_P): Likewise.
18936         (FLOAT128_VECTOR_P): Likewise.
18937         (FLOAT128_2REG_P): Likewise.
18938         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
18939         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
18940         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
18941         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
18942
18943         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
18944         tests against TFmode/TDmode, since those modes do not use VSX
18945         addresses.
18946         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
18947         support.
18948         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
18949         tests against TFmode, etc.
18950         (invalid_e500_subreg): Add tests against IFmode/KFmode.
18951         (reg_offset_addressing_ok_p): Likewise.
18952         (rs6000_legitimate_offset_address_p): Likewise.
18953         (rs6000_legitimize_address): Likewise.
18954         (rs6000_legitimize_reload_address): Likewise.
18955         (rs6000_legitimate_address_p): Clean up tests against TFmode and
18956         TDmode to use the new helper macros, which will include IFmode and
18957         KFmode.
18958         (rs6000_emit_move): Likewise.
18959         (rs6000_darwin64_record_arg_recurse): Likewise.
18960         (print_operand): Likewise.
18961         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
18962         that uses a single vector register as a vector and not as a
18963         floating point register in terms of the calling sequence.
18964         (rs6000_discover_homogeneous_aggregate): Likewise.
18965         (rs6000_return_in_memory): Likewise.
18966         (init_cumulative_args): Likewise.
18967         (rs6000_function_arg_boundary): Likewise.
18968         (rs6000_function_arg_advance_1): Likewise.
18969         (rs6000_function_arg): Likewise.
18970         (rs6000_pass_by_reference): Likewise.
18971         (rs6000_gimplify_va_arg): Likewise.
18972         (rs6000_secondary_reload_memory): Use machine_mode not enum
18973         machine mode.
18974         (rs6000_split_multireg_move): Use new helper macros.
18975         (spe_func_has_64bit_regs_p): Likewise.
18976         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
18977         (output_toc): Use new helper macros.
18978         (rs6000_register_move_cost): Likewise.
18979         (rs6000_function_value): Add IEEE 128-bit floating point calling
18980         sequence support.
18981         (rs6000_libcall_value): Likewise.
18982         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
18983         floating point support.
18984         (rs6000_vector_mode_supported_p): Likewise.
18985
18986 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
18987
18988         PR rtl-optimization/66782
18989         * lra-int.h (struct lra_insn_recog_data): Add comment about
18990         clobbered hard regs for arg_hard_regs.
18991         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
18992         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
18993         Add condition for processing used hard regs.
18994         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
18995         Process clobbered hard regs.
18996
18997 2015-07-09  Michael Matz  <matz@suse.de>
18998
18999         * genmatch.c (fprintf_indent): New function.
19000         (operand::gen_transform): Add indent parameter.
19001         (expr::gen_transform, c_expr::gen_transform,
19002         capture::gen_transform): Ditto and use fprintf_indent.
19003         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
19004         (dt_operand::gen, dt_operand::gen_predicate,
19005         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
19006         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
19007         (decision_tree::gen_gimple): Adjust calls and indent generated
19008         code.
19009         (decision_tree::gen_generic): Ditto.
19010         (write_predicate): Ditto.
19011
19012 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
19013
19014         PR target/66814
19015         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
19016         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
19017         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
19018         {GENERAL,SSE,MMX}_REG_P where appropriate.
19019
19020 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
19021
19022         * lto-streamer.h: Don't include target.h and alloc-pool.h.
19023         * builtins.c: Adjust includes.
19024         * gimple.c: Likewise.
19025         * ipa-icf.c: Likewise.
19026         * lto-opts.c: Likewise.
19027         * ipa-reference.c: Likewise.
19028         * lto-section-out.c: Likewise.
19029         * lto-streamer-in.c: Likewise.
19030         * lto-streamer-out.c: Likewise.
19031         * opts-global.c: Likewise.
19032         * symtab.c: Likewise.
19033         * tree-chkp.c: Likewise.
19034         * tree-ssa-live.c: Likewise.
19035         * tree-streamer-in.c: Likewise.
19036         * tree-streamer-out.c: Likewise.
19037         * config/darwin.c: Likewise.
19038         * config/i386/winnt.c: Likewise.
19039
19040 2015-07-09  Richard Biener  <rguenther@suse.de>
19041
19042         * genmatch.c (struct expr): Add force_single_use flag.
19043         (expr::expr): Add copy constructor.
19044         (capture_info::walk_match): Gather force_single_use captures.
19045         (expr::gen_transform): Use possibly NULLified sequence.
19046         (dt_simplify::gen): Apply single-use restrictions by NULLifying
19047         seq if any constrained expr is not single-use.
19048         (parser::parse_expr): Refactor to allow multiple flags.  Handle
19049         's' flag to force an expression have a single-use if the pattern
19050         simplifies to more than one statement.
19051         * match.pd: Convert most single_use conditionals to :s flags.
19052
19053 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
19054
19055         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
19056         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
19057         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
19058
19059 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
19060
19061         * flags.h: Don't include flag-types.h or options.h.
19062         * opts-common.c: Adjust includes.
19063         * opts-global.c: Likewise.
19064         * common/config/epiphany/epiphany-common.c: Likewise.
19065
19066 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
19067
19068         PR target/66818
19069         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
19070         for IA MCU.
19071
19072 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
19073
19074         PR target/66817
19075         * config/i386/i386.c (ix86_return_in_memory): Return true
19076         if int_size_in_bytes returns negative for IA MCU.
19077
19078 2015-07-09  Marek Polacek  <polacek@redhat.com>
19079
19080         PR tree-optimization/66718
19081         * Makefile.in (OBJS): Add gimple-laddress.o.
19082         * passes.def: Schedule pass_laddress.
19083         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
19084         * tree-pass.h (make_pass_laddress): Declare.
19085         * gimple-laddress.c: New file.
19086
19087 2015-07-09  Richard Biener  <rguenther@suse.de>
19088
19089         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
19090
19091 2015-07-09  Richard Biener  <rguenther@suse.de>
19092
19093         PR tree-optimization/66807
19094         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
19095
19096 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
19097
19098         * function.c (stack_protect_epilogue): Use if rather than switch for
19099         check targetm.have_stack_protect_test.
19100
19101 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19102
19103         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
19104         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
19105         * config/arc/arc.h: Likewise.
19106         * config/arm/arm.h: Likewise.
19107         * config/bfin/bfin.h: Likewise.
19108         * config/epiphany/epiphany.h: Likewise.
19109         * config/frv/frv.h: Likewise.
19110         * config/ia64/ia64.h: Likewise.
19111         * config/iq2000/iq2000.h: Likewise.
19112         * config/lm32/lm32.h: Likewise.
19113         * config/m32r/m32r.h: Likewise.
19114         * config/mcore/mcore.h: Likewise.
19115         * config/mep/mep.h: Likewise.
19116         * config/microblaze/microblaze.h: Likewise.
19117         * config/mips/mips.h: Likewise.
19118         * config/mmix/mmix.h: Likewise.
19119         * config/mn10300/mn10300.h: Likewise.
19120         * config/nds32/nds32.h: Likewise.
19121         * config/nios2/nios2.h: Likewise.
19122         * config/pa/pa.h: Likewise.
19123         * config/rl78/rl78.h: Likewise.
19124         * config/sh/sh.h: Likewise.
19125         * config/sparc/sparc.h: Likewise.
19126         * config/stormy16/stormy16.h: Likewise.
19127         * config/tilegx/tilegx.h: Likewise.
19128         * config/tilepro/tilepro.h: Likewise.
19129         * config/v850/v850.h: Likewise.
19130         * config/xtensa/xtensa.h: Likewise.
19131         * doc/tm.texi: Regenerate.
19132         * doc/tm.texi.in: Adjust.
19133         * combine.c (simplify_set): Likewise.
19134         (simplify_comparison): Likewise.
19135         * expr.c (store_constructor): Likewise.
19136         * internal-fn.c (expand_arith_overflow): Likewise.
19137         * reload.c (push_reload): Likewise.
19138         (find_reloads): Likewise.
19139         (find_reloads_subreg_address): Likewise.
19140         * reload1.c (eliminate_regs_1): Likewise.
19141         * rtlanal.c (nonzero_bits1): Likewise.
19142         (num_sign_bit_copies1): Likewise.
19143         * simplify-rtx.c (simplify_truncation): Likewise.
19144
19145 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19146
19147         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
19148         of AUTO_INC_DEC with the preprocessor.
19149         * combine.c (combine_instructions): Likewise.
19150         (can_combine_p): Likewise.
19151         (try_combine): Likewise.
19152         * emit-rtl.c (try_split): Likewise.
19153         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
19154         * lower-subreg.c (resolve_simple_move): Likewise.
19155         * lra.c (update_inc_notes): Likewise.
19156         * recog.c (asm_operand_ok): Likewise.
19157         (constrain_operands): Likewise.
19158         * regrename.c (scan_rtx_address): Likewise.
19159         * reload.c (update_auto_inc_notes): Likewise.
19160         (reg_inc_found_and_valid_p): Likewise.
19161         * reload1.c (reload): Likewise.
19162         (emit_input_reload_insns): Likewise.
19163         (delete_output_reload): Likewise.
19164         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
19165         * valtrack.c (cleanup_auto_inc_dec): Likewise.
19166
19167 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19168
19169         * rtl.h: Always define AUTO_INC_DEC.
19170         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
19171         * combine.c (combine_instructions): Likewise.
19172         (can_combine_p): Likewise.
19173         (try_combine): Likewise.
19174         * emit-rtl.c (try_split): Likewise.
19175         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
19176         * lower-subreg.c (resolve_simple_move): Likewise.
19177         * lra.c (update_inc_notes): Likewise.
19178         * recog.c (asm_operand_ok): Likewise.
19179         (constrain_operands): Likewise.
19180         * regrename.c (scan_rtx_address): Likewise.
19181         * reload.c (update_auto_inc_notes): Likewise.
19182         (find_equiv_reg): Likewise.
19183         * reload1.c (reload): Likewise.
19184         (reload_as_needed): Likewise.
19185         (choose_reload_regs): Likewise.
19186         (emit_input_reload_insns): Likewise.
19187         (delete_output_reload): Likewise.
19188         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
19189         * valtrack.c (cleanup_auto_inc_dec): Likewise.
19190
19191 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19192
19193         * combine.c (can_combine_def_p): Don't check the value of
19194         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
19195         (combinable_i3pat): Likewise.
19196         (mark_used_regs_combine): Likewise.
19197         * regrename.c (rename_chains): Likewise.
19198         * reload.c (find_reloads_address): Likewise.
19199         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
19200
19201 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19202
19203         * combine.c (update_rsp_from_reg_equal): Don't check if
19204         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
19205         (reg_nonzero_bits_for_combine): Likewise.
19206         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
19207         1.
19208         * config/frv/frv.h: Likewise.
19209         * config/lm32/lm32.h: Likewise.
19210         * config/mep/mep.h: Likewise.
19211         * config/mips/mips.h: Likewise.
19212         * config/rs6000/rs6000.h: Likewise.
19213         * config/sh/sh.h: Likewise.
19214         * config/tilegx/tilegx.h (enum reg_class): Likewise.
19215         * config/tilepro/tilepro.h: Likewise.
19216         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
19217         * doc/tm.texi: Regenerate.
19218         * doc/tm.texi.in: Adjust.
19219         * rtlanal.c (nonzero_bits1): Likewise.
19220
19221 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19222
19223         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
19224         with the preprocessor.
19225         (combine_instructions): Likewise.
19226         (try_combine): Likewise.
19227         (subst): Likewise.
19228         (distribute_notes): Likewise.
19229
19230 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19231
19232         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
19233         defined.
19234         (simplify_set): Likewise.
19235         * cse.c (cse_insn): Likewise.
19236         * fold-const.c (fold_single_bit_test): Likewise.
19237         (fold_unary_loc): Likewise.
19238         * postreload.c (reload_cse_simplify_set): Likewise.
19239         (reload_cse_simplify_operands): Likewise.
19240
19241 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
19242
19243         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
19244         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
19245
19246 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
19247
19248         PR target/66746
19249         * config/i386/x86intrin.h: Include <adxintrin.h> even if
19250         __iamcu__ is defined.
19251
19252 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
19253
19254         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
19255
19256 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
19257
19258         PR target/66523
19259         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
19260         names from preservation.
19261
19262 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
19263
19264         PR target/66806
19265         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
19266         change for IAMCU.
19267         (function_arg_advance_32): Don't pass vectors in registers for
19268         IAMCU.
19269         (function_arg_32): Likewise.
19270         (ix86_return_in_memory): Don't return vectors in registers for
19271         IAMCU.
19272
19273 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
19274
19275         PR middle-end/66334
19276         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
19277         hard regno live at the start of BB with incoming abnormal edges.
19278         * lra-lives.c (process_bb_lives): Ditto.
19279
19280 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
19281
19282         PR libgomp/65099
19283         * config/nvptx/mkoffload.c (main): Create an offload image only in
19284         64-bit configurations.
19285
19286 2015-07-08  Martin Liska  <mliska@suse.cz>
19287
19288         PR bootstrap/66744
19289         * tree-sra.c (create_access_1): Call ctor without brackets.
19290         (create_artificial_child_access): Likewise.
19291
19292 2015-07-08  Richard Biener  <rguenther@suse.de>
19293
19294         PR tree-optimization/66793
19295         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
19296         Properly split the block after stmts ending it.
19297
19298 2015-07-08  Richard Biener  <rguenther@suse.de>
19299
19300         PR tree-optimization/66794
19301         * passes.c (execute_function_todo): Assert that post-dominators
19302         are not computed.
19303         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
19304         Free post-dominators.
19305
19306 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19307
19308         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
19309         with early exit.
19310
19311 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
19312
19313         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
19314         more than or equal 8 and less than 32 when optimizing for size.
19315
19316 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19317
19318         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
19319         COSTS_N_INSNS (1) and increment it appropriately throughout the
19320         function.
19321
19322 2015-07-08  Richard Biener  <rguenther@suse.de>
19323
19324         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
19325
19326 2015-07-08  Alan Modra  <amodra@gmail.com>
19327
19328         * target.def (rtx_costs): Remove "code" param, add "mode".
19329         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
19330         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
19331         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
19332         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
19333         call.  Track mode when given in rtx.
19334         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
19335         (default_address_cost): Pass Pmode to rtx_cost.
19336         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
19337         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
19338         with NULL set.
19339         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
19340         (notreg_cost): Add mode param.  Use it.
19341         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
19342         mode param and pass to set_src_cost.  Update all calls.
19343         (hash_scan_set): Formatting.
19344         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
19345         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
19346         * hooks.h: Ditto.
19347         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
19348         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
19349         emit_store_flag): Update set_src_cost and rtx_cost calls.
19350         * auto-inc-dec.c (attempt_change): Likewise.
19351         * calls.c (precompute_register_parameters): Likewise.
19352         * combine.c (expand_compound_operation, make_extraction,
19353         force_to_mode, distribute_and_simplify_rtx): Likewise.
19354         * dojump.c (prefer_and_bit_test): Likewise.
19355         * dse.c (find_shift_sequence): Likewise.
19356         * expr.c (compress_float_constant): Likewise.
19357         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
19358         * ifcvt.c (noce_try_sign_mask): Likewise.
19359         * loop-doloop.c (doloop_optimize): Likewise.
19360         * loop-invariant.c (create_new_invariant): Likewise.
19361         * lower-subreg.c (shift_cost, compute_costs): Likewise.
19362         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
19363         lshift_cheap_p): Likewise.
19364         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
19365         try_replace_in_use, reload_cse_move2add): Likewise.
19366         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
19367         Likewise.
19368         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
19369         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
19370         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
19371         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
19372         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
19373         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
19374         to rtx_cost calls.
19375         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
19376         * config/arc/arc.c (arc_rtx_costs): Likewise.
19377         * config/arm/arm.c (arm_rtx_costs): Likewise.
19378         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
19379         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
19380         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
19381         * config/cris/cris.c (cris_rtx_costs): Likewise.
19382         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
19383         * config/frv/frv.c (frv_rtx_costs): Likewise.
19384         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
19385         * config/i386/i386.c (ix86_rtx_costs): Likewise.
19386         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
19387         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
19388         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
19389         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
19390         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
19391         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
19392         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
19393         * config/mep/mep.c (mep_rtx_cost): Likewise.
19394         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
19395         * config/mips/mips.c (mips_rtx_costs): Likewise.
19396         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
19397         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
19398         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
19399         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
19400         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
19401         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
19402         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
19403         * config/pa/pa.c (hppa_rtx_costs): Likewise.
19404         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
19405         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
19406         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
19407         * config/s390/s390.c (s390_rtx_costs): Likewise.
19408         * config/sh/sh.c (sh_rtx_costs): Likewise.
19409         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
19410         * config/spu/spu.c (spu_rtx_costs): Likewise.
19411         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
19412         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
19413         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
19414         * config/v850/v850.c (v850_rtx_costs): Likewise.
19415         * config/vax/vax.c (vax_rtx_costs): Likewise.
19416         * config/visium/visium.c (visium_rtx_costs): Likewise.
19417         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
19418         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
19419         "code" param, and pass as outer_code to first rtx_cost call.  Pass
19420         mode to rtx_cost calls.
19421         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
19422         calls.
19423         (aarch64_rtx_costs_wrapper): Update.
19424         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
19425         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
19426         rtx_cost calls.
19427         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
19428         and rtx_cost calls.
19429         (avr_operand_rtx_cost): Similarly.
19430         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
19431         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
19432         * config/mips/mips.c (mips_stack_address_p): Comment typo.
19433         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
19434         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
19435         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
19436         rtx_cost.
19437         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
19438         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
19439         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
19440         * doc/tm.texi: Regenerate.
19441
19442 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
19443
19444         * tree-core.h: Include symtab.h.
19445         * rtl.h: Include hard-reg-set.h but not flags.h.
19446         (HARD_CONST): Remove condition compilation involving HARD_CONST since
19447         hard-reg-set.h is always included.
19448         * regs.h: Don't include hard-reg-set.h or rtl.h.
19449         * cfg.h: Include dominance.h.
19450         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
19451         * backend.h: New.  Aggregate commonly used backend header files.
19452         * gimple-ssa.h: Don't include tree-hasher.h.
19453         * ssa.h: New.  Aggregate commonly used SSA header files.
19454         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
19455         * sel-sched-ir.h: Flatten includes.
19456         * lra-int.h: Flatten completely.
19457         * sel-sched-dump.h: Flatten includes.
19458         * ira-int.h: Flatten includes.
19459         * gimple-streamer.h: Remove all includes.
19460         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
19461         * resource.h: Flatten hard-reg-set.h and df.h.
19462         * sched-int.h: Flatten insn-arrt.h and df.h.
19463         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
19464         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
19465         * genattrtab.c (write_header): Adjust generated includes.
19466         * genautomata.c (main): Likewise.
19467         * genconditions.c (write-header): Likewise.
19468         * genemit.c (main): Likewise.
19469         * gengtype.c (open_base_files): Likewise.
19470         * genopinit.c (main): Likewise.
19471         * genoutput.c (output_prologue): Likewise.
19472         * genpeep.c (main): Likewise.
19473         * genpreds.c (write_insn_preds_c): Likewise.
19474         * genrecog.c (write_header): Likewise.
19475         * alias.c: Adjust includes.
19476         * asan.c: Likewise.
19477         * attribs.c: Likewise.
19478         * auto-inc-dec.c: Likewise.
19479         * auto-profile.c: Likewise.
19480         * bb-reorder.c: Likewise.
19481         * bt-load.c: Likewise.
19482         * builtins.c: Likewise.
19483         * caller-save.c: Likewise.
19484         * calls.c: Likewise.
19485         * ccmp.c: Likewise.
19486         * cfg.c: Likewise.
19487         * cfganal.c: Likewise.
19488         * cfgbuild.c: Likewise.
19489         * cfgcleanup.c: Likewise.
19490         * cfgexpand.c: Likewise.
19491         * cfghooks.c: Likewise.
19492         * cfgloop.c: Likewise.
19493         * cfgloopanal.c: Likewise.
19494         * cfgloopmanip.c: Likewise.
19495         * cfgrtl.c: Likewise.
19496         * cgraph.c: Likewise.
19497         * cgraphbuild.c: Likewise.
19498         * cgraphclones.c: Likewise.
19499         * cgraphunit.c: Likewise.
19500         * cilk-common.c: Likewise.
19501         * combine-stack-adj.c: Likewise.
19502         * combine.c: Likewise.
19503         * compare-elim.c: Likewise.
19504         * convert.c: Likewise.
19505         * coverage.c: Likewise.
19506         * cppbuiltin.c: Likewise.
19507         * cprop.c: Likewise.
19508         * cse.c: Likewise.
19509         * cselib.c: Likewise.
19510         * data-streamer-in.c: Likewise.
19511         * data-streamer-out.c: Likewise.
19512         * data-streamer.c: Likewise.
19513         * dbxout.c: Likewise.
19514         * dce.c: Likewise.
19515         * ddg.c: Likewise.
19516         * debug.c: Likewise.
19517         * df-core.c: Likewise.
19518         * df-problems.c: Likewise.
19519         * df-scan.c: Likewise.
19520         * dfp.c: Likewise.
19521         * dojump.c: Likewise.
19522         * dominance.c: Likewise.
19523         * domwalk.c: Likewise.
19524         * double-int.c: Likewise.
19525         * dse.c: Likewise.
19526         * dumpfile.c: Likewise.
19527         * dwarf2asm.c: Likewise.
19528         * dwarf2cfi.c: Likewise.
19529         * dwarf2out.c: Likewise.
19530         * emit-rtl.c: Likewise.
19531         * et-forest.c: Likewise.
19532         * except.c: Likewise.
19533         * explow.c: Likewise.
19534         * expmed.c: Likewise.
19535         * expr.c: Likewise.
19536         * final.c: Likewise.
19537         * fixed-value.c: Likewise.
19538         * fold-const.c: Likewise.
19539         * function.c: Likewise.
19540         * fwprop.c: Likewise.
19541         * gcc-plugin.h: Likewise.
19542         * gcse-common.c: Likewise.
19543         * gcse.c: Likewise.
19544         * generic-match-head.c: Likewise.
19545         * ggc-page.c: Likewise.
19546         * gimple-builder.c: Likewise.
19547         * gimple-expr.c: Likewise.
19548         * gimple-fold.c: Likewise.
19549         * gimple-iterator.c: Likewise.
19550         * gimple-low.c: Likewise.
19551         * gimple-match-head.c: Likewise.
19552         * gimple-pretty-print.c: Likewise.
19553         * gimple-ssa-isolate-paths.c: Likewise.
19554         * gimple-ssa-strength-reduction.c: Likewise.
19555         * gimple-streamer-in.c: Likewise.
19556         * gimple-streamer-out.c: Likewise.
19557         * gimple-walk.c: Likewise.
19558         * gimple.c: Likewise.
19559         * gimplify-me.c: Likewise.
19560         * gimplify.c: Likewise.
19561         * godump.c: Likewise.
19562         * graph.c: Likewise.
19563         * graphite-blocking.c: Likewise.
19564         * graphite-dependences.c: Likewise.
19565         * graphite-interchange.c: Likewise.
19566         * graphite-isl-ast-to-gimple.c: Likewise.
19567         * graphite-optimize-isl.c: Likewise.
19568         * graphite-poly.c: Likewise.
19569         * graphite-scop-detection.c: Likewise.
19570         * graphite-sese-to-poly.c: Likewise.
19571         * graphite.c: Likewise.
19572         * haifa-sched.c: Likewise.
19573         * hw-doloop.c: Likewise.
19574         * ifcvt.c: Likewise.
19575         * init-regs.c: Likewise.
19576         * internal-fn.c: Likewise.
19577         * ipa-chkp.c: Likewise.
19578         * ipa-comdats.c: Likewise.
19579         * ipa-cp.c: Likewise.
19580         * ipa-devirt.c: Likewise.
19581         * ipa-icf-gimple.c: Likewise.
19582         * ipa-icf.c: Likewise.
19583         * ipa-inline-analysis.c: Likewise.
19584         * ipa-inline-transform.c: Likewise.
19585         * ipa-inline.c: Likewise.
19586         * ipa-polymorphic-call.c: Likewise.
19587         * ipa-profile.c: Likewise.
19588         * ipa-prop.c: Likewise.
19589         * ipa-pure-const.c: Likewise.
19590         * ipa-ref.c: Likewise.
19591         * ipa-reference.c: Likewise.
19592         * ipa-split.c: Likewise.
19593         * ipa-utils.c: Likewise.
19594         * ipa-visibility.c: Likewise.
19595         * ipa.c: Likewise.
19596         * ira-build.c: Likewise.
19597         * ira-color.c: Likewise.
19598         * ira-conflicts.c: Likewise.
19599         * ira-costs.c: Likewise.
19600         * ira-emit.c: Likewise.
19601         * ira-lives.c: Likewise.
19602         * ira.c: Likewise.
19603         * jump.c: Likewise.
19604         * langhooks.c: Likewise.
19605         * lcm.c: Likewise.
19606         * loop-doloop.c: Likewise.
19607         * loop-init.c: Likewise.
19608         * loop-invariant.c: Likewise.
19609         * loop-iv.c: Likewise.
19610         * loop-unroll.c: Likewise.
19611         * lower-subreg.c: Likewise.
19612         * lra-assigns.c: Likewise.
19613         * lra-coalesce.c: Likewise.
19614         * lra-constraints.c: Likewise.
19615         * lra-eliminations.c: Likewise.
19616         * lra-lives.c: Likewise.
19617         * lra-remat.c: Likewise.
19618         * lra-spills.c: Likewise.
19619         * lra.c: Likewise.
19620         * lto-cgraph.c: Likewise.
19621         * lto-compress.c: Likewise.
19622         * lto-opts.c: Likewise.
19623         * lto-section-in.c: Likewise.
19624         * lto-section-out.c: Likewise.
19625         * lto-streamer-in.c: Likewise.
19626         * lto-streamer-out.c: Likewise.
19627         * lto-streamer.c: Likewise.
19628         * mcf.c: Likewise.
19629         * mode-switching.c: Likewise.
19630         * modulo-sched.c: Likewise.
19631         * omega.c: Likewise.
19632         * omp-low.c: Likewise.
19633         * optabs.c: Likewise.
19634         * opts-global.c: Likewise.
19635         * passes.c: Likewise.
19636         * plugin.c: Likewise.
19637         * postreload-gcse.c: Likewise.
19638         * postreload.c: Likewise.
19639         * predict.c: Likewise.
19640         * print-rtl.c: Likewise.
19641         * print-tree.c: Likewise.
19642         * profile.c: Likewise.
19643         * real.c: Likewise.
19644         * realmpfr.c: Likewise.
19645         * recog.c: Likewise.
19646         * ree.c: Likewise.
19647         * reg-stack.c: Likewise.
19648         * regcprop.c: Likewise.
19649         * reginfo.c: Likewise.
19650         * regrename.c: Likewise.
19651         * regstat.c: Likewise.
19652         * reload.c: Likewise.
19653         * reload1.c: Likewise.
19654         * reorg.c: Likewise.
19655         * resource.c: Likewise.
19656         * rtl-chkp.c: Likewise.
19657         * rtlanal.c: Likewise.
19658         * rtlhooks.c: Likewise.
19659         * sanopt.c: Likewise.
19660         * sched-deps.c: Likewise.
19661         * sched-ebb.c: Likewise.
19662         * sched-rgn.c: Likewise.
19663         * sched-vis.c: Likewise.
19664         * sdbout.c: Likewise.
19665         * sel-sched-dump.c: Likewise.
19666         * sel-sched-ir.c: Likewise.
19667         * sel-sched.c: Likewise.
19668         * sese.c: Likewise.
19669         * shrink-wrap.c: Likewise.
19670         * simplify-rtx.c: Likewise.
19671         * stack-ptr-mod.c: Likewise.
19672         * stmt.c: Likewise.
19673         * stor-layout.c: Likewise.
19674         * store-motion.c: Likewise.
19675         * stringpool.c: Likewise.
19676         * symtab.c: Likewise.
19677         * target-globals.c: Likewise.
19678         * targhooks.c: Likewise.
19679         * toplev.c: Likewise.
19680         * tracer.c: Likewise.
19681         * trans-mem.c: Likewise.
19682         * tree-affine.c: Likewise.
19683         * tree-browser.c: Likewise.
19684         * tree-call-cdce.c: Likewise.
19685         * tree-cfg.c: Likewise.
19686         * tree-cfgcleanup.c: Likewise.
19687         * tree-chkp-opt.c: Likewise.
19688         * tree-chkp.c: Likewise.
19689         * tree-chrec.c: Likewise.
19690         * tree-complex.c: Likewise.
19691         * tree-data-ref.c: Likewise.
19692         * tree-dfa.c: Likewise.
19693         * tree-diagnostic.c: Likewise.
19694         * tree-dump.c: Likewise.
19695         * tree-eh.c: Likewise.
19696         * tree-emutls.c: Likewise.
19697         * tree-if-conv.c: Likewise.
19698         * tree-inline.c: Likewise.
19699         * tree-into-ssa.c: Likewise.
19700         * tree-iterator.c: Likewise.
19701         * tree-loop-distribution.c: Likewise.
19702         * tree-nested.c: Likewise.
19703         * tree-nrv.c: Likewise.
19704         * tree-object-size.c: Likewise.
19705         * tree-outof-ssa.c: Likewise.
19706         * tree-parloops.c: Likewise.
19707         * tree-phinodes.c: Likewise.
19708         * tree-predcom.c: Likewise.
19709         * tree-pretty-print.c: Likewise.
19710         * tree-profile.c: Likewise.
19711         * tree-scalar-evolution.c: Likewise.
19712         * tree-sra.c: Likewise.
19713         * tree-ssa-address.c: Likewise.
19714         * tree-ssa-alias.c: Likewise.
19715         * tree-ssa-ccp.c: Likewise.
19716         * tree-ssa-coalesce.c: Likewise.
19717         * tree-ssa-copy.c: Likewise.
19718         * tree-ssa-copyrename.c: Likewise.
19719         * tree-ssa-dce.c: Likewise.
19720         * tree-ssa-dom.c: Likewise.
19721         * tree-ssa-dse.c: Likewise.
19722         * tree-ssa-forwprop.c: Likewise.
19723         * tree-ssa-ifcombine.c: Likewise.
19724         * tree-ssa-live.c: Likewise.
19725         * tree-ssa-loop-ch.c: Likewise.
19726         * tree-ssa-loop-im.c: Likewise.
19727         * tree-ssa-loop-ivcanon.c: Likewise.
19728         * tree-ssa-loop-ivopts.c: Likewise.
19729         * tree-ssa-loop-manip.c: Likewise.
19730         * tree-ssa-loop-niter.c: Likewise.
19731         * tree-ssa-loop-prefetch.c: Likewise.
19732         * tree-ssa-loop-unswitch.c: Likewise.
19733         * tree-ssa-loop.c: Likewise.
19734         * tree-ssa-math-opts.c: Likewise.
19735         * tree-ssa-operands.c: Likewise.
19736         * tree-ssa-phiopt.c: Likewise.
19737         * tree-ssa-phiprop.c: Likewise.
19738         * tree-ssa-pre.c: Likewise.
19739         * tree-ssa-propagate.c: Likewise.
19740         * tree-ssa-reassoc.c: Likewise.
19741         * tree-ssa-sccvn.c: Likewise.
19742         * tree-ssa-scopedtables.c: Likewise.
19743         * tree-ssa-sink.c: Likewise.
19744         * tree-ssa-strlen.c: Likewise.
19745         * tree-ssa-structalias.c: Likewise.
19746         * tree-ssa-tail-merge.c: Likewise.
19747         * tree-ssa-ter.c: Likewise.
19748         * tree-ssa-threadedge.c: Likewise.
19749         * tree-ssa-threadupdate.c: Likewise.
19750         * tree-ssa-uncprop.c: Likewise.
19751         * tree-ssa-uninit.c: Likewise.
19752         * tree-ssa.c: Likewise.
19753         * tree-ssanames.c: Likewise.
19754         * tree-stdarg.c: Likewise.
19755         * tree-streamer-in.c: Likewise.
19756         * tree-streamer-out.c: Likewise.
19757         * tree-streamer.c: Likewise.
19758         * tree-switch-conversion.c: Likewise.
19759         * tree-tailcall.c: Likewise.
19760         * tree-vect-data-refs.c: Likewise.
19761         * tree-vect-generic.c: Likewise.
19762         * tree-vect-loop-manip.c: Likewise.
19763         * tree-vect-loop.c: Likewise.
19764         * tree-vect-patterns.c: Likewise.
19765         * tree-vect-slp.c: Likewise.
19766         * tree-vect-stmts.c: Likewise.
19767         * tree-vectorizer.c: Likewise.
19768         * tree-vrp.c: Likewise.
19769         * tree.c: Likewise.
19770         * tsan.c: Likewise.
19771         * ubsan.c: Likewise.
19772         * valtrack.c: Likewise.
19773         * value-prof.c: Likewise.
19774         * var-tracking.c: Likewise.
19775         * varasm.c: Likewise.
19776         * varpool.c: Likewise.
19777         * vmsdbgout.c: Likewise.
19778         * vtable-verify.c: Likewise.
19779         * web.c: Likewise.
19780         * wide-int.cc: Likewise.
19781         * xcoffout.c: Likewise.
19782         * config/aarch64/aarch64-builtins.c: Likewise.
19783         * config/aarch64/aarch64.c: Likewise.
19784         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
19785         * config/alpha/alpha.c: Likewise.
19786         * config/arc/arc.c: Likewise.
19787         * config/arm/aarch-common.c: Likewise.
19788         * config/arm/arm-builtins.c: Likewise.
19789         * config/arm/arm-c.c: Likewise.
19790         * config/arm/arm.c: Likewise.
19791         * config/avr/avr-c.c: Likewise.
19792         * config/avr/avr-log.c: Likewise.
19793         * config/avr/avr.c: Likewise.
19794         * config/bfin/bfin.c: Likewise.
19795         * config/c6x/c6x.c: Likewise.
19796         * config/cr16/cr16.c: Likewise.
19797         * config/cris/cris.c: Likewise.
19798         * config/darwin-c.c: Likewise.
19799         * config/darwin.c: Likewise.
19800         * config/epiphany/epiphany.c: Likewise.
19801         * config/epiphany/mode-switch-use.c: Likewise.
19802         * config/epiphany/resolve-sw-modes.c: Likewise.
19803         * config/fr30/fr30.c: Likewise.
19804         * config/frv/frv.c: Likewise.
19805         * config/ft32/ft32.c: Likewise.
19806         * config/h8300/h8300.c: Likewise.
19807         * config/i386/i386-c.c: Likewise.
19808         * config/i386/i386.c: Likewise.
19809         * config/i386/msformat-c.c: Likewise.
19810         * config/i386/winnt-cxx.c: Likewise.
19811         * config/i386/winnt-stubs.c: Likewise.
19812         * config/i386/winnt.c: Likewise.
19813         * config/ia64/ia64-c.c: Likewise.
19814         * config/ia64/ia64.c: Likewise.
19815         * config/iq2000/iq2000.c: Likewise.
19816         * config/lm32/lm32.c: Likewise.
19817         * config/m32c/m32c-pragma.c: Likewise.
19818         * config/m32c/m32c.c: Likewise.
19819         * config/m32r/m32r.c: Likewise.
19820         * config/m68k/m68k.c: Likewise.
19821         * config/mcore/mcore.c: Likewise.
19822         * config/mep/mep-pragma.c: Likewise.
19823         * config/mep/mep.c: Likewise.
19824         * config/microblaze/microblaze-c.c: Likewise.
19825         * config/microblaze/microblaze.c: Likewise.
19826         * config/mips/mips.c: Likewise.
19827         * config/mmix/mmix.c: Likewise.
19828         * config/mn10300/mn10300.c: Likewise.
19829         * config/moxie/moxie.c: Likewise.
19830         * config/msp430/msp430-c.c: Likewise.
19831         * config/msp430/msp430.c: Likewise.
19832         * config/nds32/nds32-cost.c: Likewise.
19833         * config/nds32/nds32-fp-as-gp.c: Likewise.
19834         * config/nds32/nds32-intrinsic.c: Likewise.
19835         * config/nds32/nds32-isr.c: Likewise.
19836         * config/nds32/nds32-md-auxiliary.c: Likewise.
19837         * config/nds32/nds32-memory-manipulation.c: Likewise.
19838         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
19839         * config/nds32/nds32-predicates.c: Likewise.
19840         * config/nds32/nds32.c: Likewise.
19841         * config/nios2/nios2.c: Likewise.
19842         * config/nvptx/nvptx.c: Likewise.
19843         * config/pa/pa.c: Likewise.
19844         * config/pdp11/pdp11.c: Likewise.
19845         * config/rl78/rl78-c.c: Likewise.
19846         * config/rl78/rl78.c: Likewise.
19847         * config/rs6000/rs6000-c.c: Likewise.
19848         * config/rs6000/rs6000.c: Likewise.
19849         * config/rx/rx.c: Likewise.
19850         * config/s390/s390-c.c: Likewise.
19851         * config/s390/s390.c: Likewise.
19852         * config/sh/sh-c.c: Likewise.
19853         * config/sh/sh-mem.cc: Likewise.
19854         * config/sh/sh.c: Likewise.
19855         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
19856         * config/sh/sh_treg_combine.cc: Likewise.
19857         * config/sol2-c.c: Likewise.
19858         * config/sol2-cxx.c: Likewise.
19859         * config/sol2-stubs.c: Likewise.
19860         * config/sol2.c: Likewise.
19861         * config/sparc/sparc-c.c: Likewise.
19862         * config/sparc/sparc.c: Likewise.
19863         * config/spu/spu-c.c: Likewise.
19864         * config/spu/spu.c: Likewise.
19865         * config/stormy16/stormy16.c: Likewise.
19866         * config/tilegx/mul-tables.c: Likewise.
19867         * config/tilegx/tilegx-c.c: Likewise.
19868         * config/tilegx/tilegx.c: Likewise.
19869         * config/tilepro/mul-tables.c: Likewise.
19870         * config/tilepro/tilepro-c.c: Likewise.
19871         * config/tilepro/tilepro.c: Likewise.
19872         * config/v850/v850-c.c: Likewise.
19873         * config/v850/v850.c: Likewise.
19874         * config/vax/vax.c: Likewise.
19875         * config/visium/visium.c: Likewise.
19876         * config/vms/vms-c.c: Likewise.
19877         * config/vms/vms.c: Likewise.
19878         * config/vxworks.c: Likewise.
19879         * config/xtensa/xtensa.c: Likewise.
19880
19881 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
19882
19883         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
19884         Remove operand constraints.  Change operand 2 predicate to
19885         nonmemory operand.  Limit const_int values to mode bitsize.  Only
19886         allow const_int values less than 32 when optimizing for size.
19887         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
19888         Remove operand constraints.
19889         (*bt<mode>): Use SImode for const_int values less than 32.
19890         (regmode): Remove mode attribute.
19891
19892 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
19893
19894         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
19895         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
19896           moxie_legitimate_address_p): New functions.
19897           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
19898
19899 2015-07-07  Tom de Vries  <tom@codesourcery.com>
19900
19901         PR tree-optimization/66642
19902         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
19903         header comment.  Rename split_edge variable to edge_at_split.  Split
19904         exit edge to create new loop exit bb.  Insert loop exit phis in new
19905         loop exit bb.
19906
19907 2015-07-07  Tom de Vries  <tom@codesourcery.com>
19908
19909         * tree-cfg.c (get_virtual_phi): New function.
19910         * tree-cfg.h (get_virtual_phi): Declare.
19911         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
19912         (rewrite_virtuals_into_loop_closed_ssa): New function.
19913         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
19914         Declare.
19915         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
19916         (transform_to_exit_first_loop_alt): Use
19917         rewrite_virtuals_into_loop_closed_ssa.
19918
19919 2015-07-07  Richard Biener  <rguenther@suse.de>
19920
19921         * fold-const.c (fold_binary_loc): Move
19922         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
19923         * match.pd: ... here.
19924         Add (X * C1) % C2 -> 0 simplification pattern derived from
19925         extract_muldiv_1.
19926
19927 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
19928
19929         PR target/66780
19930         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
19931         change for target/65249.
19932
19933 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
19934
19935         * symtab.c (address_matters_1): Fix typo in comment above.
19936         (can_increase_alignment_p): Likewise.
19937
19938 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19939
19940         * function.c (free_after_compilation): Clear PROP_cfg in
19941         f->curr_properties.
19942
19943 2015-07-07  Richard Biener  <rguenther@suse.de>
19944
19945         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
19946         add which use to.
19947         (add_control_edge): Remove excessive vertical space in dumping.
19948         (process_ssa_edge_worklist): Simulate at most one statement and
19949         return whether we did.  Do not simulate PHIs if they are in a
19950         BB not yet simulated.
19951         (ssa_propagate): Adjust to always drain the BB worklist whenever
19952         a BB is available there, likewise the VARYING edges list before
19953         the interesting edge list.
19954
19955 2015-07-07  Christian Bruel  <christian.bruel@st.com>
19956
19957         PR target/52144
19958         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
19959
19960 2015-07-07  Richard Biener  <rguenther@suse.de>
19961
19962         PR middle-end/66739
19963         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
19964         A - B.
19965
19966 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
19967
19968         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
19969         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
19970         Copy operand 0 to a temporary if !ext_register_operand.  Remove
19971         ancient extract_bit_field workaround.
19972         (insv<mode>_1): Rename from mov<mode>_insv_1.
19973         (*insvqi): Rename from *movqi_insv_2.
19974         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
19975         for renamed insvsi_1.
19976         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
19977
19978 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
19979
19980         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
19981         call to nvptx_reorg_subreg.
19982
19983 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
19984
19985         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
19986         * graphite-dependencies.c, graphite-interchange.c,
19987         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
19988         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
19989         Likewise.
19990
19991 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
19992
19993         * match.pd: Remove element_mode inside HONOR_*.
19994         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
19995         (~X | X -> -1, ~X ^ X -> -1): Merge.
19996         * tree.c (build_each_one_cst): New function.
19997         * tree.h (build_each_one_cst): Likewise.
19998
19999 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
20000
20001         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
20002         PROCESSOR_IAMCU.
20003
20004 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
20005
20006         * config.gcc <mips*-*-*>: Add fused-madd.opt.
20007         * config/mips/mips.opt (mfused-madd): Remove.
20008         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
20009         * config/mips/mips.h (TARGET_MIPS8000): New.
20010         (ISA_HAS_FP_MADD4_MSUB4): Remove.
20011         (ISA_HAS_FP_MADDF_MSUBF): Remove.
20012         (ISA_HAS_FP_MADD3_MSUB3): Remove.
20013         (ISA_HAS_NMADD4_NMSUB4): Remove.
20014         (ISA_HAS_NMADD3_NMSUB3): Remove.
20015         (ISA_HAS_FUSED_MADD4): New.
20016         (ISA_HAS_UNFUSED_MADD4): New.
20017         (ISA_HAS_FUSED_MADDF): New.
20018         (ISA_HAS_FUSED_MADD3): New.
20019         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
20020         (*fma<mode>4_madd3) New.
20021         (*fma<mode>4_madd4) New.
20022         (*fma<mode>4_maddf) New.
20023         (fms<mode>4) New.
20024         (*fms<mode>4_msub3) New.
20025         (*fms<mode>4_msub4) New.
20026         (fnma<mode>4) New.
20027         (*fnma<mode>4_nmadd3) New.
20028         (*fnma<mode>4_nmadd4) New.
20029         (fnms<mode>4) New.
20030         (*fnms<mode>4_nmsub3) New.
20031         (*fnms<mode>4_nmsub4) New.
20032         (*madd4<mode>) Modify to be unfused only.
20033         (*msub4<mode>) Modify to be unfused only.
20034         (*nmadd4<mode>) Modify to be unfused only.
20035         (*nmsub4<mode>) Modify to be unfused only.
20036         (*madd3<mode>) Remove.
20037         (*msub3<mode>) Remove.
20038         (*nmadd3<mode>) Remove.
20039         (*nmsub3<mode>) Remove.
20040         (*nmadd3<mode>_fastmath) Remove.
20041         (*nmsub3<mode>_fastmath) Remove.
20042         (*nmadd4<mode>_fastmath) Update condition.
20043         (*nmsub4<mode>_fastmath) Update condition.
20044
20045 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
20046
20047         PR target/65956
20048         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
20049         alignment attribute, exploring one level down for records and arrays.
20050
20051 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
20052
20053         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
20054         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
20055         Copy operand 1 to a temporary if !ext_register_operand.  Remove
20056         ancient extract_bit_field workaround.
20057         (*extv<mode>): Rename from *mov<mode>_extv_1.
20058         (*extvqi): Rename from *movqi_extv_1.
20059         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
20060         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
20061         to a temporary if !ext_register_operand.  Remove ancient
20062         extract_bit_field workaround.
20063         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
20064         (*extzvqi): Rename from *movqi_extzv_2.
20065         (*testqi_ext_3): Remove modes from const_int_operand predicated
20066         operands.  Add "n" constraint.
20067         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
20068         operand.  Add "J" constraint.
20069         (*btsq, *btrq, *btcq peephole2s): Remove mode from
20070         const_0_to_63 predicated operand.
20071         (regmode): New insn attribute.
20072         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
20073         to nonmemory_operand.  Use regmode insn attribute.
20074         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
20075         (*jcc_bt<mode>_mask): Remove mode from operand 3.
20076         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
20077         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
20078         operands.  Use "N" constraint instead of "n".
20079
20080 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
20081
20082         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
20083
20084 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
20085
20086         PR target/66749
20087         * config/i386/i386.c (iamcu_cost): New.
20088         (m_IAMCU): Likewise.
20089         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
20090         (processor_target_table): Add an entry for "iamcu".
20091         (processor_alias_table): Likewise.
20092         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
20093         (ix86_adjust_cost): Likewise.
20094         (ia32_multipass_dfa_lookahead): Likewise.
20095         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
20096         * config/i386/x86-tune.def: Updated for m_IAMCU.
20097
20098 2015-07-06  Richard Biener  <rguenther@suse.de>
20099
20100         PR tree-optimization/66772
20101         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
20102         values are available in the PHI node BB when there are
20103         still unexecutable edges.
20104
20105 2015-07-06  Richard Biener  <rguenther@suse.de>
20106
20107         PR tree-optimization/66767
20108         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
20109         Make sure to build the alignment test on a SSA name without
20110         final alignment info valid only if the alignment test
20111         evaluates to true.
20112
20113 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
20114
20115         PR target/66620
20116         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
20117         loop start when inserting LSETUP.
20118
20119 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
20120
20121         PR target/53383
20122         * config/i386/i386.c (ix86_option_override_internal): Allow
20123         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
20124
20125 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20126
20127         * read-md.c (decimal_string): Rename to ...
20128         (md_decimal_string): ... this.
20129         (handle_enum): Reflect this.
20130
20131 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
20132
20133         PR target/66731
20134         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
20135
20136 2015-07-06  Richard Biener  <rguenther@suse.de>
20137
20138         PR middle-end/66759
20139         * match.pd: Add missing constraint of y to REAL_CST in
20140         REAL_CST - x CMP y to y - CST CMP x simplification.
20141
20142 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
20143
20144         PR tree-optimization/66757
20145         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
20146
20147 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
20148             Sandra Loosemore <sandra@codesourcery.com>
20149
20150         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
20151         Delete extern declaration.
20152         (gprel_constant_p): Add extern declaration.
20153         * config/nios2/constraints.md ("S"): Use gprel_constant_p
20154         instead of nios2_symbol_ref_in_small_data_p.
20155         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
20156         (nios2_symbol_ref_in_small_data_p): Make static.
20157         (gprel_constant_p): Make non-static.
20158
20159 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
20160
20161         * doc/fragments.texi (Target Fragment): Convert debian.org
20162         link to use https.
20163         * doc/install.texi (Configuration): Ditto.
20164
20165 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
20166
20167         PR tree-optimization/66718
20168         * tree-vect-stmts.c (vectorizable_call): Replace uses of
20169         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
20170
20171         PR tree-optimization/66718
20172         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
20173         vectorizable_load, vectorizable_condition): Move vectype,
20174         nunits, ncopies computation after checking what kind of statement
20175         stmt is.
20176
20177 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
20178
20179         * target-insns.def (extv, extzv, insv): New targetm instruction
20180         patterns.
20181         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
20182         interface.
20183         * recog.c (simplify_while_replacing): Likewise.
20184
20185 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
20186
20187         * target-insns.def (doloop_begin, doloop_end): New targetm
20188         instruction patterns.
20189         * loop-init.c: Include target.h.
20190         (pass_loop2::gate): Use the new targetm patterns instead of
20191         HAVE_*/gen_* interface.
20192         (pass_rtl_doloop::gate): Likewise.
20193         (pass_rtl_doloop::execute): Remove preprocessor condition.
20194         * hw-doloop.c: Build unconditionally.
20195         * loop-doloop.c: Likewise.
20196         (doloop_optimize): Use the new targetm patterns instead of
20197         HAVE_*/gen_* interface.
20198         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
20199         * modulo-sched.c (doloop_register_get): Likewise.
20200
20201 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
20202
20203         * target-insns.def (clear_cache): New targetm instruction pattern.
20204         * builtins.c (expand_builtin___clear_cache): Use it instead of
20205         HAVE_*/gen_* interface.
20206
20207 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
20208
20209         * target-insns.def (allocate_stack, check_stack, probe_stack)
20210         (probe_stack_address, split_stack_prologue, split_stack_space_check):
20211         New targetm instruction patterns.
20212         * explow.c (allocate_dynamic_stack_space): Use them instead of
20213         HAVE_*/gen_* interface.
20214         (emit_stack_probe): Likewise.
20215         (probe_stack_range): Likewise.
20216         * function.c (thread_prologue_and_epilogue_insns): Likewise.
20217
20218 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
20219
20220         * target-insns.def (stack_protect_set, stack_protect_test): New
20221         targetm instruction patterns.
20222         * cfgexpand.c (stack_protect_prologue): Use them instead of
20223         HAVE_*/gen_* interface.
20224         * function.c (stack_protect_epilogue): Likewise.
20225
20226 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
20227
20228         * expr.h (gen_move_insn_uncast): Delete.
20229         * expr.c (gen_move_insn_uncast): Delete.
20230
20231 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
20232
20233         * target-insns.def (restore_stack_block, restore_stack_function)
20234         (restore_stack_nonlocal, save_stack_block, save_stack_function)
20235         (save_stack_nonlocal): New targetm instruction patterns.
20236         * builtins.c (expand_builtin_apply): Use them instead of
20237         HAVE_*/gen_* interface.
20238         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
20239
20240 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
20241
20242         * target-insns.def (trap): New targetm instruction pattern.
20243         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
20244         interface.
20245         * explow.c (allocate_dynamic_stack_space): Likewise.
20246         * ifcvt.c (find_if_header): Likewise.
20247
20248 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
20249
20250         * target-insns.def (prefetch): New targetm instruction pattern.
20251         * tree-ssa-loop-prefetch.c: Include targeth.
20252         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
20253         of HAVE_*/gen_* interface.
20254         * builtins.c (expand_builtin_prefetch): Likewise.
20255         * toplev.c (process_options): Likewise.
20256
20257 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
20258
20259         * target-insns.def (untyped_call, untyped_return): New targetm
20260         instruction patterns.
20261         * builtins.c (expand_builtin_apply): Use them instead of
20262         HAVE_*/gen_* interface.
20263         (result_vector): Define unconditionally.
20264
20265 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
20266
20267         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
20268         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
20269         (nonlocal_goto_receiver): New targetm instruction patterns.
20270         * builtins.c (expand_builtin_setjmp_setup): Use them instead
20271         of HAVE_*/gen_* interface.
20272         (expand_builtin_setjmp_receiver): Likewise.
20273         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
20274         * except.c (expand_dw2_landing_pad_for_region): Likewise.
20275
20276 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
20277
20278         * target.def: Add code_for_* hooks.
20279         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
20280         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
20281         * target-insns.def (casesi, tablejump): New targetm instruction
20282         patterns.
20283         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
20284         (do_tablejump): Likewise.
20285         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
20286         (expand_sjlj_dispatch_table): Likewise.
20287         * targhooks.c (default_case_values_threshold): Likewise.
20288
20289 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
20290
20291         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
20292         Use rtx_insn * instead of rtx.
20293         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
20294         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
20295         (nios2_call_tls_get_addr): Likewise.
20296         (nios2_emit_expensive_div): Likewise.
20297         (nios2_emit_move_sequence): Change return type to bool.
20298         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
20299         Change return type to bool.
20300
20301 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20302
20303         PR target/66747
20304         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
20305
20306 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
20307
20308         PR target/66114
20309         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
20310         of register_operand.  Remove constraint.
20311
20312 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
20313
20314         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
20315         the first argument.
20316
20317 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
20318
20319         * attribs.c (decl_attributes): Guard inform with the return value
20320         of the preceding warning.
20321
20322 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
20323
20324         * doc/invoke.texi (moverride): Move to correct section.
20325
20326 2015-07-03  Richard Biener  <rguenther@suse.de>
20327
20328         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
20329         Copy from tree.c
20330         (dt_operand::gen_gimple_expr): After valueizing operands
20331         re-canonicalize operand order for commutative tree codes.
20332
20333 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
20334
20335         PR target/66746.
20336         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
20337         is defined.
20338         (__crc32w): Likewise.
20339         (__crc32d): Likewise.
20340         (__rdpmc): Likewise.
20341         (__rdtscp): Likewise.
20342         (_rdpmc): Likewise.
20343         (_rdtscp): Likewise.
20344         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
20345         is defined.
20346
20347 2015-07-03  Richard Biener  <rguenther@suse.de>
20348
20349         * fold-const.c (fold_mathfn_compare): Remove.
20350         (fold_inf_compare): Likewise.
20351         (fold_comparison): Move floating point comparison simplifications...
20352         * match.pd: ... to patterns here.  Introduce simple_comparisons
20353         operator list and use it for patterns formerly in fold_comparison.
20354
20355 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
20356
20357         PR tree-optimization/66119
20358         * toplev.c (process_options): Don't set up default values for
20359         the sra_max_scalarization_size_{speed,size} parameters.
20360         * tree-sra (analyze_all_variable_accesses): If no values
20361         have been set for the sra_max_scalarization_size_{speed,size}
20362         parameters, call get_move_ratio to get target defaults.
20363
20364 2015-07-03  Richard Biener  <rguenther@suse.de>
20365
20366         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
20367         * match.pd: ... here.
20368
20369 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
20370
20371         PR target/37072
20372         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
20373         is not actually the default on FreeBSD.
20374
20375 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20376
20377         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
20378         definition.
20379         (CMPGE_8HI): Likewise.
20380         (CMPGE_4SI): Likewise.
20381         (CMPGE_2DI): Likewise.
20382         (CMPGE_U16QI): Likewise.
20383         (CMPGE_U8HI): Likewise.
20384         (CMPGE_U4SI): Likewise.
20385         (CMPGE_U2DI): Likewise.
20386         (CMPLE_16QI): Likewise.
20387         (CMPLE_8HI): Likewise.
20388         (CMPLE_4SI): Likewise.
20389         (CMPLE_2DI): Likewise.
20390         (CMPLE_U16QI): Likewise.
20391         (CMPLE_U8HI): Likewise.
20392         (CMPLE_U4SI): Likewise.
20393         (CMPLE_U2DI): Likewise.
20394         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20395         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
20396         ALTIVEC_BUILTIN_VEC_CMPLE.
20397         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
20398         floating-point vector modes.
20399         (vector_nlt<mode>): New define_expand.
20400         (vector_nltu<mode>): Likewise.
20401         (vector_ngt<mode>): Likewise.
20402         (vector_ngtu<mode>): Likewise.
20403
20404 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
20405
20406         PR rtl-optimization/66706
20407         * combine.c (make_compound_operation): If an AND of SUBREG of
20408         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
20409
20410 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
20411
20412         * tree-pass.h (make_pass_ch_vect): New.
20413         * passes.def: Add pass_ch_vect just before pass_if_conversion.
20414
20415         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
20416         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
20417         make_pass_ch_vect): New.
20418         (pass_ch): Extend ch_base.
20419
20420         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
20421         (ch_base::copy_headers): ...here.
20422
20423 2015-07-02  Richard Biener  <rguenther@suse.de>
20424
20425         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
20426         * fold-const.c (get_pointer_modulus_and_residue): Remove.
20427         (fold_binary_loc): Implement (T)ptr & CST in terms of
20428         get_pointer_alignment_1.
20429         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
20430         Make sure to build the alignment test on a SSA name without
20431         final alignment info valid only after the prologue.
20432
20433 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
20434
20435         * config/cris/cris.md ("epilogue"): Remove condition.
20436         ("prologue"): Ditto.
20437
20438 2015-07-02  Richard Biener  <rguenther@suse.de>
20439
20440         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
20441         parameter to record a condition that is false.
20442         (record_conditions): When recording an extra NE_EXPR that is
20443         true also record a EQ_EXPR that is false.
20444
20445 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
20446
20447         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
20448         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
20449         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
20450         (set_iv, find_interesting_uses_address, add_candidate_1): New
20451         argument to alloc_iv.
20452         (find_interesting_uses_op, find_interesting_uses_cond): Don't
20453         duplicate struct iv.
20454         (free_loop_data): Don't free struct iv explicitly.
20455         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
20456
20457 2015-07-01  DJ Delorie  <dj@redhat.com>
20458
20459         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
20460         (LIB_SPEC): Add.
20461         (SUPPORTS_DISCRIMINATOR): Define.
20462
20463 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
20464
20465         PR bootstrap/66685
20466         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
20467         there are no CALLs in the same pattern.
20468
20469 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20470
20471         PR rtl-optimization/61047
20472         * rtlanal.c (get_initial_register_offset): New function.
20473         (rtx_addr_can_trap_p_1): Check offsets of stack references.
20474
20475 2015-07-01  Richard Biener  <rguenther@suse.de>
20476
20477         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
20478         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
20479         ~X CMP C -> X CMP' ~C to ...
20480         * match.pd: ... patterns here.
20481
20482 2015-07-01  Nick Clifton  <nickc@redhat.com>
20483
20484         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
20485         a 16-bit value into a 20-bit memory slot.
20486
20487 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
20488
20489         * doc/sourcebuild.texi (AArch64-specific attributes): Document
20490         "aarch64_tiny", "aarch64_small", "aarch64_large",
20491         "aarch64_little_endian", "aarch64_big_endian".
20492
20493 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
20494
20495         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
20496         Document "aarch64_small_fpic".
20497
20498 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
20499
20500         * configure.ac: Add check for aarch64 assembler -fpic relocation
20501         modifier support.
20502         * configure: Regenerate.
20503         * config.in: Regenerate.
20504         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
20505         to -fPIC if not support of -fpic relocation modifier in assembler.
20506
20507 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
20508
20509         PR bootstrap/66685
20510         * rtl.c (classify_insn): Handle returns in PARALLELs.
20511
20512 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
20513
20514         PR middle-end/66633
20515         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
20516         to true if the function is nested and if not optimizing.
20517         (convert_local_omp_clauses): Initialize need_frame to true if the
20518         function contains nested functions and if not optimizing.
20519
20520 2015-07-01  Richard Biener  <rguenther@suse.de>
20521
20522         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
20523         (X & Y) ^ Y -> ~X & Y transforms to ...
20524         * match.pd: ... here.
20525
20526 2015-07-01  Richard Biener <rguenther@suse.de>
20527
20528         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
20529         of converts to avoid uninteresting noise from the conversion
20530         simplifying patterns.
20531
20532 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
20533
20534         * config/c6x/c6x.c (try_rename_operands): Do not depend on
20535         gcc_assert evaluating its argument for side-effect.
20536
20537 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
20538
20539         PR target/64833
20540         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
20541         flag_pic is set.
20542
20543 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
20544
20545         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
20546         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
20547         (hash_scc): Add this_ref_p and ref_p parameters and pass them
20548         to the inner DFS walk.
20549
20550 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
20551
20552         * target-insns.def (jump): New targetm instruction pattern.
20553         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
20554         instead of gen_jump.
20555         (fix_up_crossing_landing_pad): Likewise.
20556         (add_labels_and_missing_jumps): Likewise.
20557         (fix_crossing_conditional_branches): Likewise.
20558         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
20559         (force_nonfallthru_and_redirect): Likewise.
20560         * cse.c (cse_insn): Likewise.
20561         * expmed.c (expand_divmod): Likewise.
20562         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
20563         * haifa-sched.c (init_before_recovery): Likewise.
20564         (sched_create_recovery_edges): Likewise.
20565         * ifcvt.c (find_cond_trap): Likewise.
20566         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
20567         (expand_float, expand_fix): Likewise.
20568         * stmt.c (emit_jump): Likewise.
20569
20570 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
20571
20572         * defaults.h (HAVE_load_multiple, gen_load_multiple)
20573         (HAVE_store_multiple, gen_store_multiple): Delete.
20574         * target-insns.def (load_multiple, store_multiple): New targetm
20575         instruction patterns.
20576         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
20577         of HAVE_*/gen_* interface.
20578
20579 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
20580
20581         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
20582         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
20583         (gen_mem_signal_fence): Delete.
20584         * target-insns.def (mem_signal_fence, mem_thread_fence)
20585         (memory_barrier): New targetm instruction patterns.
20586         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
20587         interface.
20588         (expand_mem_signal_fence): Likewise.
20589
20590 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
20591
20592         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
20593         * target-insns.def (epilogue, prologue, sibcall_prologue): New
20594         targetm instruction patterns.
20595         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
20596         interface.
20597         * calls.c (expand_call): Likewise.
20598         * cfgrtl.c (cfg_layout_finalize): Likewise.
20599         * df-scan.c (df_get_entry_block_def_set): Likewise.
20600         (df_get_exit_block_use_set): Likewise.
20601         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
20602         * final.c (final_start_function): Likewise.
20603         * function.c (thread_prologue_and_epilogue_insns): Likewise.
20604         (reposition_prologue_and_epilogue_notes): Likewise.
20605         * reorg.c (find_end_label): Likewise.
20606         * toplev.c (process_options): Likewise.
20607
20608 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
20609
20610         * typed-splay-tree.h: New file.
20611
20612 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
20613
20614         PR debug/66691
20615         * lra-int.h (lra_substitute_pseudo): Add a parameter.
20616         (lra_substitute_pseudo_within_insn): Ditto.
20617         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
20618         of constant.
20619         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
20620         to lra_substitute_pseudo.
20621         * lra-lives.c (process_bb_lives): Add an argument to
20622         lra_substitute_pseudo_within_insn call.
20623         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
20624         argument to lra_substitute_pseudo and
20625         lra_substitute_pseudo_within_insn calls.
20626         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
20627
20628 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
20629
20630         * configure: Regenerated.
20631
20632 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
20633
20634         * config.gcc: Support i[34567]86-*-elfiamcu target.
20635         * config/i386/iamcu.h: New.
20636         * config/i386/i386.opt: Add -miamcu.
20637         * doc/invoke.texi: Document -miamcu.
20638         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
20639         off x87/MMX/SSE/AVX codegen for -miamcu.
20640         * config/i386/i386-c.c (ix86_target_macros_internal): Define
20641         __iamcu/__iamcu__ for -miamcu.
20642         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
20643         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
20644         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
20645         * config/i386/i386.c (ix86_option_override_internal): Ignore and
20646         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
20647         MCU by default.  Default long double to 64-bit for Intel MCU.
20648         Turn on -freg-struct-return for Intel MCU.  Issue an error when
20649         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
20650         AVX is turned on.
20651         (function_arg_advance_32): Pass value whose size is no larger
20652         than 8 bytes in registers for Intel MCU.
20653         (function_arg_32): Likewise.
20654         (ix86_return_in_memory): Return value whose size is no larger
20655         than 8 bytes in registers for Intel MCU.
20656         (iamcu_alignment): New function.
20657         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
20658         true.
20659         (ix86_local_alignment): Don't increase alignment for Intel MCU.
20660         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
20661         true.
20662
20663 2015-06-30  Marek Polacek  <polacek@redhat.com>
20664
20665         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
20666         both operands of the resulting expression.
20667
20668         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
20669         the final expression with the operand's type and then convert
20670         it to the type of the expression.
20671
20672 2015-06-30  Richard Biener  <rguenther@suse.de>
20673
20674         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
20675         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
20676         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
20677         * match.pd: ... to patterns here.
20678
20679 2015-06-30  Richard Biener  <rguenther@suse.de>
20680
20681         PR tree-optimization/66704
20682         * tree-vect-data-refs.c (vect_setup_realignment): Use
20683         make_ssa_name for non-SSA name source.
20684
20685 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
20686
20687         PR middle-end/66702
20688         * omp-low.c (simd_clone_adjust): Handle addressable linear
20689         or uniform parameters or non-gimple type uniform parameters.
20690
20691 2015-06-30  Richard Biener  <rguenther@suse.de>
20692
20693         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
20694         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
20695         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
20696         * match.pd: ... here.
20697         Add a few cases of A - B -> A + (-B) when B "easily" negates.
20698         Move (x & y) | x -> x and friends before
20699         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
20700
20701 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
20702
20703         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
20704         -mfix-ut699 is not specified.
20705         (leon3_load): Rename into...
20706         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
20707         is specified.
20708
20709 2015-06-30  Marek Polacek  <polacek@redhat.com>
20710
20711         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
20712         * match.pd: ... here.
20713
20714 2015-06-30  Richard Biener  <rguenther@suse.de>
20715
20716         * target-insns.def (canonicalize_funcptr_for_compare): Add.
20717         * fold-const.c (build_range_check): Replace uses of
20718         HAVE_canonicalize_funcptr_for_compare.
20719         (fold_widened_comparison): Likewise.
20720         (fold_sign_changed_comparison): Likewise.
20721         * dojump.c: Include "target.h".
20722         (do_compare_and_jump): Replace uses of
20723         HAVE_canonicalize_funcptr_for_compare and
20724         gen_canonicalize_funcptr_for_compare.
20725         * expr.c (do_store_flag): Likewise.
20726
20727 2015-06-30  Tom de Vries  <tom@codesourcery.com>
20728
20729         PR tree-optimization/66652
20730         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
20731         max_loop_iterations to determine if nit + 1 overflows.
20732
20733 2015-06-30  Richard Biener  <rguenther@suse.de>
20734
20735         * tree-vrp.c (register_edge_assert_for_2): Also register
20736         asserts for dominating conversion results.
20737
20738 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
20739
20740         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
20741         field in struct iv.
20742
20743 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
20744
20745         PR target/66509
20746         * configure.ac: Fix filds and fildq test for 64-bit.
20747         * configure: Regenerated.
20748
20749 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
20750
20751         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
20752         (nvptx_reorg): Here.  Keep the non-subreg pieces.
20753
20754 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
20755
20756         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
20757         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
20758
20759 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
20760
20761         * config/i386/i386.md (*jcc_1): Use %! in asm template.
20762         Set attribute "length_nobnd" instead of "length".
20763         (*jcc_2): Ditto.
20764         (jump): Ditto.
20765         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
20766
20767 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
20768
20769         * config/nios2/nios2.c (nios2_delegitimize_address): Make
20770         assert less restrictive.
20771
20772 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20773
20774         PR fortran/66605
20775         * cgraphunit.c (cgraph_node::finalize_function): Do not call
20776         do_warn_unused_parameter.
20777         * function.c (do_warn_unused_parameter): Move from here.
20778         * function.h (do_warn_unused_parameter): Do not declare.
20779
20780 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
20781
20782         PR target/65697
20783         * gcc.target/arm/armv-sync-comp-swap.c: New.
20784         * gcc.target/arm/armv-sync-op-acquire.c: New.
20785         * gcc.target/arm/armv-sync-op-full.c: New.
20786         * gcc.target/arm/armv-sync-op-release.c: New.
20787
20788 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
20789
20790         PR target/65697
20791         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
20792         initial acquire barrier with final barrier.
20793
20794 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
20795
20796         PR target/65697
20797         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
20798         initial acquire barrier with final barrier.
20799
20800 2015-06-29  Richard Henderson  <rth@redhat.com>
20801
20802         * config/i386/constraints.md (Bf): New constraint.
20803         * config/i386/i386-c.c (ix86_target_macros): Define
20804         __GCC_ASM_FLAG_OUTPUTS__.
20805         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
20806         as flags outputs.
20807         * doc/extend.texi (FlagOutputOperands): Document them.
20808
20809 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
20810
20811         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
20812         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
20813         unspec name.
20814         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
20815         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
20816         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
20817         (aarch64_symbol_context): Ditto.
20818         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
20819         and use new pattern name.
20820         (aarch64_expand_mov_immediate): Ditto.
20821         (aarch64_print_operand): Ditto.
20822         (aarch64_classify_tls_symbol): Ditto.
20823
20824 2015-06-29  Marek Polacek  <polacek@redhat.com>
20825             Marc Glisse  <marc.glisse@inria.fr>
20826
20827         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
20828         * match.pd: ... pattern here.
20829
20830 2015-06-29  Tom de Vries  <tom@codesourcery.com>
20831
20832         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
20833         function structure.
20834
20835 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
20836
20837         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
20838         feature description, split out the native option, add a link to
20839         the feature documentation, rearrange and slightly rewrite text.
20840         (Aarch64 options, -mcpu): Likewise.
20841         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
20842         +rdma implies Adv. SIMD.
20843
20844 2015-06-29  Marek Polacek  <polacek@redhat.com>
20845
20846         PR c/66322
20847         * function.c (stack_protect_epilogue): Remove a cast to int.
20848         * doc/invoke.texi: Update -Wswitch-bool description.
20849
20850 2015-06-29  Richard Biener  <rguenther@suse.de>
20851
20852         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
20853         * fold-const.c (fold_binary_loc): Move &A - &B simplification
20854         via ptr_difference_const ...
20855         * match.pd: ... here.
20856         When matching (X ^ Y) == Y also match with swapped operands.
20857
20858 2015-06-29  Richard Biener  <rguenther@suse.de>
20859
20860         * lto-streamer.h (LTO_major_version): Bump to 5.
20861
20862 2015-06-29  Richard Biener  <rguenther@suse.de>
20863
20864         PR tree-optimization/66677
20865         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
20866         STMT_VINFO_VEC_STMT clobbering less strict.
20867
20868 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
20869
20870         PR middle-end/64130
20871         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
20872         division, compute max and min when value ranges for dividend and
20873         divisor are available.
20874
20875 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
20876             Sandra Loosemore <sandra@codesourcery.com>
20877
20878         * regrename.h (regrename_do_replace): Change to return bool.
20879         * regrename.c (rename_chains): Check return value of
20880         regname_do_replace.
20881         (regrename_do_replace): Re-validate the modified insns and
20882         return bool status.
20883         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
20884         Update to match rename_chains changes.
20885         * config/c6x/c6x.c (try_rename_operands): Assert that
20886         regrename_do_replace returns true.
20887
20888 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
20889
20890         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
20891         operand 2 here.  Use copy_addr_to_reg to copy non-index
20892         register operand 2 to a temporary.
20893         (<mode>_stx): Ditto for operand 1.
20894         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
20895         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
20896         (ix86_store_bounds): Ditto.
20897
20898 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
20899
20900         * print-tree.c (print_node) [TREE_VEC]: Print its length.
20901
20902 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
20903
20904         * gimple.c (gimple_call_set_fndecl): Remove.
20905         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
20906         build1_loc directly instead of build_fold_addr_expr_loc.
20907
20908 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
20909
20910         * hash-map.h (hash_map::traverse): Use the definition of the
20911         Key typedef rather than the typedef itself.
20912
20913 2015-06-26  Martin Jambor  <mjambor@suse.cz>
20914
20915         PR debug/66301
20916         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
20917         NULL instead of calling dump_enabled_p.
20918
20919 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
20920
20921         * config/aarch64/aarch64.opt: (override): New.
20922         * doc/invoke.texi (override): Document.
20923         * config/aarch64/aarch64.c (aarch64_flag_desc): New
20924         (aarch64_fusible_pairs): Likewise.
20925         (aarch64_tuning_flags): Likewise.
20926         (aarch64_tuning_override_function): Likewise.
20927         (aarch64_tuning_override_functions): Likewise.
20928         (aarch64_parse_one_option_token): Likewise.
20929         (aarch64_parse_boolean_options): Likewise.
20930         (aarch64_parse_fuse_string): Likewise.
20931         (aarch64_parse_tune_string): Likewise.
20932         (aarch64_parse_one_override_token): Likewise.
20933         (aarch64_parse_override_string): Likewise.
20934         (aarch64_override_options): Parse the -override string if it
20935         is present.
20936
20937 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
20938
20939         * config/aarch64/aarch64-protos.h (tune_params): Remove
20940         const from members.
20941         (aarch64_tune_params): Remove const, change to no longer be
20942         a pointer.
20943         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
20944         change to no longer be a pointer, initialize to generic_tunings.
20945         (aarch64_min_divisions_for_recip_mul): Change dereference of
20946         aarch64_tune_params to member access.
20947         (aarch64_reassociation_width): Likewise.
20948         (aarch64_rtx_mult_cost): Likewise.
20949         (aarch64_address_cost): Likewise.
20950         (aarch64_branch_cost): Likewise.
20951         (aarch64_rtx_costs): Likewise.
20952         (aarch64_register_move_cost): Likewise.
20953         (aarch64_memory_move_cost): Likewise.
20954         (aarch64_sched_issue_rate): Likewise.
20955         (aarch64_builtin_vectorization_cost): Likewise.
20956         (aarch64_override_options): Take a copy of the selected tuning
20957         struct in to aarch64_tune_params, rather than just setting
20958         a pointer, change dereferences of aarch64_tune_params to member
20959         accesses.
20960         (aarch64_override_options_after_change): Change dereferences of
20961         aarch64_tune_params to member access.
20962         (aarch64_macro_fusion_p): Likewise.
20963         (aarch_macro_fusion_pair_p): Likewise.
20964         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
20965
20966 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
20967
20968         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
20969         (aarch64_tune_flags): Likewise.
20970         (AARCH64_TUNE_FMA_STEERING): Likewise.
20971         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
20972         to AARCH64_FL_USE_FMA_STEERING_PASS.
20973         (cortex-a57.cortex-a53): Likewise.
20974         (cortex-a72): Use cortexa72_tunings.
20975         (cortex-a72.cortex-a53): Likewise.
20976         (exynos-m1): Likewise.
20977         * config/aarch64/aarch64-protos.h (tune_params): Add
20978         a field: extra_tuning_flags.
20979         * config/aarch64/aarch64-tuning-flags.def: New.
20980         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
20981         (aarch64_extra_tuning_flags): Likewise.
20982         (aarch64_tune_params): Declare here.
20983         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
20984         (cortexa53_tunings): Likewise.
20985         (cortexa57_tunings): Likewise.
20986         (thunderx_tunings): Likewise.
20987         (xgene1_tunings): Likewise.
20988         (cortexa72_tunings): New.
20989         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
20990          (gate): Check against aarch64_tune_params.
20991         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
20992         aarch64-protos.h.
20993
20994 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
20995
20996         * config/aarch64/aarch64-fusion-pairs.def: New.
20997         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
20998         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
20999         aarch64_fusion_pairs.
21000         (AARCH64_FUSE_MOV_MOVK): Likewise.
21001         (AARCH64_FUSE_ADRP_ADD): Likewise.
21002         (AARCH64_FUSE_MOVK_MOVK): Likewise.
21003         (AARCH64_FUSE_ADRP_LDR): Likewise.
21004         (AARCH64_FUSE_CMP_BRANCH): Likewise.
21005
21006 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
21007
21008         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
21009         SYMBOL_SMALL_GOT_28K.
21010         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
21011         relocation modifiers.
21012         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
21013         (ldr_got_small_28k_<mode>): New.
21014         (ldr_got_small_28k_sidi): New.
21015         * config/aarch64/iterators.md (got_modifier): New mode iterator.
21016         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
21017         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
21018         SYMBOL_SMALL_GOT_28K.
21019         (aarch64_rtx_costs): Add costs for new instruction sequences.
21020         (initialize_aarch64_code_model): Initialize new model.
21021         (aarch64_classify_symbol): Recognize new model and new symbol classification.
21022         (aarch64_asm_preferred_eh_data_format): Support new model.
21023         (aarch64_load_symref_appropriately): Generate new instruction
21024         sequences for -fpic.
21025         (TARGET_USE_PSEUDO_PIC_REG): New definition.
21026         (aarch64_use_pseudo_pic_reg): New function.
21027
21028 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
21029
21030         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
21031         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
21032         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
21033         (aarch64_expand_mov_immediate): Ditto.
21034         (aarch64_print_operand): Ditto.
21035         (aarch64_classify_symbol): Ditto.
21036
21037 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
21038
21039         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
21040
21041 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
21042
21043         PR bootstrap/66638
21044         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
21045         assertion failed.  Remove assertion itself.
21046
21047 2015-06-26  Richard Biener  <rguenther@suse.de>
21048
21049         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
21050         and -A CMP CST -> A CMP -CST which is redundant with a pattern
21051         in match.pd.
21052         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
21053         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
21054         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
21055         * match.pd: ... patterns here.
21056
21057 2015-06-26  Marek Polacek  <polacek@redhat.com>
21058
21059         * match.pd ((x | y) & ~(x & y) -> x ^ y,
21060         (x | y) & (~x ^ y) -> x & y): New patterns.
21061
21062 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
21063
21064         * rtl.h (emit): Add an optional boolean parameter to control
21065         whether barriers are emitted.
21066         * emit-rtl.c (emit): Likewise.
21067         * gensupport.c (get_emit_function): Return null rather than "emit".
21068         * genemit.c (gen_emit_seq): Handle the null return value.
21069         Don't emit barriers after the final instruction in the sequence.
21070         * gentarget-def.c (main): Don't emit barriers after the instruction.
21071
21072 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21073
21074         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
21075         TARGET_UNIFIED_ASM.
21076
21077 2015-06-26  Richard Biener  <rguenther@suse.de>
21078
21079         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
21080
21081 2015-06-26  Richard Biener  <rguenther@suse.de>
21082
21083         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
21084         irrespective on whether the inner operation has a single use
21085         of both off are constant.
21086
21087 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
21088             Segher Boessenkool  <segher@kernel.crashing.org>
21089
21090         PR target/66412
21091         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
21092         before doing PUT_MODE or PUT_CODE on operands to avoid
21093         in-place RTX modification.
21094
21095 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
21096
21097         * gentarget-def.c (def_target_insn): Cast return of strtol to
21098         unsigned int.
21099
21100 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
21101
21102         * gimple.h (gimple_call_set_fn): Move inline function.
21103         * gimple.c (gimple_call_set_fn): Relocate here.
21104
21105 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
21106
21107         PR target/65979
21108         PR target/66611
21109         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
21110         the replacement insn will work.
21111
21112 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
21113
21114         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
21115         by default.
21116
21117 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
21118
21119         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
21120         * cgraph.h: Include ipa-ref.h and plugin-api.h.
21121         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
21122         (symtab_node::address_can_be_compared_p): Move function.
21123         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
21124         definition here.
21125         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
21126         * auto-profile.c: Likewise.
21127         * bb-reorder.c: Likewise.
21128         * builtins.c: Likewise.
21129         * calls.c: Likewise.
21130         * cfgexpand.c: Likewise.
21131         * cgraphbuild.c: Likewise.
21132         * cgraphclones.c: Likewise.
21133         * cgraphunit.c: Likewise.
21134         * combine.c: Likewise.
21135         * coverage.c: Likewise.
21136         * data-streamer-in.c: Likewise.
21137         * data-streamer-out.c: Likewise.
21138         * data-streamer.c: Likewise.
21139         * dbxout.c: Likewise.
21140         * dwarf2out.c: Likewise.
21141         * except.c: Likewise.
21142         * expr.c: Likewise.
21143         * final.c: Likewise.
21144         * fold-const.c: Likewise.
21145         * ggc-page.c: Likewise.
21146         * gimple-fold.c: Likewise.
21147         * gimple-iterator.c: Likewise.
21148         * gimple-pretty-print.c: Likewise.
21149         * gimple-streamer-in.c: Likewise.
21150         * gimple-streamer-out.c: Likewise.
21151         * gimple.c: Likewise.
21152         * gimplify.c: Likewise.
21153         * ipa-chkp.c: Likewise.
21154         * ipa-comdats.c: Likewise.
21155         * ipa-cp.c: Likewise.
21156         * ipa-devirt.c: Likewise.
21157         * ipa-icf-gimple.c: Likewise.
21158         * ipa-icf.c: Likewise.
21159         * ipa-inline-analysis.c: Likewise.
21160         * ipa-inline-transform.c: Likewise.
21161         * ipa-inline.c: Likewise.
21162         * ipa-polymorphic-call.c: Likewise.
21163         * ipa-profile.c: Likewise.
21164         * ipa-prop.c: Likewise.
21165         * ipa-pure-const.c: Likewise.
21166         * ipa-ref.c: Likewise.
21167         * ipa-reference.c: Likewise.
21168         * ipa-split.c: Likewise.
21169         * ipa-utils.c: Likewise.
21170         * ipa-visibility.c: Likewise.
21171         * ipa.c: Likewise.
21172         * langhooks.c: Likewise.
21173         * lto-cgraph.c: Likewise.
21174         * lto-compress.c: Likewise.
21175         * lto-opts.c: Likewise.
21176         * lto-section-in.c: Likewise.
21177         * lto-section-out.c: Likewise.
21178         * lto-streamer-in.c: Likewise.
21179         * lto-streamer-out.c: Likewise.
21180         * lto-streamer.c: Likewise.
21181         * omp-low.c: Likewise.
21182         * opts-global.c: Likewise.
21183         * passes.c: Likewise.
21184         * predict.c: Likewise.
21185         * print-tree.c: Likewise.
21186         * profile.c: Likewise.
21187         * ree.c: Likewise.
21188         * sanopt.c: Likewise.
21189         * stor-layout.c: Likewise.
21190         * symtab.c: Likewise.
21191         * toplev.c: Likewise.
21192         * trans-mem.c: Likewise.
21193         * tree-cfg.c: Likewise.
21194         * tree-chkp.c: Likewise.
21195         * tree-eh.c: Likewise.
21196         * tree-emutls.c: Likewise.
21197         * tree-inline.c: Likewise.
21198         * tree-nested.c: Likewise.
21199         * tree-parloops.c: Likewise.
21200         * tree-pretty-print.c: Likewise.
21201         * tree-profile.c: Likewise.
21202         * tree-sra.c: Likewise.
21203         * tree-ssa-alias.c: Likewise.
21204         * tree-ssa-live.c: Likewise.
21205         * tree-ssa-loop-ivcanon.c: Likewise.
21206         * tree-ssa-loop-ivopts.c: Likewise.
21207         * tree-ssa-pre.c: Likewise.
21208         * tree-ssa-sccvn.c: Likewise.
21209         * tree-ssa-strlen.c: Likewise.
21210         * tree-ssa-structalias.c: Likewise.
21211         * tree-streamer-in.c: Likewise.
21212         * tree-streamer-out.c: Likewise.
21213         * tree-streamer.c: Likewise.
21214         * tree-switch-conversion.c: Likewise.
21215         * tree-tailcall.c: Likewise.
21216         * tree-vect-data-refs.c: Likewise.
21217         * tree-vect-stmts.c: Likewise.
21218         * tree-vectorizer.c: Likewise.
21219         * tree.c: Likewise.
21220         * tsan.c: Likewise.
21221         * ubsan.c: Likewise.
21222         * value-prof.c: Likewise.
21223         * varasm.c: Likewise.
21224         * varpool.c: Likewise.
21225         * config/arm/arm.c: Likewise.
21226         * config/bfin/bfin.c: Likewise.
21227         * config/c6x/c6x.c: Likewise.
21228         * config/cris/cris.c: Likewise.
21229         * config/darwin-c.c: Likewise.
21230         * config/darwin.c: Likewise.
21231         * config/i386/i386.c: Likewise.
21232         * config/i386/winnt.c: Likewise.
21233         * config/microblaze/microblaze.c: Likewise.
21234         * config/mips/mips.c: Likewise.
21235         * config/rs6000/rs6000.c: Likewise.
21236         * config/rx/rx.c: Likewise.
21237         * config/s390/s390.c: Likewise.
21238         * config/tilegx/mul-tables.c: Likewise.
21239
21240 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21241
21242         * config/aarch64/aarch64.c, config/alpha/alpha.c,
21243         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
21244         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
21245         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
21246         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
21247         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
21248         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
21249         config/microblaze/microblaze.c, config/mips/mips.c,
21250         config/mmix/mmix.c, config/mn10300/mn10300.c,
21251         config/moxie/moxie.c, config/msp430/msp430.c,
21252         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
21253         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
21254         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
21255         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
21256         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
21257         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
21258         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
21259         target-def.h include.
21260         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
21261
21262 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21263
21264         * Makefile.in (TARGET_DEF): Add target-insns.def.
21265         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
21266         (build/gentarget-def.o): New rule.
21267         (genprogrtl): Add target-def.
21268         * target-insns.def, gentarget-def.c: New files.
21269         * target.def: Add targetm.have_* and targetm.gen_* hooks,
21270         based on the contents of target-insns.def.
21271         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
21272         (HAVE_return, gen_return): Delete.
21273         * target-def.h: Include insn-target-def.h.
21274         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
21275         instead of direct calls.  Rely on them to do the appropriate assertions.
21276         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
21277         (convert_jumps_to_returns): Use targetm interface instead of
21278         direct calls.
21279         (thread_prologue_and_epilogue_insns): Likewise.
21280         * reorg.c (find_end_label, dbr_schedule): Likewise.
21281         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
21282         * shrink-wrap.c (convert_to_simple_return): Likewise.
21283         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
21284
21285 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21286
21287         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
21288         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
21289         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
21290         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
21291         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
21292         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
21293         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
21294         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
21295         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
21296         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
21297         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
21298         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
21299         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
21300         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
21301         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
21302         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
21303         includes to end.
21304
21305 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21306
21307         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
21308         (unbounded_int_hashmap_traits::key_type): Likewise.
21309         * hash-map.h (hash_map): Get the key type from the traits.
21310         * hash-traits.h (default_hash_traits): By default, inherit from the
21311         template parameter.
21312         * alias.c (alias_set_traits): Delete.
21313         (alias_set_entry_d::children): Use alias_set_hash as the first
21314         template parameter.
21315         (record_alias_subset): Update accordingly.
21316         * except.c (tree_hash_traits): Delete.
21317         (type_to_runtime_map): Use tree_hash as the first template parameter.
21318         (init_eh): Update accordingly.
21319         * genmatch.c (capture_id_map_hasher): Delete.
21320         (cid_map_t): Use nofree_string_hash as first template parameter.
21321         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
21322         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
21323         Use symbol_compare_hash as the first template parameter in
21324         subdivide_hash_map.
21325         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
21326         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
21327         template parameter.
21328         * passes.c (pass_registry_hasher): Delete.
21329         (name_to_pass_map): Use nofree_string_hash as the first template
21330         parameter.
21331         (register_pass_name): Update accordingly.
21332         * sanopt.c (sanopt_tree_map_traits): Delete.
21333         (sanopt_tree_triplet_map_traits): Delete.
21334         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
21335         template parameter.
21336         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
21337         the first template parameter.
21338         * sese.c (rename_map_hasher): Delete.
21339         (rename_map_type): Use tree_ssa_name_hash as the first template
21340         parameter.
21341         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
21342         (function_summary::m_map): Use map_hash as the first template
21343         parameter.
21344         (function_summary::release): Update accordingly.
21345         * tree-if-conv.c (phi_args_hash_traits): Delete.
21346         (predicate_scalar_phi): Use tree_operand_hash as the first template
21347         parameter to phi_arg_map.
21348         * tree-inline.h (dependence_hasher): Delete.
21349         (copy_body_data::dependence_map): Use dependence_hash as the first
21350         template parameter.
21351         * tree-inline.c (remap_dependence_clique): Update accordingly.
21352         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
21353         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
21354         parameter.
21355         (addr_stridxptr): Update accordingly.
21356         * value-prof.c (profile_id_traits): Delete.
21357         (cgraph_node_map): Use profile_id_hash as the first template
21358         parameter.
21359         (init_node_map): Update accordingly.
21360         * config/alpha/alpha.c (string_traits): Delete.
21361         (machine_function::links): Use nofree_string_hash as the first
21362         template parameter.
21363         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
21364         * config/m32c/m32c.c (pragma_traits): Delete.
21365         (pragma_htab): Use nofree_string_hash as the first template parameter.
21366         (m32c_note_pragma_address): Update accordingly.
21367         * config/mep/mep.c (pragma_traits): Delete.
21368         (pragma_htab): Use nofree_string_hash as the first template parameter.
21369         (mep_note_pragma_flag): Update accordingly.
21370         * config/mips/mips.c (mips16_flip_traits): Delete.
21371         (mflip_mips16_htab): Use nofree_string_hash as the first template
21372         parameter.
21373         (mflip_mips16_use_mips16_p): Update accordingly.
21374         (local_alias_traits): Delete.
21375         (mips16_local_aliases): Use nofree_string_hash as the first template
21376         parameter.
21377         (mips16_local_alias): Update accordingly.
21378
21379 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21380
21381         * hash-map-traits.h (default_hashmap_traits): Delete.
21382
21383 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21384
21385         * hash-map-traits.h (unbounded_hashmap_traits): New class.
21386         (unbounded_int_hashmap_traits): Likewise.
21387         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
21388
21389 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21390
21391         * ipa-icf.h (symbol_compare_hash): New class.
21392         (symbol_compare_hashmap_traits): Use it.
21393         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
21394         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
21395         (mem_alloc_description::reverse_mem_map_t): Remove redundant
21396         default_hashmap_traits.
21397         * sanopt.c (sanopt_tree_triplet_hash): New class.
21398         (sanopt_tree_triplet_map_traits): Use it.
21399
21400 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21401
21402         * gengtype-parse.c (require_template_declaration): Allow '+' in
21403         template parameters.  Consolidate cases.
21404         * hash-traits.h (int_hash): New class.
21405         * alias.c (alias_set_hash): New structure.
21406         (alias_set_traits): Use it.
21407         * symbol-summary.h (function_summary::map_hash): New class.
21408         (function_summary::summary_hashmap_traits): Use it.
21409         * tree-inline.h (dependence_hash): New class.
21410         (dependence_hasher): Use it.
21411         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
21412         * value-prof.c (profile_id_hash): New class.
21413         (profile_id_traits): Use it.
21414
21415 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21416
21417         * config/mips/mips.c (mips16_flip_traits): Use it.
21418         (local_alias_traits, mips16_local_aliases): Convert from a map of
21419         rtxes to a map of symbol names.
21420         (mips16_local_alias): Update accordingly.
21421
21422 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21423
21424         * hash-traits.h (string_hash, nofree_string_hash): New classes.
21425         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
21426         * passes.c (pass_registry_hasher): Likewise.
21427         * config/alpha/alpha.c (string_traits): Likewise.
21428         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
21429         * config/m32c/m32c.c (pragma_traits): Likewise.
21430         * config/mep/mep.c (pragma_traits): Likewise.
21431
21432 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21433
21434         * tree-hash-traits.h (tree_hash): New class.
21435         * except.c: Include tree-hash-traits.h.
21436         (tree_hash_traits): Use tree_hash.
21437
21438 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21439
21440         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
21441         * sese.c: Include tree-hash-traits.h.
21442         (rename_map_hasher): Use tree_ssa_name_hasher.
21443
21444 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21445
21446         * tree-hash-traits.h (tree_decl_hash): New class.
21447         * tree-ssa-strlen.c: Include tree-hash-traits.h.
21448         (stridxlist_hash_traits): Use tree_decl_hash.
21449
21450 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21451
21452         * tree-hash-traits.h: New file.
21453         (tree_operand_hash): New class.
21454         * sanopt.c: Include tree-hash-traits.h.
21455         (sanopt_tree_map_traits): Use tree_operand_hash.
21456         * tree-if-conv.c: Include tree-hash-traits.h.
21457         (phi_args_hash_traits): Use tree_operand_hash.
21458         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
21459         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
21460
21461 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21462
21463         * hash-map-traits.h: Include hash-traits.h.
21464         (simple_hashmap_traits): New class.
21465         * mem-stats.h (hash_map): Change the default traits to
21466         simple_hashmap_traits<default_hash_traits<Key> >.
21467
21468 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21469
21470         * hash-table.h: Update comments.
21471
21472 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21473
21474         * hash-traits.h (default_hash_traits): New structure.
21475         * hash-set.h (default_hashset_traits): Delete.
21476         (hash_set): Use default_hash_traits<Key> instead of
21477         default_hashset_traits.  Delete hash_entry type and use Key directly.
21478         * ipa-devirt.c (pair_traits): Delete.
21479         (default_hash_traits <type_pair>): Override.
21480         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
21481         (odr_types_equivalent_p, add_type_duplicate): Likewise.
21482
21483 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21484
21485         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
21486
21487 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21488
21489         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
21490         (has_is_empty, is_empty_helper): Delete.
21491         (has_mark_deleted, mark_deleted_helper): Delete.
21492         (has_mark_empty, mark_empty_helper): Delete.
21493         (hash_table::is_deleted): Call the Descriptor unconditionally.
21494         (hash_table::is_empty): Likewise.
21495         (hash_table::mark_deleted): Likewise.
21496         (hash_table::mark_empty): Likewise.
21497
21498 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21499
21500         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
21501         redundant typedefs and members.
21502         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
21503         redundant typedefs.
21504         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
21505         * ipa-devirt.c (odr_name_hasher): Likewise.
21506         (polymorphic_call_target_hasher): Likewise.
21507         * ira-costs.c (cost_classes_hasher): Likewise.
21508         * statistics.c (stats_counter_hasher): Likewise.
21509         * trans-mem.c (log_entry_hasher): Likewise.
21510         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
21511         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
21512         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
21513         * var-tracking.c (variable_hasher): Likewise.
21514         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
21515         Remove redundant typedefs and members.
21516
21517 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21518
21519         * hash-traits.h (ggc_cache_hasher): Rename to...
21520         (ggc_cache_remove): ...this and remove typedefs.
21521         (ggc_cache_ptr_hash): New class.
21522         * hash-table.h: Update commentary.
21523         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
21524         rather than ggc_cache_hasher.
21525         (const_wide_int_hasher, reg_attr_hasher): Likewise.
21526         (const_double_hasher, const_fixed_hasher): Likewise.
21527         * function.c (insn_cache_hasher): Likewise.
21528         * trans-mem.c (tm_wrapper_hasher): Likewise.
21529         * tree.h (tree_decl_map_cache_hasher): Likewise.
21530         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
21531         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
21532         * ubsan.c (tree_type_map_cache_hasher): Likewise.
21533         * varasm.c (tm_clone_hasher): Likewise.
21534         * config/i386/i386.c (dllimport_hasher): Likewise.
21535         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
21536         (tree_hasher): Likewise.
21537
21538 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21539
21540         * hash-traits.h (ggc_hasher): Rename to...
21541         (ggc_remover): ...this and remove typedefs.
21542         (ggc_cache_hasher): Update accordingly.  Add typedefs.
21543         (ggc_ptr_hash): New class.
21544         * hash-table.h: Update comment.
21545         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
21546         ggc_hasher.
21547         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
21548         (tree_descriptor_hasher): Likewise.
21549         * cgraph.c (function_version_hasher): Likewise.
21550         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
21551         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
21552         (dw_loc_list_hasher, addr_hasher): Likewise.
21553         * function.h (used_type_hasher): Likewise.
21554         * function.c (temp_address_hasher): Likewise.
21555         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
21556         * libfuncs.h (libfunc_hasher): Likewise.
21557         * lto-streamer.h (decl_state_hasher): Likewise.
21558         * optabs.c (libfunc_decl_hasher): Likewise.
21559         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
21560         * varasm.c (section_hasher, object_block_hasher): Likewise.
21561         (const_rtx_desc_hasher): Likewise.
21562         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
21563         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
21564
21565 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21566
21567         * hash-traits.h (free_ptr_hash): New class.
21568         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
21569         rather than typed_free_remove.  Remove redudant typedefs.
21570         (external_ref_hasher): Likewise.
21571         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
21572         (ehspec_hasher): Likewise.
21573         * ggc-common.c (saving_hasher): Likewise.
21574         * gimplify.c (gimplify_hasher): Likewise.
21575         * haifa-sched.c (delay_i2_hasher): Likewise.
21576         * loop-invariant.c (invariant_expr_hasher): Likewise.
21577         * loop-iv.c (biv_entry_hasher): Likewise.
21578         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
21579         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
21580         * tree-cfg.c (locus_discrim_hasher): Likewise.
21581         * tree-eh.c (finally_tree_hasher): Likewise.
21582         * tree-into-ssa.c (var_info_hasher): Likewise.
21583         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
21584         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
21585         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
21586         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
21587         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
21588         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
21589         (shared_bitmap_hasher): Likewise.
21590         * tree-ssa-threadupdate.c (redirection_data): Likewise.
21591         * tree-vectorizer.h (peel_info_hasher): Likewise.
21592         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
21593         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
21594
21595 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21596
21597         * hash-table.h: Update comments.
21598         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
21599         (nofree_ptr_hash): New class.
21600         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
21601         than typed_noop_remove.  Remove redudant typedefs.
21602         * attribs.c (attribute_hasher): Likewise.
21603         * cfg.c (bb_copy_hasher): Likewise.
21604         * cselib.c (cselib_hasher): Likewise.
21605         * dse.c (invariant_group_base_hasher): Likewise.
21606         * dwarf2cfi.c (trace_info_hasher): Likewise.
21607         * dwarf2out.c (macinfo_entry_hasher): Likewise.
21608         (comdat_type_hasher, loc_list_hasher): Likewise.
21609         * gcse.c (pre_ldst_expr_hasher): Likewise.
21610         * genmatch.c (id_base): Likewise.
21611         * genrecog.c (test_pattern_hasher): Likewise.
21612         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
21613         * haifa-sched.c (delay_i1_hasher): Likewise.
21614         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
21615         * ipa-icf.h (congruence_class_group_hash): Likewise.
21616         * ipa-profile.c (histogram_hash): Likewise.
21617         * ira-color.c (allocno_hard_regs_hasher): Likewise.
21618         * lto-streamer.h (string_slot_hasher): Likewise.
21619         * lto-streamer.c (tree_entry_hasher): Likewise.
21620         * plugin.c (event_hasher): Likewise.
21621         * postreload-gcse.c (expr_hasher): Likewise.
21622         * store-motion.c (st_expr_hasher): Likewise.
21623         * tree-sra.c (uid_decl_hasher): Likewise.
21624         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
21625         (ssa_name_var_hash): Likewise.
21626         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
21627         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
21628         * tree-ssa-pre.c (pre_expr_d): Likewise.
21629         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
21630         * vtable-verify.h (registration_hasher): Likewise.
21631         * vtable-verify.c (vtbl_map_hasher): Likewise.
21632         * config/arm/arm.c (libcall_hasher): Likewise.
21633         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
21634         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
21635         * config/sol2.c (comdat_entry_hasher): Likewise.
21636         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
21637         (print_fold_checksum, fold_checksum_tree): Likewise.
21638         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
21639         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
21640         (fold_build_call_array_loc): Likewise.
21641         * tree-ssa-ccp.c (gimple_htab): Likewise.
21642         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
21643         rather than pointer_type.
21644
21645 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21646
21647         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
21648         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
21649
21650 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21651
21652         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
21653         (ggc_hasher::ggc_mx): Likewise.
21654         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
21655         that duplicate ggc_hasher ones.
21656
21657 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21658
21659         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
21660         (gt_cleare_cache): Check here for deleted and empty entries.
21661         Replace handle_cache_entry with a call to keep_cache_entry.
21662         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
21663         (ggc_cache_hasher::keep_cache_entry): New function.
21664         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
21665         (tm_wrapper_hasher::keep_cache_entry): New function.
21666         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
21667         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
21668         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
21669         (type_cache_hasher::keep_cache_entry): New function.
21670         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
21671         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
21672         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
21673         (tree_type_map_cache_hasher::keep_cache_entry): New function.
21674         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
21675         (tm_clone_hasher::keep_cache_entry): New function.
21676         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
21677         (dllimport_hasher::keep_cache_entry): New function.
21678
21679 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21680
21681         * hash-table.h: Include hash-traits.h.
21682         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
21683         (ggc_cache_hasher): Move to...
21684         * hash-traits.h: ...this new file.
21685
21686 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
21687
21688         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
21689         struct cl_optimization.
21690         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
21691         * tree.c (make_node_stat): Allocate cl_optimization struct.
21692         (copy_node_stat): Allocate and copy cl_optimization struct.
21693
21694 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
21695
21696         * function.h (struct incoming_args): Move struct.
21697         (pass_by_reference, reference_callee_copied): Remove prototypes.
21698         * emit-rtl.h (struct incoming_args): Relocate struct here.
21699         * calls.h (pass_by_reference, reference_callee_copied): Relocate
21700         prototypes here.
21701         * function.c (pass_by_reference, reference_callee_copied): Move.
21702         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
21703         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
21704         * ipa-chkp.c: Include calls.h.
21705
21706 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
21707
21708         * alias.h (alias_set_type): Move typedef.
21709         * coretypes.h (alias_set_type): Relocate typedef here.
21710         * rtl.h: Don't include alias.h.
21711
21712 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
21713
21714         * cgraph.h (cgraph_rtl_info): Move to rtl.h
21715         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
21716         and instance.
21717         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
21718         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
21719         doesn't exist.
21720         * calls.c: Include hard-reg-set.h before rtl.h.
21721         * ira.c: Likewise.
21722
21723 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
21724             Vladimir Makarov  <vmakarov@redhat.com>
21725
21726         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
21727         Add assert.
21728
21729 2015-06-25  Richard Biener  <rguenther@suse.de>
21730
21731         * fold-const.c (fold_binary_loc): Move simplification of
21732         (X <<>> C1) & C2 ...
21733         * match.pd: ... here.
21734
21735 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
21736
21737         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
21738
21739 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
21740
21741         * match.pd: Add patterns for vec_conds between 1 and 0.
21742
21743 2015-06-25  Richard Biener  <rguenther@suse.de>
21744
21745         * tree-vect-stmts.c (vectorizable_conversion): Do not set
21746         STMT_VINFO_VEC_STMT for SLP.
21747         (vectorizable_store): Likewise.
21748         (vectorizable_load): Likewise.
21749         (vect_transform_stmt): Catch SLP vectorization clobbering
21750         STMT_VINFO_VEC_STMT.
21751
21752 2015-06-25  Richard Biener  <rguenther@suse.de>
21753
21754         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
21755         dumping.
21756         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
21757         cleanup resulting dead code and parameters.
21758         (vect_transform_slp_perm_load): Adjust.
21759
21760 2015-06-25  Nick Clifton  <nickc@redhat.com>
21761
21762         * config/bfin/bfin.c (bfin_expand_prologue): Set
21763         current_function_static_stack_size if flag_stack_usage_info is set.
21764         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
21765         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
21766         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
21767         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
21768
21769 2015-06-25  Tom de Vries  <tom@codesourcery.com>
21770
21771         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
21772         comment that the generated IV is unsigned.
21773
21774 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21775
21776         PR target/29693
21777         * config/arm/arm.c (arm_dbx_register_number): Return
21778         DWARF_FRAME_REGISTERS by default.
21779
21780 2015-06-25  Tom de Vries  <tom@codesourcery.com>
21781
21782         * dominance.c (calculate_dominance_info): Fix verify_dominators call
21783         argument.  Call verify_dominator when reusing dominator info.
21784
21785 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
21786
21787         PR target/66563
21788         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
21789         an additional element of the unspec vector.  Modify indices
21790         of operands.
21791         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
21792         * config/sh/sh.c (prepare_move_operands): Pass incremented
21793         const_int to gen_GOTaddr2picreg.
21794         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
21795
21796 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
21797
21798         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
21799         Condition on TARGET_FLOAT.
21800
21801 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
21802
21803         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
21804         and (no)crypto.
21805
21806 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
21807
21808         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
21809
21810         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
21811         aarch64_err_no_fpadvsimd.
21812
21813         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
21814         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
21815         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
21816         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
21817         Turn error into assert, test TARGET_FLOAT.
21818         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
21819         TARGET_FLOAT.
21820
21821 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
21822
21823         PR debug/66482
21824         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
21825
21826 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
21827
21828         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
21829
21830 2015-06-24  Renlin Li <renlin.li@arm.com>
21831
21832         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
21833         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
21834
21835 2015-06-24  Richard Biener  <rguenther@suse.de>
21836
21837         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
21838         (main): Likewise.
21839         (lower_opt_convert): Support lowering of conditional view_convert.
21840         (parser::parse_operation): Likewise.
21841         (parser::parse_for): Likewise.
21842
21843 2015-06-24  Renlin Li  <renlin.li@arm.com>
21844
21845         * varasm.c (emit_local): Use unsigned int for align variable.
21846
21847 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21848
21849         PR target/63408
21850         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
21851         for negative numbers.
21852
21853 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21854
21855         PR rtl-optimization/66306
21856         * reload.c (find_reloads): Swap the match_dup info for
21857         commutative operands.
21858
21859 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21860
21861         * config/s390/vx-builtins.md
21862         ("vec_scatter_element<mode>_<non_vec_int>")
21863         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
21864         attribute with bhfgq.
21865
21866 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21867
21868         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
21869
21870 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21871
21872         * config/s390/s390-builtin-types.def: Add flag to indicate the
21873         options under which the function type is needed.
21874         * config/s390/s390-builtins.def: Add flag to indicate the options
21875         under which the builtin is enabled.
21876         * config/s390/s390-builtins.h: Add flags parameter to macro
21877         definitions.
21878         (bflags_for_builtin): New function.
21879         (flags_for_builtin): Renamed to ...
21880         (opflags_for_builtin): ... this.
21881         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
21882         flags_for_builtin to bflags_for_builtin and
21883         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
21884         * config/s390/s390.c: Add initialization of bflags_builtin and
21885         opflags_builtin arrays.
21886         Remove code for flags_builtin.
21887         (s390_init_builtins): Only create builtin function types if one of
21888         their flags is active.
21889         Only create builtins if all of their flags are active.
21890         (s390_expand_builtin): Rename flags_for_builtin to
21891         opflags_for_builtin.
21892
21893 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21894
21895         * config/s390/vecintrin.h: Remove internal builtins.
21896
21897 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21898
21899         * config/s390/s390.c (s390_secondary_reload): Fix check for
21900         GENERAL_REGS register class.
21901
21902 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21903
21904         * config/s390/s390.c (s390_support_vector_misalignment): Call
21905         default implementation for !TARGET_VX.
21906
21907 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21908
21909         * config/s390/s390.c (s390_legitimate_constant_p): Add
21910         TARGET_VX check.
21911
21912 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21913
21914         * config/s390/s390.c (s390_vector_abi): New variable definition.
21915         (s390_check_type_for_vector_abi): New function.
21916         (TARGET_ASM_FILE_END): New macro definition.
21917         (s390_asm_file_end): New function.
21918         (s390_function_arg): Call s390_check_type_for_vector_abi.
21919         (s390_gimplify_va_arg): Likewise.
21920         * configure: Regenerate.
21921         * configure.ac: Check for .gnu_attribute Binutils feature.
21922
21923 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
21924
21925         PR target/65803
21926         * config/bfin/bfin.c (hwloop_optimize): Initialize
21927         JUMP_LABEL for newly created jump.
21928
21929 2015-06-23  Tristan Gingold  <gingold@adacore.com>
21930
21931         * collect-utils.c (collect_wait): Unlink the response file here
21932         instead of...
21933         (do_wait): ...here.
21934         (utils_cleanup): ...and here.
21935
21936 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
21937
21938         * df-scan.c: Don't include target-def.h.
21939         * targhooks.c: Likewise.
21940         * config/arm/arm-c.c: Likewise.
21941         * config/i386/i386-c.c: Likewise.
21942         * config/nds32/nds32-cost.c: Likewise.
21943         * config/nds32/nds32-fp-as-gp.c: Likewise.
21944         * config/nds32/nds32-intrinsic.c: Likewise.
21945         * config/nds32/nds32-isr.c: Likewise.
21946         * config/nds32/nds32-md-auxiliary.c: Likewise.
21947         * config/nds32/nds32-memory-manipulation.c: Likewise.
21948         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21949         * config/nds32/nds32-predicates.c: Likewise.
21950
21951 2015-06-23  Richard Biener  <rguenther@suse.de>
21952
21953         PR tree-optimization/66636
21954         * tree-vect-stmts.c (vectorizable_store): Properly compute the
21955         def type for further defs for strided stores.
21956
21957 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
21958
21959         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
21960         conditional selects.
21961         (setcc_int<mode>, setcc_float<mode>): Reformat.
21962
21963 2015-06-23  Marek Polacek  <polacek@redhat.com>
21964
21965         * match.pd ((x + y) - (x | y) -> x & y,
21966         (x + y) - (x & y) -> x | y): New patterns.
21967
21968 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
21969
21970         PR 65711
21971         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
21972         '-dynamic-linker' within %{!shared: ...}.
21973
21974 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
21975
21976         PR target/66560
21977         * config/i386/predicates.md (addsub_vm_operator): New predicate.
21978         (addsub_vs_operator): Ditto.
21979         (addsub_vs_parallel): Ditto.
21980         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
21981         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
21982         Put minus RTX before plus and adjust vec_merge selector.
21983         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
21984         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
21985         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
21986         (addsub vec_merge splitters): New combiner splitters.
21987         (addsub vec_select/vec_concat splitters): Ditto.
21988
21989 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
21990
21991         PR tree-optimization/66449
21992         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
21993         POINTER_PLUS_EXPR for pointers.
21994
21995 2015-06-23  Alan Modra  <amodra@gmail.com>
21996
21997         * rtlanal.c (commutative_operand_precedence): Correct comments.
21998         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
21999         declaration.  Return an int.  Distinguish REG,REG return from
22000         others.
22001         (struct simplify_plus_minus_op_data): Make local to function.
22002         (simplify_plus_minus): Don't set canonicalized if merely sorting
22003         registers.  Avoid packing ops if nothing changes.  White space fixes.
22004
22005 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
22006
22007         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
22008         -fdump-ada-spec is passed but not if -fsyntax-only is.
22009
22010 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
22011
22012         PR bootstrap/63740
22013         * lra-lives.c (process_bb_lives): Check insn copying the same
22014         reload pseudo and don't create a copy for it.
22015
22016 2015-06-22  Tom de Vries  <tom@codesourcery.com>
22017
22018         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
22019         for cond_stmt.
22020
22021 2015-06-22  Tom de Vries  <tom@codesourcery.com>
22022
22023         * builtins.def (DEF_GOMP_BUILTIN): Test
22024         'flag_tree_parallelize_loops > 1' instead of
22025         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
22026
22027 2015-06-22  Tom de Vries  <tom@codesourcery.com>
22028
22029         * dominance.c (calculate_dominance_info): Verify dominators if
22030         early-out.
22031
22032 2015-06-22  Marek Polacek  <polacek@redhat.com>
22033
22034         * match.pd ((x ^ y) ^ (x | y) -> x & y,
22035         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
22036         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
22037         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
22038
22039 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
22040
22041         PR target/65871
22042         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
22043         cost of embedded comparison.
22044
22045 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22046
22047         PR target/65914
22048         * config/rs6000/predicates.md (altivec_register_operand): Permit
22049         virtual stack registers.
22050         (vsx_register_operand): Likewise.
22051         (vfloat_operand): Likewise.
22052         (vint_operand): Likewise.
22053         (vlogical_operand): Likewise.
22054
22055 2015-06-22  Richard Biener  <rguenther@suse.de>
22056
22057         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
22058         and single_scalar_iteration_cost members.
22059         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
22060         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
22061         (vect_get_single_scalar_iteration_cost): Remove.
22062         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
22063         Use LOOP_VINFO_SCALAR_ITERATION_COST.
22064         * tree-vect-loop.c (destroy_loop_vec_info): Free
22065         scalar_cost_vec.
22066         (vect_get_single_scalar_iteration_cost): Compute result into
22067         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
22068         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
22069         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
22070         (vect_estimate_min_profitable_iters): Use them.
22071
22072 2015-06-22  Christian Bruel  <christian.bruel@st.com>
22073
22074         PR target/52144
22075         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
22076         (TARGET_INSERT_ATTRIBUTES): Define.
22077         (thumb_flipper): New var.
22078         * config/arm/arm.opt (-mflip-thumb): New switch.
22079
22080 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
22081             Martin Liska  <mliska@suse.cz>
22082
22083         PR ipa/65908
22084         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
22085         construction of arg_types.
22086         (sem_function::sem_function): Likewise.
22087         (sem_function::~sem_function): Remove destruction of arg_types.
22088         (sem_function::compatible_parm_types_p): New function.
22089         (sem_function::equals_wpa): Reorg matching of return values
22090         and parameter types.
22091         (sem_function::equals_private): Reorg mathcing of argument types.
22092         (sem_function::parse_tree_args): Remove.
22093         * ipa-icf.h (init_wpa): Do not call it.
22094         (parse_tree_args): Remove.
22095         (compatible_parm_types_p): Declare.
22096         (result_type): Remove.
22097         (arg_types): Remove.
22098
22099 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
22100
22101         PR ipa/66351
22102         * ipa-polymorphic-call.c
22103         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
22104         initializing alias oracle; fix formating; set base_alias_set if it
22105         is known.
22106
22107 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
22108
22109         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
22110         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
22111         (find_inc): Likewise.
22112         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
22113         swapping.
22114         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
22115         * df-scan.c (df_swap_refs): Remove.
22116         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
22117         * dominance.c (link_roots): Use std::swap instead of manually swapping.
22118         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
22119         * fold-const.c (fold_relational_const): Likewise.
22120         * genattrtab.c (simplify_test_exp): Likewise.
22121         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
22122         gimple_simplify): Likewise.
22123         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
22124         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
22125         * ipa-devirt.c (add_type_duplicate): Likewise.
22126         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
22127         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
22128         * lra.c (lra_create_copy): Likewise.
22129         * lto-streamer-out.c (DFS::DFS): Likewise.
22130         * modulo-sched.c (get_sched_window): Likewise.
22131         * omega.c (omega_pretty_print_problem): Likewise.
22132         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
22133         * reload1.c (reloads_unique_chain_p): Likewise.
22134         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
22135         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
22136         use std::swap.
22137         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
22138         manually swapping.
22139         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
22140         predicate_mem_writes): Likewise.
22141         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
22142         * tree-predcom.c (combine_chains): Likewise.
22143         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
22144         refs_may_alias_p_1): Likewise.
22145         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
22146         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
22147         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
22148         number_of_iterations_cond): Likewise.
22149         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
22150         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
22151         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
22152         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
22153         * tree-vrp.c (extract_range_from_binary_expr_1,
22154         extract_range_from_unary_expr_1): Likewise.
22155
22156 2015-06-20  Marek Polacek  <polacek@redhat.com>
22157
22158         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
22159
22160 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
22161
22162         PR target/66591
22163         * config/sh/sh.c (prepare_move_operands): Replace subreg
22164         index term with R0 for base and index addressing.
22165
22166 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
22167
22168         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
22169         op1 is an fp zero.
22170         (movsf_aarch64): Change condition from register_operand to
22171         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
22172         load1.  Change type for alternative 7 to store1.
22173         (movdf_aarch64): Likewise.
22174
22175 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
22176
22177         * config/vax/vax.md: Adjust sign/zero extend patterns to
22178         handle SUBREGs in operands[1].
22179
22180 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22181
22182         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
22183         of manually swapping.
22184         (expand_vec_perm_interleave2): Likewise.
22185
22186 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
22187
22188         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
22189         reuse bounds created for abnormal ssa names.
22190
22191 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
22192
22193         * config/nvptx/nvptx.md (allocate_stack): Rename to...
22194         (allocate_stack_<mode>): ... this, and add :P on both
22195         match_operand and unspec.
22196         (allocate_stack): New expander.
22197
22198 2015-06-19  Christian Bruel  <christian.bruel@st.com>
22199
22200         PR target/66541
22201         PR target/52144
22202         * config/arm/arm.c (arm_set_current_function): Handle
22203         explicit default options.
22204
22205 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
22206
22207         * config/i386/i386.md (*movsicc_noc_zext): New insn.
22208         (zero-extended cmove with mem peephole2): New pattern.
22209         (cmove with mem peephole2): Merge patterns.
22210
22211 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
22212
22213         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
22214
22215 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
22216
22217         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
22218         * config/mips/mips.md (*madd4<mode>): Ditto.
22219         (*nmadd3<mode>) Ditto.
22220         (*nmadd4<mode>_fastmath): Ditto.
22221         (*nmadd3<mode>_fastmath): Ditto.
22222         (*nmsub4<mode>): Ditto.
22223         (*nmsub3<mode>): Ditto.
22224         (*nmsub4<mode>_fastmath): Ditto.
22225         (*nmsub3<mode>_fastmath): Ditto.
22226
22227 2015-06-18  Michael Matz  <matz@suse.de>
22228
22229         PR middle-end/66253
22230         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
22231         grouped strided stores.
22232         (vectorizable_load): Don't use the DR from first_stmt in
22233         the non-SLP grouped strided case.
22234
22235 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
22236
22237         PR target/66569
22238         * function.c (assign_bounds): Add arguments assign_regs,
22239         assign_special, assign_bt.
22240         (assign_parms): For vararg functions handle bounds in BT
22241         and special slots after incoming vararg bounds.
22242
22243 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
22244
22245         PR middle-end/66568
22246         * cfgexpand.c (expand_return): Handle missing bounds.
22247         (expand_gimple_stmt_1): Likewise.
22248         * tree-chkp.c (chkp_expand_zero_bounds): New.
22249         * tree-chkp.h (chkp_expand_zero_bounds): New.
22250
22251 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
22252
22253         PR middle-end/66567
22254         * ipa-chkp.c (chkp_maybe_create_clone): Require
22255         functions to be instrumentable.
22256         * tree-chkp.c (chkp_replace_function_pointer): Use
22257         chkp_instrumentable_p instead of attribute check.
22258
22259 2015-06-18  Richard Biener  <rguenther@suse.de>
22260
22261         PR tree-optimization/66510
22262         * tree-vect-stmts.c (vectorizable_load): Properly compute the
22263         number of vector loads for SLP permuted loads.
22264         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
22265         check the stride for loop vectorization.
22266         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
22267         vectorization factor.
22268         (vect_analyze_group_access): If the group size is not a power
22269         of two require a epilogue loop.
22270         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
22271         compute and optimizing and alias test pruning after final
22272         vectorization factor computation.
22273         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
22274         vector alignment.
22275         (vect_transform_slp_perm_load): Properly compute the original
22276         number of vector load stmts.
22277
22278 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
22279
22280         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
22281         "unlikely character , in @var" warning.
22282
22283 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
22284
22285         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
22286         (ix86_function_arg_advance): Ditto.
22287         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
22288
22289 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
22290
22291         * function.h (struct rtl_data): Remove struct and accessor macros.
22292         * emit-rtl.h (struct rtl_data): Relocate to here.
22293         * Makefile.in (GTFILES): Add emit-rtl.h.
22294         * df-core.c: Include emit-rtl.h.
22295         * genattrtab.c: Likewise.
22296         * genconditions.c: Likewise.
22297         * genpreds.c: Likewise.
22298         * genrecog.c: Likewise.
22299         * regcprop.c: Likewise.
22300         * resource.c: Likewise.
22301         * sched-rgn.c: Likewise.
22302         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
22303         * config/i386/winnt.c: Likewise.
22304
22305 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
22306
22307         PR middle-end/66429
22308         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
22309         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
22310         and has_force_vectorize_loops flags from cfun into
22311         child_cfun.
22312         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
22313         if simduid is non-NULL.
22314         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
22315         * passes.def (pass_simduid_cleanup): Add new pass after loop
22316         passes.
22317         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
22318         indirection from htab argument's type.
22319         (shrink_simd_arrays): New function.
22320         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
22321         Don't call adjust_simduid_builtins if there are no loops.
22322         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
22323         (pass_simduid_cleanup::execute): New method.
22324         (make_pass_simduid_cleanup): New function.
22325
22326 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
22327
22328         * tree-core.h (tree_target_option): Make opts field a pointer to a
22329         cl_target_option instead of an instance of the struct.
22330         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
22331         the structure.
22332         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
22333         TARGET_OPTION_NODE.
22334         (copy_node_stat): Allocate and copy struct cl_target_option.
22335
22336 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
22337
22338         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
22339         Remove conditional exposure of prototypes.
22340         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
22341         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
22342         definitions in tree.h with functions.
22343         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
22344         anon_aggrname_p.
22345         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
22346
22347 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
22348
22349         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
22350         (*cmp<mode>_signed): ... this.
22351         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
22352         (*cmp<mode>_unsigned): ... this.  Remove %b.
22353
22354 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
22355
22356         * coretypes.h: Include input.h and as-a.h.
22357         * rtl.h: Include input.h and as-a.h for generator files.
22358         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
22359         * vec.c: Don't include diagnostic-core.h.
22360         * alias.c: Do not include input.h, line-map.h or is-a.h.
22361         * asan.c: Likewise.
22362         * attribs.c: Likewise.
22363         * auto-inc-dec.c: Likewise.
22364         * auto-profile.c: Likewise.
22365         * bb-reorder.c: Likewise.
22366         * bt-load.c: Likewise.
22367         * builtins.c: Likewise.
22368         * caller-save.c: Likewise.
22369         * calls.c: Likewise.
22370         * ccmp.c: Likewise.
22371         * cfg.c: Likewise.
22372         * cfganal.c: Likewise.
22373         * cfgbuild.c: Likewise.
22374         * cfgcleanup.c: Likewise.
22375         * cfgexpand.c: Likewise.
22376         * cfghooks.c: Likewise.
22377         * cfgloop.c: Likewise.
22378         * cfgloop.h: Likewise.
22379         * cfgloopanal.c: Likewise.
22380         * cfgloopmanip.c: Likewise.
22381         * cfgrtl.c: Likewise.
22382         * cgraph.c: Likewise.
22383         * cgraphbuild.c: Likewise.
22384         * cgraphclones.c: Likewise.
22385         * cgraphunit.c: Likewise.
22386         * cilk-common.c: Likewise.
22387         * combine-stack-adj.c: Likewise.
22388         * combine.c: Likewise.
22389         * compare-elim.c: Likewise.
22390         * convert.c: Likewise.
22391         * coverage.c: Likewise.
22392         * cppbuiltin.c: Likewise.
22393         * cprop.c: Likewise.
22394         * cse.c: Likewise.
22395         * cselib.c: Likewise.
22396         * data-streamer-in.c: Likewise.
22397         * data-streamer-out.c: Likewise.
22398         * data-streamer.c: Likewise.
22399         * dbxout.c: Likewise.
22400         * dce.c: Likewise.
22401         * ddg.c: Likewise.
22402         * debug.c: Likewise.
22403         * df-core.c: Likewise.
22404         * df-problems.c: Likewise.
22405         * df-scan.c: Likewise.
22406         * df.h: Likewise.
22407         * dfp.c: Likewise.
22408         * diagnostic-core.h: Likewise.
22409         * diagnostic.c: Likewise.
22410         * dojump.c: Likewise.
22411         * dominance.c: Likewise.
22412         * domwalk.c: Likewise.
22413         * double-int.c: Likewise.
22414         * dse.c: Likewise.
22415         * dumpfile.c: Likewise.
22416         * dumpfile.h: Likewise.
22417         * dwarf2asm.c: Likewise.
22418         * dwarf2cfi.c: Likewise.
22419         * dwarf2out.c: Likewise.
22420         * emit-rtl.c: Likewise.
22421         * et-forest.c: Likewise.
22422         * except.c: Likewise.
22423         * explow.c: Likewise.
22424         * expmed.c: Likewise.
22425         * expr.c: Likewise.
22426         * final.c: Likewise.
22427         * fixed-value.c: Likewise.
22428         * fold-const.c: Likewise.
22429         * function.c: Likewise.
22430         * fwprop.c: Likewise.
22431         * gcc-plugin.h: Likewise.
22432         * gcse.c: Likewise.
22433         * generic-match-head.c: Likewise.
22434         * ggc-page.c: Likewise.
22435         * gimple-builder.c: Likewise.
22436         * gimple-expr.c: Likewise.
22437         * gimple-fold.c: Likewise.
22438         * gimple-iterator.c: Likewise.
22439         * gimple-low.c: Likewise.
22440         * gimple-match-head.c: Likewise.
22441         * gimple-pretty-print.c: Likewise.
22442         * gimple-ssa-isolate-paths.c: Likewise.
22443         * gimple-ssa-strength-reduction.c: Likewise.
22444         * gimple-streamer-in.c: Likewise.
22445         * gimple-streamer-out.c: Likewise.
22446         * gimple-streamer.h: Likewise.
22447         * gimple-walk.c: Likewise.
22448         * gimple.c: Likewise.
22449         * gimplify-me.c: Likewise.
22450         * gimplify.c: Likewise.
22451         * godump.c: Likewise.
22452         * graph.c: Likewise.
22453         * graphite-blocking.c: Likewise.
22454         * graphite-dependences.c: Likewise.
22455         * graphite-interchange.c: Likewise.
22456         * graphite-isl-ast-to-gimple.c: Likewise.
22457         * graphite-optimize-isl.c: Likewise.
22458         * graphite-poly.c: Likewise.
22459         * graphite-scop-detection.c: Likewise.
22460         * graphite-sese-to-poly.c: Likewise.
22461         * graphite.c: Likewise.
22462         * haifa-sched.c: Likewise.
22463         * hw-doloop.c: Likewise.
22464         * ifcvt.c: Likewise.
22465         * init-regs.c: Likewise.
22466         * input.c: Likewise.
22467         * internal-fn.c: Likewise.
22468         * ipa-chkp.c: Likewise.
22469         * ipa-comdats.c: Likewise.
22470         * ipa-cp.c: Likewise.
22471         * ipa-devirt.c: Likewise.
22472         * ipa-icf-gimple.c: Likewise.
22473         * ipa-icf.c: Likewise.
22474         * ipa-inline-analysis.c: Likewise.
22475         * ipa-inline-transform.c: Likewise.
22476         * ipa-inline.c: Likewise.
22477         * ipa-polymorphic-call.c: Likewise.
22478         * ipa-profile.c: Likewise.
22479         * ipa-prop.c: Likewise.
22480         * ipa-pure-const.c: Likewise.
22481         * ipa-ref.c: Likewise.
22482         * ipa-reference.c: Likewise.
22483         * ipa-split.c: Likewise.
22484         * ipa-utils.c: Likewise.
22485         * ipa-visibility.c: Likewise.
22486         * ipa.c: Likewise.
22487         * ira-build.c: Likewise.
22488         * ira-color.c: Likewise.
22489         * ira-conflicts.c: Likewise.
22490         * ira-costs.c: Likewise.
22491         * ira-emit.c: Likewise.
22492         * ira-lives.c: Likewise.
22493         * ira.c: Likewise.
22494         * jump.c: Likewise.
22495         * langhooks.c: Likewise.
22496         * lcm.c: Likewise.
22497         * loop-doloop.c: Likewise.
22498         * loop-init.c: Likewise.
22499         * loop-invariant.c: Likewise.
22500         * loop-iv.c: Likewise.
22501         * loop-unroll.c: Likewise.
22502         * lower-subreg.c: Likewise.
22503         * lra-assigns.c: Likewise.
22504         * lra-coalesce.c: Likewise.
22505         * lra-constraints.c: Likewise.
22506         * lra-eliminations.c: Likewise.
22507         * lra-lives.c: Likewise.
22508         * lra-remat.c: Likewise.
22509         * lra-spills.c: Likewise.
22510         * lra.c: Likewise.
22511         * lto-cgraph.c: Likewise.
22512         * lto-compress.c: Likewise.
22513         * lto-opts.c: Likewise.
22514         * lto-section-in.c: Likewise.
22515         * lto-section-out.c: Likewise.
22516         * lto-streamer-in.c: Likewise.
22517         * lto-streamer-out.c: Likewise.
22518         * lto-streamer.c: Likewise.
22519         * mcf.c: Likewise.
22520         * mode-switching.c: Likewise.
22521         * modulo-sched.c: Likewise.
22522         * omega.c: Likewise.
22523         * omp-low.c: Likewise.
22524         * optabs.c: Likewise.
22525         * opts-global.c: Likewise.
22526         * opts.h: Likewise.
22527         * passes.c: Likewise.
22528         * plugin.c: Likewise.
22529         * postreload-gcse.c: Likewise.
22530         * postreload.c: Likewise.
22531         * predict.c: Likewise.
22532         * pretty-print.h: Likewise.
22533         * print-rtl.c: Likewise.
22534         * print-tree.c: Likewise.
22535         * profile.c: Likewise.
22536         * real.c: Likewise.
22537         * realmpfr.c: Likewise.
22538         * recog.c: Likewise.
22539         * ree.c: Likewise.
22540         * reg-stack.c: Likewise.
22541         * regcprop.c: Likewise.
22542         * reginfo.c: Likewise.
22543         * regrename.c: Likewise.
22544         * regstat.c: Likewise.
22545         * reload.c: Likewise.
22546         * reload1.c: Likewise.
22547         * reorg.c: Likewise.
22548         * resource.c: Likewise.
22549         * rtl-chkp.c: Likewise.
22550         * rtl-error.c: Likewise.
22551         * rtlanal.c: Likewise.
22552         * rtlhooks.c: Likewise.
22553         * sanopt.c: Likewise.
22554         * sched-deps.c: Likewise.
22555         * sched-ebb.c: Likewise.
22556         * sched-rgn.c: Likewise.
22557         * sched-vis.c: Likewise.
22558         * sdbout.c: Likewise.
22559         * sel-sched-dump.c: Likewise.
22560         * sel-sched-ir.c: Likewise.
22561         * sel-sched.c: Likewise.
22562         * sese.c: Likewise.
22563         * shrink-wrap.c: Likewise.
22564         * simplify-rtx.c: Likewise.
22565         * stack-ptr-mod.c: Likewise.
22566         * statistics.c: Likewise.
22567         * stmt.c: Likewise.
22568         * stor-layout.c: Likewise.
22569         * store-motion.c: Likewise.
22570         * streamer-hooks.c: Likewise.
22571         * stringpool.c: Likewise.
22572         * symtab.c: Likewise.
22573         * target-globals.c: Likewise.
22574         * targhooks.c: Likewise.
22575         * toplev.c: Likewise.
22576         * tracer.c: Likewise.
22577         * trans-mem.c: Likewise.
22578         * tree-affine.c: Likewise.
22579         * tree-browser.c: Likewise.
22580         * tree-call-cdce.c: Likewise.
22581         * tree-cfg.c: Likewise.
22582         * tree-cfgcleanup.c: Likewise.
22583         * tree-chkp-opt.c: Likewise.
22584         * tree-chkp.c: Likewise.
22585         * tree-chrec.c: Likewise.
22586         * tree-complex.c: Likewise.
22587         * tree-data-ref.c: Likewise.
22588         * tree-dfa.c: Likewise.
22589         * tree-diagnostic.c: Likewise.
22590         * tree-dump.c: Likewise.
22591         * tree-eh.c: Likewise.
22592         * tree-emutls.c: Likewise.
22593         * tree-if-conv.c: Likewise.
22594         * tree-inline.c: Likewise.
22595         * tree-into-ssa.c: Likewise.
22596         * tree-iterator.c: Likewise.
22597         * tree-loop-distribution.c: Likewise.
22598         * tree-nested.c: Likewise.
22599         * tree-nrv.c: Likewise.
22600         * tree-object-size.c: Likewise.
22601         * tree-outof-ssa.c: Likewise.
22602         * tree-parloops.c: Likewise.
22603         * tree-phinodes.c: Likewise.
22604         * tree-predcom.c: Likewise.
22605         * tree-pretty-print.c: Likewise.
22606         * tree-profile.c: Likewise.
22607         * tree-scalar-evolution.c: Likewise.
22608         * tree-sra.c: Likewise.
22609         * tree-ssa-address.c: Likewise.
22610         * tree-ssa-alias.c: Likewise.
22611         * tree-ssa-ccp.c: Likewise.
22612         * tree-ssa-coalesce.c: Likewise.
22613         * tree-ssa-copy.c: Likewise.
22614         * tree-ssa-copyrename.c: Likewise.
22615         * tree-ssa-dce.c: Likewise.
22616         * tree-ssa-dom.c: Likewise.
22617         * tree-ssa-dse.c: Likewise.
22618         * tree-ssa-forwprop.c: Likewise.
22619         * tree-ssa-ifcombine.c: Likewise.
22620         * tree-ssa-live.c: Likewise.
22621         * tree-ssa-loop-ch.c: Likewise.
22622         * tree-ssa-loop-im.c: Likewise.
22623         * tree-ssa-loop-ivcanon.c: Likewise.
22624         * tree-ssa-loop-ivopts.c: Likewise.
22625         * tree-ssa-loop-manip.c: Likewise.
22626         * tree-ssa-loop-niter.c: Likewise.
22627         * tree-ssa-loop-prefetch.c: Likewise.
22628         * tree-ssa-loop-unswitch.c: Likewise.
22629         * tree-ssa-loop.c: Likewise.
22630         * tree-ssa-math-opts.c: Likewise.
22631         * tree-ssa-operands.c: Likewise.
22632         * tree-ssa-phiopt.c: Likewise.
22633         * tree-ssa-phiprop.c: Likewise.
22634         * tree-ssa-pre.c: Likewise.
22635         * tree-ssa-propagate.c: Likewise.
22636         * tree-ssa-reassoc.c: Likewise.
22637         * tree-ssa-sccvn.c: Likewise.
22638         * tree-ssa-scopedtables.c: Likewise.
22639         * tree-ssa-sink.c: Likewise.
22640         * tree-ssa-strlen.c: Likewise.
22641         * tree-ssa-structalias.c: Likewise.
22642         * tree-ssa-tail-merge.c: Likewise.
22643         * tree-ssa-ter.c: Likewise.
22644         * tree-ssa-threadedge.c: Likewise.
22645         * tree-ssa-threadupdate.c: Likewise.
22646         * tree-ssa-uncprop.c: Likewise.
22647         * tree-ssa-uninit.c: Likewise.
22648         * tree-ssa.c: Likewise.
22649         * tree-ssanames.c: Likewise.
22650         * tree-stdarg.c: Likewise.
22651         * tree-streamer-in.c: Likewise.
22652         * tree-streamer-out.c: Likewise.
22653         * tree-streamer.c: Likewise.
22654         * tree-switch-conversion.c: Likewise.
22655         * tree-tailcall.c: Likewise.
22656         * tree-vect-data-refs.c: Likewise.
22657         * tree-vect-generic.c: Likewise.
22658         * tree-vect-loop-manip.c: Likewise.
22659         * tree-vect-loop.c: Likewise.
22660         * tree-vect-patterns.c: Likewise.
22661         * tree-vect-slp.c: Likewise.
22662         * tree-vect-stmts.c: Likewise.
22663         * tree-vectorizer.c: Likewise.
22664         * tree-vrp.c: Likewise.
22665         * tree.c: Likewise.
22666         * tsan.c: Likewise.
22667         * ubsan.c: Likewise.
22668         * valtrack.c: Likewise.
22669         * value-prof.c: Likewise.
22670         * var-tracking.c: Likewise.
22671         * varasm.c: Likewise.
22672         * varpool.c: Likewise.
22673         * vmsdbgout.c: Likewise.
22674         * vtable-verify.c: Likewise.
22675         * web.c: Likewise.
22676         * wide-int.cc: Likewise.
22677         * xcoffout.c: Likewise.
22678         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
22679         * common/common-targhooks.c: Likewise.
22680         * config/aarch64/aarch64-builtins.c: Likewise.
22681         * config/aarch64/aarch64.c: Likewise.
22682         * config/alpha/alpha.c: Likewise.
22683         * config/arc/arc.c: Likewise.
22684         * config/arm/aarch-common.c: Likewise.
22685         * config/arm/arm-builtins.c: Likewise.
22686         * config/arm/arm-c.c: Likewise.
22687         * config/arm/arm.c: Likewise.
22688         * config/avr/avr-c.c: Likewise.
22689         * config/avr/avr-log.c: Likewise.
22690         * config/avr/avr.c: Likewise.
22691         * config/bfin/bfin.c: Likewise.
22692         * config/c6x/c6x.c: Likewise.
22693         * config/cr16/cr16.c: Likewise.
22694         * config/cris/cris.c: Likewise.
22695         * config/darwin-c.c: Likewise.
22696         * config/darwin.c: Likewise.
22697         * config/default-c.c: Likewise.
22698         * config/epiphany/epiphany.c: Likewise.
22699         * config/epiphany/mode-switch-use.c: Likewise.
22700         * config/epiphany/resolve-sw-modes.c: Likewise.
22701         * config/fr30/fr30.c: Likewise.
22702         * config/frv/frv.c: Likewise.
22703         * config/ft32/ft32.c: Likewise.
22704         * config/glibc-c.c: Likewise.
22705         * config/h8300/h8300.c: Likewise.
22706         * config/i386/i386-c.c: Likewise.
22707         * config/i386/i386.c: Likewise.
22708         * config/i386/msformat-c.c: Likewise.
22709         * config/i386/winnt-cxx.c: Likewise.
22710         * config/i386/winnt-stubs.c: Likewise.
22711         * config/i386/winnt.c: Likewise.
22712         * config/ia64/ia64-c.c: Likewise.
22713         * config/ia64/ia64.c: Likewise.
22714         * config/iq2000/iq2000.c: Likewise.
22715         * config/lm32/lm32.c: Likewise.
22716         * config/m32c/m32c-pragma.c: Likewise.
22717         * config/m32c/m32c.c: Likewise.
22718         * config/m32r/m32r.c: Likewise.
22719         * config/m68k/m68k.c: Likewise.
22720         * config/mcore/mcore.c: Likewise.
22721         * config/mep/mep-pragma.c: Likewise.
22722         * config/mep/mep.c: Likewise.
22723         * config/microblaze/microblaze-c.c: Likewise.
22724         * config/microblaze/microblaze.c: Likewise.
22725         * config/mips/mips.c: Likewise.
22726         * config/mmix/mmix.c: Likewise.
22727         * config/mn10300/mn10300.c: Likewise.
22728         * config/moxie/moxie.c: Likewise.
22729         * config/msp430/msp430-c.c: Likewise.
22730         * config/msp430/msp430.c: Likewise.
22731         * config/nds32/nds32-cost.c: Likewise.
22732         * config/nds32/nds32-fp-as-gp.c: Likewise.
22733         * config/nds32/nds32-intrinsic.c: Likewise.
22734         * config/nds32/nds32-isr.c: Likewise.
22735         * config/nds32/nds32-md-auxiliary.c: Likewise.
22736         * config/nds32/nds32-memory-manipulation.c: Likewise.
22737         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
22738         * config/nds32/nds32-predicates.c: Likewise.
22739         * config/nds32/nds32.c: Likewise.
22740         * config/nios2/nios2.c: Likewise.
22741         * config/nvptx/nvptx.c: Likewise.
22742         * config/pa/pa.c: Likewise.
22743         * config/pdp11/pdp11.c: Likewise.
22744         * config/rl78/rl78-c.c: Likewise.
22745         * config/rl78/rl78.c: Likewise.
22746         * config/rs6000/rs6000-c.c: Likewise.
22747         * config/rs6000/rs6000.c: Likewise.
22748         * config/rx/rx.c: Likewise.
22749         * config/s390/s390-c.c: Likewise.
22750         * config/s390/s390.c: Likewise.
22751         * config/sh/sh-c.c: Likewise.
22752         * config/sh/sh-mem.cc: Likewise.
22753         * config/sh/sh.c: Likewise.
22754         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
22755         * config/sh/sh_treg_combine.cc: Likewise.
22756         * config/sol2-c.c: Likewise.
22757         * config/sol2-cxx.c: Likewise.
22758         * config/sol2-stubs.c: Likewise.
22759         * config/sol2.c: Likewise.
22760         * config/sparc/sparc-c.c: Likewise.
22761         * config/sparc/sparc.c: Likewise.
22762         * config/spu/spu-c.c: Likewise.
22763         * config/spu/spu.c: Likewise.
22764         * config/stormy16/stormy16.c: Likewise.
22765         * config/tilegx/mul-tables.c: Likewise.
22766         * config/tilegx/tilegx-c.c: Likewise.
22767         * config/tilegx/tilegx.c: Likewise.
22768         * config/tilepro/mul-tables.c: Likewise.
22769         * config/tilepro/tilepro-c.c: Likewise.
22770         * config/tilepro/tilepro.c: Likewise.
22771         * config/v850/v850-c.c: Likewise.
22772         * config/v850/v850.c: Likewise.
22773         * config/vax/vax.c: Likewise.
22774         * config/visium/visium.c: Likewise.
22775         * config/vms/vms-c.c: Likewise.
22776         * config/vms/vms.c: Likewise.
22777         * config/vxworks.c: Likewise.
22778         * config/winnt-c.c: Likewise.
22779         * config/xtensa/xtensa.c: Likewise.
22780
22781 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
22782
22783         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
22784         function.
22785         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
22786
22787 2015-06-17  Richard Biener  <rguenther@suse.de>
22788
22789         PR tree-optimization/66251
22790         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
22791         stmts for SLP strided stores.
22792
22793         Revert
22794         2015-05-22  Richard Biener  <rguenther@suse.de>
22795
22796         PR tree-optimization/66251
22797         * tree-vect-stmts.c (vectorizable_conversion): Properly
22798         set STMT_VINFO_VEC_STMT even for the SLP case.
22799
22800         2015-05-26  Michael Matz  <matz@suse.de>
22801
22802         PR middle-end/66251
22803         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
22804         STMT_VINFO_VEC_STMT, also with SLP.
22805
22806 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
22807
22808         PR target/56766
22809         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
22810         (*avx_addsubv4df3_1s): Ditto.
22811         (*sse3_addsubv2df3_1): Ditto.
22812         (*sse3_addsubv2df3_1s): Ditto.
22813         (*avx_addsubv8sf3_1): Ditto.
22814         (*avx_addsubv8sf3_1s): Ditto.
22815         (*sse3_addsubv4sf3_1): Ditto.
22816         (*sse3_addsubv4sf3_1s): Ditto.
22817
22818 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
22819
22820         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
22821         (SYSROOT_SUFFIX_SPEC): Update.
22822         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
22823         (STARTFILE_PREFIX_SPEC): Update.
22824         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
22825         (MULTILIB_REQUIRED): New.
22826         (MULTILIB_OSDIRNAMES): New.
22827         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
22828         (MULTILIB_REQUIRED): New.
22829         (MULTILIB_OSDIRNAMES): New.
22830
22831 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
22832
22833         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
22834         * config/aarch64/aarch64-options-extensions.def: Update "fP",
22835         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
22836         * config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
22837         (AARCH64_FL_PAN): New.
22838         (AARCH64_FL_LOR): New.
22839         (AARCH64_FL_RDMA): New.
22840         (AARCH64_FL_FOR_ARCH8_1): New.
22841         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
22842         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
22843
22844 2015-06-16  Martin Liska  <mliska@suse.cz>
22845
22846         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
22847         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
22848         guard.
22849
22850 2015-06-16  Richard Biener  <rguenther@suse.de>
22851
22852         * tree-vect-stmts.c (vectorizable_store): Adjust.
22853         (vectorizable_load): Likewise.
22854         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22855         Simplify.
22856         (vect_create_data_ref_ptr): Likewise.
22857         (bump_vector_ptr): Adjust.
22858
22859 2015-06-16  Richard Biener  <rguenther@suse.de>
22860
22861         * tree-vect-stmts.c (vectorizable_load): Properly start loads
22862         with the first element if this is grouped loads.
22863
22864 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
22865
22866         * config/arm/arm-protos.h (struct tune_params): Rename
22867         log_op_non_sc to log_op_non_short_circuit, and rename enum
22868         values to expand SC to SHORT_CIRCUIT.
22869         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
22870         to LOG_OP_NON_SHORT_CIRCUIT.
22871         (arm_fastmul_tune):Likewise
22872         (arm_strongarm_tune): Likewise.
22873         (arm_xscale_tune): Likewise.
22874         (arm_9e_tune): Likewise.
22875         (arm_marvell_pj4_tune): Likewise.
22876         (arm_v6t2_tune): Likewise.
22877         (arm_cortex_tune): Likewise.
22878         (arm_cortex_a8_tune): Likewise.
22879         (arm_cortex_a7_tune): Likewise.
22880         (arm_cortex_a15_tune): Likewise.
22881         (arm_cortex_a53_tune): Likewise.
22882         (arm_cortex_a57_tune): Likewise.
22883         (arm_xgene1_tune): Likewise.
22884         (arm_cortex_a5_tune): Likewise.
22885         (arm_cortex_a9_tune): Likewise.
22886         (arm_cortex_a12_tune): Likewise.
22887         (arm_v7m_tune): Likewise.
22888         (arm_cortex_m7_tune): Likewise.
22889         (arm_v6m_tune): Likewise.
22890         (arm_fa726te_tune): Likewise.
22891
22892 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
22893
22894         * altivec.md: Delete UNSPEC_VMLADDUHM.
22895         (mulv4si3_p8): New pattern.
22896         (mulv4si3): Use it for POWER8.
22897         (mulv8hi3): Use vmladduhm with zero addend.
22898         (altivec_vmladduhm): Descriptive RTL.
22899
22900 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
22901
22902         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
22903         to use neon_move instead of mov_imm.
22904         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
22905         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
22906
22907         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
22908         aarch64_float_const_zero_rtx_p check before TFmode check.
22909         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
22910         an fp zero.
22911         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
22912         code and attributes to match.  Change condition from register_operand
22913         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
22914         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
22915         to store2.
22916
22917 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
22918
22919         PR debug/66535
22920         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
22921         there is no parent.
22922
22923 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
22924
22925         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
22926         HOST_WIDE_INT parameter.
22927
22928 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
22929
22930         PR ipa/66181
22931         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
22932         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
22933         TYPE_NO_FORCE_BLK.
22934         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
22935
22936 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
22937
22938         * rtl.h (classify_insn): Declare.
22939         * emit-rtl.c (classify_insn): Move to...
22940         * rtl.c: ...here and add generator support.
22941         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
22942         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
22943         * genemit.c (gen_emit_seq): New function.
22944         (gen_expand, gen_split): Use it.
22945
22946 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
22947
22948         * tree.c (make_vector_stat): Fix comment to state that the
22949         function returns a VECTOR_CST.
22950
22951 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
22952
22953         * gensupport.h (add_implicit_parallel): Declare.
22954         * genrecog.c (add_implicit_parallel): Move to...
22955         * gensupport.c (add_implicit_parallel): ...here.
22956         (process_one_cond_exec): Use it.
22957         * genemit.c (gen_insn): Likewise.
22958
22959 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
22960
22961         PR bootstrap/66448
22962         * passes.c (rest_of_decl_compilation): Do not register globals for
22963         early debug if they are declared in built-ins.
22964
22965 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
22966
22967         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
22968
22969 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22970
22971         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
22972         manually swapping.
22973         (noce_try_cmove_arith): Likewise.
22974         (noce_get_alt_condition): Likewise.
22975
22976 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
22977
22978         * common/config/i386/i386-common.c
22979         (OPTION_MASK_ISA_MWAITX_SET): New.
22980         (ix86_handle_option): Handle mwaitx.
22981         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
22982         (x86_64-*-*): Likewise.
22983         * config/i386/mwaitxintrin.h: New header.
22984         * config/i386/cpuid.h (bit_MWAITX):  Define.
22985         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
22986         MWAITX support.
22987         * config/i386/i386.opt (mwaitx): New.
22988         * config/i386/i386-builtin-types.def
22989         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
22990         * config/i386/i386-c.c: Define __MWAITX__ if needed.
22991         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
22992         (PTA_MWAITX): New.
22993         (ix86_option_override_internal): Handle new option.
22994         (processor_alias_table): Added PTA_MWAITX.
22995         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
22996         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
22997         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
22998         IX86_BUILTIN_MONITORX  built-ins.
22999         * config/i386/i386.h (TARGET_MWAITX): New.
23000         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
23001         UNSPEC_MONITORX.
23002         (mwaitx):  New pattern.
23003         (monitorx_<mode>): New pattern.
23004         * config/i386/x86intrin.h: Include mwaitxintrin.h.
23005         * doc/extend.texi: Document monitorx and mwaitx builtins.
23006         * doc/invoke.texi: Document -mmwaitx option.
23007
23008 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
23009
23010         * emit-rtl.c (need_atomic_barrier_p): Mask model with
23011         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
23012
23013 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
23014
23015         * dbxout.c (xcoff_debug_hooks): Provide a function for
23016         register_main_translation_unit hook.
23017
23018 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
23019
23020         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
23021         variants cases from switch.
23022         (rs6000_post_atomic_barrier): Same.
23023         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
23024         (rs6000_expand_atomic_exchange): Same.
23025         (rs6000_expand_atomic_op): Same.
23026         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
23027         SYNC variants cases from switch.
23028         (atomic_load): Same.
23029         (atomic_store): Same.
23030
23031 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
23032
23033         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
23034         CONST_INT for goto.
23035
23036 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
23037
23038         PR bootstrap/66448
23039         * dwarf2out.c (check_die): Check for common duplicate attributes.
23040         (add_location_or_const_value_attribute): Do not add duplicate
23041         attributes.
23042         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
23043         time around.
23044         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
23045         (gen_type_die_with_usage): Call check_die.
23046         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
23047
23048 2015-06-11  Jason Merrill  <jason@redhat.com>
23049
23050         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
23051         dies.
23052
23053 2015-06-11  Marek Polacek  <polacek@redhat.com>
23054
23055         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
23056
23057 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
23058
23059         PR bootstrap/66252
23060         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
23061         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
23062         (*addx_extend_sp32): Fix pasto.
23063         (*subx_extend): Rename into...
23064         (*subx_extend_sp32): ...this.
23065         (*adddi3_extend_sp32): Add earlyclobber.
23066         (*subdi3_insn_sp32): Likewise.
23067         (*subdi3_extend_sp32): Likewise.
23068         (*and_not_di_sp32): Likewise.
23069         (*or_not_di_sp32): Likewise.
23070         (*xor_not_di_sp32): Likewise.
23071         (*negdi2_sp32): Likewise.
23072         (*one_cmpldi2_sp32): Likewise.
23073
23074 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
23075
23076         * debug.h (struct gcc_debug_hooks): Add a
23077         register_main_translation_unit hook.
23078         * debug.c (do_nothing_debug_hooks): Provide a function for this
23079         new hook.
23080         * dbxout.c (dbx_debug_hooks): Likewise.
23081         * sdbout.c (sdb_debug_hooks): Likewise.
23082         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
23083         * dwarf2out.c (main_translation_unit): New global variable.
23084         (dwarf2out_register_main_translation_unit): New function
23085         implementing the new hook.
23086         (dwarf2_debug_hooks): Assign
23087         dwarf2out_register_main_translation_unit to this new hook.
23088         (dwarf2out_init): Associate any main translation unit to
23089         comp_unit_die ().
23090
23091 2015-06-11  Marek Polacek  <polacek@redhat.com>
23092
23093         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
23094
23095 2015-06-11  Marek Polacek  <polacek@redhat.com>
23096
23097         * match.pd: Use single_use throughout.
23098
23099 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23100
23101         * config/arm/arm.c (arm_option_params_internal): When optimising
23102         for speed set max_insns_skipped when arm_restrict_it.
23103
23104 2015-06-11  Christian Bruel  <christian.bruel@st.com>
23105
23106         PR target/52144
23107         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
23108          macros in ...
23109         (arm_cpu_builtins): New function.
23110         (arm_pragma_target_parse): Call arm_cpu_builtins.
23111         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
23112         (arm_register_target_pragmas): Likewise.
23113         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
23114          Call arm_register_target_pragmas.
23115         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
23116         (arm_pragma_target_parse): Likewise.
23117
23118 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
23119
23120         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
23121         of the second operand.
23122
23123 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
23124
23125         PR target/66473
23126         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
23127         to prepare mask operand for AVX512 modes.
23128
23129 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
23130
23131         PR target/66474
23132         * doc/md.texi (Machine Constraints): Document that on the PowerPC
23133         if you use a constraint that targets a VSX register, you must use
23134         %x<n> in the template.
23135
23136 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
23137
23138         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
23139         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
23140         (define_insn "trap"): New definition.
23141
23142 2015-06-10  Richard Biener  <rguenther@suse.de>
23143
23144         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
23145         out from ...
23146         (vect_supported_load_permutation_p): ... here.  Handle
23147         supportable permutations in reductions.
23148         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
23149         for vectorizing strided group loads.
23150
23151 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
23152
23153         PR target/66470
23154         * config/i386/i386.c (ix86_split_long_move): For collisions
23155         involving direct tls segment refs, move the UNSPEC_TP possibly
23156         wrapped in ZERO_EXTEND out of the address for lea, to each of
23157         the memory loads.
23158
23159 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23160
23161         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
23162         dmb sy. Adjust tabs.
23163
23164 2015-06-10  Tom de Vries  <tom@codesourcery.com>
23165
23166         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
23167
23168 2015-06-10  Martin Liska  <mliska@suse.cz>
23169
23170         PR bootstrap/66471
23171         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
23172         all enum values in mem_alloc_origin.
23173         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
23174         name.
23175         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
23176         * bitmap.c (bitmap_register): Likewise.
23177         (dump_bitmap_statistics): Likewise.
23178         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
23179         (ggc_record_overhead): Likewise.
23180         * hash-map.h: Likewise.
23181         * hash-set.h: Likewise.
23182         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
23183         * hash-table.h: Likewise.
23184         * vec.c (vec_prefix::register_overhead): Likewise.
23185         (vec_prefix::release_overhead): Likewise.
23186         (dump_vec_loc_statistics): Likewise.
23187
23188 2015-06-09  Christian Bruel  <christian.bruel@st.com>
23189
23190         PR target/52144
23191         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
23192         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
23193         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
23194         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
23195         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
23196         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
23197         (arm_valid_target_attribute_p): Likewise.
23198         (arm_set_current_function, arm_can_inline_p): Likewise.
23199         (arm_valid_target_attribute_rec): Likewise.
23200         (arm_previous_fndecl): New variable.
23201         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
23202         (TARGET_CAN_INLINE_P): Define.
23203         (arm_asm_trampoline_template): Emit mode.
23204         (arm_file_start): Don't set unified syntax.
23205         (arm_declare_function_name): Set unified syntax and mode.
23206         (arm_option_override): Init target_option_default_node.
23207         and target_option_current_node.
23208         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
23209         (*call_symbol): Likewise.
23210         * doc/extend.texi: Document ARM/Thumb target attribute.
23211         * doc/invoke.texi: Likewise.
23212
23213 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
23214
23215         Revert:
23216         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
23217         PR rtl-optimization/64164
23218         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
23219         * tree-ssa-copyrename.c: Removed.
23220         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
23221         -ftree-coalesce-vars.
23222         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
23223         * common.opt (ftree-copyrename): Ignore.
23224         (ftree-coalesce-inlined-vars): Likewise.
23225         * doc/invoke.texi: Remove the ignored options above.
23226         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
23227         * tree-ssa-coalesce.h: ... here.
23228         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
23229         headers required by it.
23230         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
23231         across variables when flag_tree_coalesce_vars.  Check register
23232         use and promoted modes to allow coalescing.  Moved to
23233         tree-ssa-coalesce.c.
23234         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
23235         with its member functions to tree-ssa-coalesce.c.
23236         (var_map_base_init): Likewise.  Renamed to
23237         compute_samebase_partition_bases.
23238         (partition_view_normal): Drop want_bases parameter.
23239         (partition_view_bitmap): Likewise.
23240         * tree-ssa-live.h: Adjust declarations.
23241         * tree-ssa-coalesce.c: Include explow.h.
23242         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
23243         default defs at the entry point.
23244         (dump_part_var_map): New.
23245         (compute_optimized_partition_bases): New, called by...
23246         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
23247         of compute_samebase_partition_bases.  Adjust.
23248         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
23249         * cfgexpand.c (leader_merge): New.
23250         (get_rtl_for_parm_ssa_default_def): New.
23251         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
23252         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
23253         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
23254         redundant MEM attr setting.
23255         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
23256         from...
23257         (expand_one_stack_var): ... this.  New wrapper to check and
23258         skip already expanded SSA partitions.
23259         (record_alignment_for_reg_var): New, factored out of...
23260         (expand_one_var): ... this.
23261         (expand_one_ssa_partition): New.
23262         (adjust_one_expanded_partition_var): New.
23263         (expand_one_register_var): Check and skip already expanded SSA
23264         partitions.
23265         (expand_used_vars): Don't create DECLs for anonymous SSA
23266         names.  Expand all SSA partitions, then adjust all SSA names.
23267         (pass::execute): Replace the loops that set
23268         SA.partition_to_pseudo from partition leaders and cleared
23269         DECL_RTL for multi-location variables, and that which used to
23270         rename vars and set attrs, with one that clears DECL_RTL and
23271         checks that PARMs and RESULTs default_defs match DECL_RTL.
23272         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
23273         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
23274         * explow.c (promote_ssa_mode): New.
23275         * explow.h (promote_ssa_mode): Declare.
23276         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
23277         * function.c: Include cfgexpand.h.
23278         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
23279         (use_register_for_parm_decl): Wrapper for the above to
23280         special-case the result_ptr.
23281         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
23282         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
23283         multiple locations.
23284         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
23285         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
23286         (assign_parm_setup_block): Prefer SSA-assigned location.
23287         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
23288         if stack_parm is NULL.
23289         (assign_parm_setup_stack): Prefer SSA-assigned location.
23290         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
23291         rtl before testing for pointer bounds.  Special-case result_ptr.
23292         (expand_function_start): Maybe reset DECL_RTL of result.
23293         Prefer SSA-assigned location for result and static chain.
23294         Factor out DECL_RESULT and SET_DECL_RTL.
23295         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
23296         anonymous SSA names.  Use promote_ssa_mode.
23297         (get_temp_reg): Likewise.
23298         (remove_ssa_form): Adjust.
23299         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
23300         and get its reg_usage for reg invalidation.
23301         (compute_bb_dataflow): Pass it insn.
23302         (emit_notes_in_bb): Likewise.
23303         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
23304         fail assert on conversion between unsigned types.
23305
23306 2015-06-09  Tom de Vries  <tom@codesourcery.com>
23307
23308         PR tree-optimization/65460
23309         * omp-low.c (expand_omp_target): Set parallelized_function on
23310         cgraph_node for child_fn.
23311
23312 2015-06-09  Tom de Vries  <tom@codesourcery.com>
23313
23314         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
23315         parallelized_function before add_new_function.
23316
23317 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
23318
23319         * gcc-plugin.h: Move decls to plugin.h and include it.
23320         * plugin.h: Relocate decls from gcc-plugin.h
23321         * ggc-page.c: Include required header files.
23322         * passes.c: Likewise.
23323         * cgraphunit.c: Likewise.
23324
23325 2015-06-09  Tom de Vries  <tom@codesourcery.com>
23326
23327         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
23328
23329 2015-06-09  Jason Merrill  <jason@redhat.com>
23330
23331         PR bootstrap/66448
23332         * toplev.c (check_global_declaration): Don't warn about a clone.
23333
23334 2015-06-09  Marek Polacek  <polacek@redhat.com>
23335
23336         PR tree-optimization/66299
23337         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
23338         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
23339         patterns.
23340
23341 2015-06-09  Richard Biener  <rguenther@suse.de>
23342
23343         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
23344         (vect_analyze_slp_instance): Instead do not falsely drop
23345         load permutations.
23346
23347 2015-06-09  Richard Biener  <rguenther@suse.de>
23348
23349         PR middle-end/66423
23350         * match.pd: Handle A % (unsigned)(1 << B).
23351
23352 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
23353
23354         * varasm.c (output_object_block_htab): Remove.
23355         (output_object_block_compare): New.
23356         (output_object_blocks): Sort named object_blocks before outputting
23357         them.
23358
23359 2015-06-09  Richard Biener  <rguenther@suse.de>
23360
23361         PR tree-optimization/66419
23362         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
23363         consider GROUP_GAP when detecting a perfect subchain.
23364
23365 2015-06-09  Nick Clifton  <nickc@redhat.com>
23366
23367         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
23368         place read only data in the .frodata section.
23369
23370 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
23371
23372         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
23373         (atomic_store<mode>): Likewise.
23374
23375 2015-06-09  Richard Biener  <rguenther@suse.de>
23376
23377         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
23378
23379 2015-06-09  Richard Biener  <rguenther@suse.de>
23380
23381         PR middle-end/66413
23382         * tree-inline.c (insert_init_debug_bind): Unshare value.
23383
23384 2015-06-09  Richard Biener  <rguenther@suse.de>
23385
23386         PR tree-optimization/66396
23387         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
23388         Rename virtual operands.
23389
23390 2015-06-09  Tom de Vries  <tom@codesourcery.com>
23391
23392         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
23393         always return false.
23394
23395 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
23396
23397         PR rtl-optimization/64164
23398         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
23399         * tree-ssa-copyrename.c: Removed.
23400         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
23401         -ftree-coalesce-vars.
23402         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
23403         * common.opt (ftree-copyrename): Ignore.
23404         (ftree-coalesce-inlined-vars): Likewise.
23405         * doc/invoke.texi: Remove the ignored options above.
23406         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
23407         * tree-ssa-coalesce.h: ... here.
23408         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
23409         headers required by it.
23410         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
23411         across variables when flag_tree_coalesce_vars.  Check register
23412         use and promoted modes to allow coalescing.  Moved to
23413         tree-ssa-coalesce.c.
23414         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
23415         with its member functions to tree-ssa-coalesce.c.
23416         (var_map_base_init): Likewise.  Renamed to
23417         compute_samebase_partition_bases.
23418         (partition_view_normal): Drop want_bases parameter.
23419         (partition_view_bitmap): Likewise.
23420         * tree-ssa-live.h: Adjust declarations.
23421         * tree-ssa-coalesce.c: Include explow.h.
23422         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
23423         default defs at the entry point.
23424         (dump_part_var_map): New.
23425         (compute_optimized_partition_bases): New, called by...
23426         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
23427         of compute_samebase_partition_bases.  Adjust.
23428         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
23429         * cfgexpand.c (leader_merge): New.
23430         (get_rtl_for_parm_ssa_default_def): New.
23431         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
23432         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
23433         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
23434         redundant MEM attr setting.
23435         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
23436         from...
23437         (expand_one_stack_var): ... this.  New wrapper to check and
23438         skip already expanded SSA partitions.
23439         (record_alignment_for_reg_var): New, factored out of...
23440         (expand_one_var): ... this.
23441         (expand_one_ssa_partition): New.
23442         (adjust_one_expanded_partition_var): New.
23443         (expand_one_register_var): Check and skip already expanded SSA
23444         partitions.
23445         (expand_used_vars): Don't create DECLs for anonymous SSA
23446         names.  Expand all SSA partitions, then adjust all SSA names.
23447         (pass::execute): Replace the loops that set
23448         SA.partition_to_pseudo from partition leaders and cleared
23449         DECL_RTL for multi-location variables, and that which used to
23450         rename vars and set attrs, with one that clears DECL_RTL and
23451         checks that PARMs and RESULTs default_defs match DECL_RTL.
23452         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
23453         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
23454         * explow.c (promote_ssa_mode): New.
23455         * explow.h (promote_ssa_mode): Declare.
23456         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
23457         * function.c: Include cfgexpand.h.
23458         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
23459         (use_register_for_parm_decl): Wrapper for the above to
23460         special-case the result_ptr.
23461         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
23462         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
23463         multiple locations.
23464         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
23465         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
23466         (assign_parm_setup_block): Prefer SSA-assigned location.
23467         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
23468         if stack_parm is NULL.
23469         (assign_parm_setup_stack): Prefer SSA-assigned location.
23470         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
23471         rtl before testing for pointer bounds.  Special-case result_ptr.
23472         (expand_function_start): Maybe reset DECL_RTL of result.
23473         Prefer SSA-assigned location for result and static chain.
23474         Factor out DECL_RESULT and SET_DECL_RTL.
23475         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
23476         anonymous SSA names.  Use promote_ssa_mode.
23477         (get_temp_reg): Likewise.
23478         (remove_ssa_form): Adjust.
23479         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
23480         and get its reg_usage for reg invalidation.
23481         (compute_bb_dataflow): Pass it insn.
23482         (emit_notes_in_bb): Likewise.
23483         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
23484         fail assert on conversion between unsigned types.
23485
23486 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
23487
23488         PR debug/58315
23489         * tree-inline.c (reset_debug_binding): New.
23490         (reset_debug_bindings): Likewise.
23491         (expand_call_inline): Call it.
23492
23493 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
23494
23495         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
23496         TYPE_STRING_FLAG.
23497
23498 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
23499
23500         * lto-streamer-out.c (lto_output_location): Stream
23501         reserved locations correctly.
23502         * lto-streamer-in.c (lto_output_location): Likewise.
23503
23504 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
23505
23506         * coretypes.h: Include hash-table.h and hash-set.h for host files.
23507         * ggc.h: Don't include statistics.h>
23508         * hash-map.h: Remove all includes.
23509         * hash-set.h: Likewise.
23510         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
23511         the include list. Remove <new>.
23512         * inchash.h: Remove all includes.
23513         * mem-stats.h: Likewise.
23514         * vec.h: No special processing for generators or ggc.
23515         * alias.c : Adjust include files.
23516         * alloc-pool.c : Likewise.
23517         * alloc-pool.h : Likewise.
23518         * asan.c : Likewise.
23519         * attribs.c : Likewise.
23520         * auto-inc-dec.c : Likewise.
23521         * auto-profile.c : Likewise.
23522         * bb-reorder.c : Likewise.
23523         * bitmap.c : Likewise.
23524         * bitmap.h : Likewise.
23525         * bt-load.c : Likewise.
23526         * builtins.c : Likewise.
23527         * caller-save.c : Likewise.
23528         * calls.c : Likewise.
23529         * ccmp.c : Likewise.
23530         * cfg.c : Likewise.
23531         * cfganal.c : Likewise.
23532         * cfgbuild.c : Likewise.
23533         * cfgcleanup.c : Likewise.
23534         * cfgexpand.c : Likewise.
23535         * cfghooks.c : Likewise.
23536         * cfgloop.c : Likewise.
23537         * cfgloop.h : Likewise.
23538         * cfgloopanal.c : Likewise.
23539         * cfgloopmanip.c : Likewise.
23540         * cfgrtl.c : Likewise.
23541         * cgraph.c : Likewise.
23542         * cgraphbuild.c : Likewise.
23543         * cgraphclones.c : Likewise.
23544         * cgraphunit.c : Likewise.
23545         * cilk-common.c : Likewise.
23546         * combine-stack-adj.c : Likewise.
23547         * combine.c : Likewise.
23548         * compare-elim.c : Likewise.
23549         * context.c : Likewise.
23550         * convert.c : Likewise.
23551         * coverage.c : Likewise.
23552         * cppbuiltin.c : Likewise.
23553         * cprop.c : Likewise.
23554         * cse.c : Likewise.
23555         * cselib.c : Likewise.
23556         * data-streamer-in.c : Likewise.
23557         * data-streamer-out.c : Likewise.
23558         * data-streamer.c : Likewise.
23559         * data-streamer.h : Likewise.
23560         * dbxout.c : Likewise.
23561         * dce.c : Likewise.
23562         * ddg.c : Likewise.
23563         * debug.c : Likewise.
23564         * df-core.c : Likewise.
23565         * df-problems.c : Likewise.
23566         * df-scan.c : Likewise.
23567         * df.h : Likewise.
23568         * dfp.c : Likewise.
23569         * dojump.c : Likewise.
23570         * dominance.c : Likewise.
23571         * domwalk.c : Likewise.
23572         * double-int.c : Likewise.
23573         * dse.c : Likewise.
23574         * dumpfile.c : Likewise.
23575         * dwarf2asm.c : Likewise.
23576         * dwarf2cfi.c : Likewise.
23577         * dwarf2out.c : Likewise.
23578         * emit-rtl.c : Likewise.
23579         * et-forest.c : Likewise.
23580         * except.c : Likewise.
23581         * except.h : Likewise.
23582         * explow.c : Likewise.
23583         * expmed.c : Likewise.
23584         * expr.c : Likewise.
23585         * final.c : Likewise.
23586         * fixed-value.c : Likewise.
23587         * fold-const.c : Likewise.
23588         * function.c : Likewise.
23589         * fwprop.c : Likewise.
23590         * gcc-plugin.h : Likewise.
23591         * gcc.c : Likewise.
23592         * gcse-common.c : Likewise.
23593         * gcse.c : Likewise.
23594         * genattrtab.c : Likewise.
23595         * genautomata.c : Likewise.
23596         * genconditions.c : Likewise.
23597         * genemit.c : Likewise.
23598         * generic-match-head.c : Likewise.
23599         * genextract.c : Likewise.
23600         * gengtype-state.c : Likewise.
23601         * gengtype.c : Likewise.
23602         * genhooks.c : Likewise.
23603         * genmatch.c : Likewise.
23604         * genmodes.c : Likewise.
23605         * genrecog.c : Likewise.
23606         * gensupport.c : Likewise.
23607         * ggc-common.c : Likewise.
23608         * ggc-internal.h : Likewise.
23609         * ggc-none.c : Likewise.
23610         * ggc-page.c : Likewise.
23611         * gimple-builder.c : Likewise.
23612         * gimple-expr.c : Likewise.
23613         * gimple-fold.c : Likewise.
23614         * gimple-iterator.c : Likewise.
23615         * gimple-low.c : Likewise.
23616         * gimple-match-head.c : Likewise.
23617         * gimple-pretty-print.c : Likewise.
23618         * gimple-ssa-isolate-paths.c : Likewise.
23619         * gimple-ssa-strength-reduction.c : Likewise.
23620         * gimple-ssa.h : Likewise.
23621         * gimple-streamer-in.c : Likewise.
23622         * gimple-streamer-out.c : Likewise.
23623         * gimple-streamer.h : Likewise.
23624         * gimple-walk.c : Likewise.
23625         * gimple.c : Likewise.
23626         * gimplify-me.c : Likewise.
23627         * gimplify.c : Likewise.
23628         * godump.c : Likewise.
23629         * graph.c : Likewise.
23630         * graphds.c : Likewise.
23631         * graphite-blocking.c : Likewise.
23632         * graphite-dependences.c : Likewise.
23633         * graphite-interchange.c : Likewise.
23634         * graphite-isl-ast-to-gimple.c : Likewise.
23635         * graphite-optimize-isl.c : Likewise.
23636         * graphite-poly.c : Likewise.
23637         * graphite-scop-detection.c : Likewise.
23638         * graphite-sese-to-poly.c : Likewise.
23639         * graphite.c : Likewise.
23640         * haifa-sched.c : Likewise.
23641         * hard-reg-set.h : Likewise.
23642         * hw-doloop.c : Likewise.
23643         * ifcvt.c : Likewise.
23644         * inchash.c : Likewise.
23645         * incpath.c : Likewise.
23646         * init-regs.c : Likewise.
23647         * input.c : Likewise.
23648         * internal-fn.c : Likewise.
23649         * ipa-chkp.c : Likewise.
23650         * ipa-comdats.c : Likewise.
23651         * ipa-cp.c : Likewise.
23652         * ipa-devirt.c : Likewise.
23653         * ipa-icf-gimple.c : Likewise.
23654         * ipa-icf.c : Likewise.
23655         * ipa-inline-analysis.c : Likewise.
23656         * ipa-inline-transform.c : Likewise.
23657         * ipa-inline.c : Likewise.
23658         * ipa-polymorphic-call.c : Likewise.
23659         * ipa-profile.c : Likewise.
23660         * ipa-prop.c : Likewise.
23661         * ipa-pure-const.c : Likewise.
23662         * ipa-ref.c : Likewise.
23663         * ipa-reference.c : Likewise.
23664         * ipa-split.c : Likewise.
23665         * ipa-utils.c : Likewise.
23666         * ipa-visibility.c : Likewise.
23667         * ipa.c : Likewise.
23668         * ira-build.c : Likewise.
23669         * ira-color.c : Likewise.
23670         * ira-conflicts.c : Likewise.
23671         * ira-costs.c : Likewise.
23672         * ira-emit.c : Likewise.
23673         * ira-lives.c : Likewise.
23674         * ira.c : Likewise.
23675         * jump.c : Likewise.
23676         * langhooks.c : Likewise.
23677         * lcm.c : Likewise.
23678         * libfuncs.h : Likewise.
23679         * lists.c : Likewise.
23680         * loop-doloop.c : Likewise.
23681         * loop-init.c : Likewise.
23682         * loop-invariant.c : Likewise.
23683         * loop-iv.c : Likewise.
23684         * loop-unroll.c : Likewise.
23685         * lower-subreg.c : Likewise.
23686         * lra-assigns.c : Likewise.
23687         * lra-coalesce.c : Likewise.
23688         * lra-constraints.c : Likewise.
23689         * lra-eliminations.c : Likewise.
23690         * lra-lives.c : Likewise.
23691         * lra-remat.c : Likewise.
23692         * lra-spills.c : Likewise.
23693         * lra.c : Likewise.
23694         * lto-cgraph.c : Likewise.
23695         * lto-compress.c : Likewise.
23696         * lto-opts.c : Likewise.
23697         * lto-section-in.c : Likewise.
23698         * lto-section-out.c : Likewise.
23699         * lto-streamer-in.c : Likewise.
23700         * lto-streamer-out.c : Likewise.
23701         * lto-streamer.c : Likewise.
23702         * lto-streamer.h : Likewise.
23703         * mcf.c : Likewise.
23704         * mode-switching.c : Likewise.
23705         * modulo-sched.c : Likewise.
23706         * omega.c : Likewise.
23707         * omp-low.c : Likewise.
23708         * optabs.c : Likewise.
23709         * opts-global.c : Likewise.
23710         * opts.h : Likewise.
23711         * passes.c : Likewise.
23712         * plugin.c : Likewise.
23713         * postreload-gcse.c : Likewise.
23714         * postreload.c : Likewise.
23715         * predict.c : Likewise.
23716         * print-rtl.c : Likewise.
23717         * print-tree.c : Likewise.
23718         * profile.c : Likewise.
23719         * read-md.c : Likewise.
23720         * read-md.h : Likewise.
23721         * read-rtl.c : Likewise.
23722         * real.c : Likewise.
23723         * realmpfr.c : Likewise.
23724         * recog.c : Likewise.
23725         * ree.c : Likewise.
23726         * reg-stack.c : Likewise.
23727         * regcprop.c : Likewise.
23728         * reginfo.c : Likewise.
23729         * regrename.c : Likewise.
23730         * regstat.c : Likewise.
23731         * reload.c : Likewise.
23732         * reload1.c : Likewise.
23733         * reorg.c : Likewise.
23734         * resource.c : Likewise.
23735         * rtl-chkp.c : Likewise.
23736         * rtl.c : Likewise.
23737         * rtl.h : Likewise.
23738         * rtlanal.c : Likewise.
23739         * rtlhash.c : Likewise.
23740         * rtlhash.h : Likewise.
23741         * rtlhooks.c : Likewise.
23742         * sanopt.c : Likewise.
23743         * sched-deps.c : Likewise.
23744         * sched-ebb.c : Likewise.
23745         * sched-rgn.c : Likewise.
23746         * sched-vis.c : Likewise.
23747         * sdbout.c : Likewise.
23748         * sel-sched-dump.c : Likewise.
23749         * sel-sched-ir.c : Likewise.
23750         * sel-sched-ir.h : Likewise.
23751         * sel-sched.c : Likewise.
23752         * sese.c : Likewise.
23753         * shrink-wrap.c : Likewise.
23754         * shrink-wrap.h : Likewise.
23755         * simplify-rtx.c : Likewise.
23756         * stack-ptr-mod.c : Likewise.
23757         * statistics.c : Likewise.
23758         * stmt.c : Likewise.
23759         * stor-layout.c : Likewise.
23760         * store-motion.c : Likewise.
23761         * stringpool.c : Likewise.
23762         * symtab.c : Likewise.
23763         * target-globals.c : Likewise.
23764         * targhooks.c : Likewise.
23765         * tlink.c : Likewise.
23766         * toplev.c : Likewise.
23767         * tracer.c : Likewise.
23768         * trans-mem.c : Likewise.
23769         * tree-affine.c : Likewise.
23770         * tree-affine.h : Likewise.
23771         * tree-browser.c : Likewise.
23772         * tree-call-cdce.c : Likewise.
23773         * tree-cfg.c : Likewise.
23774         * tree-cfgcleanup.c : Likewise.
23775         * tree-chkp-opt.c : Likewise.
23776         * tree-chkp.c : Likewise.
23777         * tree-chrec.c : Likewise.
23778         * tree-complex.c : Likewise.
23779         * tree-data-ref.c : Likewise.
23780         * tree-dfa.c : Likewise.
23781         * tree-diagnostic.c : Likewise.
23782         * tree-dump.c : Likewise.
23783         * tree-eh.c : Likewise.
23784         * tree-eh.h : Likewise.
23785         * tree-emutls.c : Likewise.
23786         * tree-hasher.h : Likewise.
23787         * tree-if-conv.c : Likewise.
23788         * tree-inline.c : Likewise.
23789         * tree-inline.h : Likewise.
23790         * tree-into-ssa.c : Likewise.
23791         * tree-iterator.c : Likewise.
23792         * tree-loop-distribution.c : Likewise.
23793         * tree-nested.c : Likewise.
23794         * tree-nrv.c : Likewise.
23795         * tree-object-size.c : Likewise.
23796         * tree-outof-ssa.c : Likewise.
23797         * tree-parloops.c : Likewise.
23798         * tree-phinodes.c : Likewise.
23799         * tree-predcom.c : Likewise.
23800         * tree-pretty-print.c : Likewise.
23801         * tree-profile.c : Likewise.
23802         * tree-scalar-evolution.c : Likewise.
23803         * tree-sra.c : Likewise.
23804         * tree-ssa-address.c : Likewise.
23805         * tree-ssa-alias.c : Likewise.
23806         * tree-ssa-ccp.c : Likewise.
23807         * tree-ssa-coalesce.c : Likewise.
23808         * tree-ssa-copy.c : Likewise.
23809         * tree-ssa-copyrename.c : Likewise.
23810         * tree-ssa-dce.c : Likewise.
23811         * tree-ssa-dom.c : Likewise.
23812         * tree-ssa-dse.c : Likewise.
23813         * tree-ssa-forwprop.c : Likewise.
23814         * tree-ssa-ifcombine.c : Likewise.
23815         * tree-ssa-live.c : Likewise.
23816         * tree-ssa-loop-ch.c : Likewise.
23817         * tree-ssa-loop-im.c : Likewise.
23818         * tree-ssa-loop-ivcanon.c : Likewise.
23819         * tree-ssa-loop-ivopts.c : Likewise.
23820         * tree-ssa-loop-manip.c : Likewise.
23821         * tree-ssa-loop-niter.c : Likewise.
23822         * tree-ssa-loop-prefetch.c : Likewise.
23823         * tree-ssa-loop-unswitch.c : Likewise.
23824         * tree-ssa-loop.c : Likewise.
23825         * tree-ssa-math-opts.c : Likewise.
23826         * tree-ssa-operands.c : Likewise.
23827         * tree-ssa-phiopt.c : Likewise.
23828         * tree-ssa-phiprop.c : Likewise.
23829         * tree-ssa-pre.c : Likewise.
23830         * tree-ssa-propagate.c : Likewise.
23831         * tree-ssa-reassoc.c : Likewise.
23832         * tree-ssa-sccvn.c : Likewise.
23833         * tree-ssa-scopedtables.c : Likewise.
23834         * tree-ssa-sink.c : Likewise.
23835         * tree-ssa-strlen.c : Likewise.
23836         * tree-ssa-structalias.c : Likewise.
23837         * tree-ssa-tail-merge.c : Likewise.
23838         * tree-ssa-ter.c : Likewise.
23839         * tree-ssa-threadedge.c : Likewise.
23840         * tree-ssa-threadupdate.c : Likewise.
23841         * tree-ssa-uncprop.c : Likewise.
23842         * tree-ssa-uninit.c : Likewise.
23843         * tree-ssa.c : Likewise.
23844         * tree-ssanames.c : Likewise.
23845         * tree-stdarg.c : Likewise.
23846         * tree-streamer-in.c : Likewise.
23847         * tree-streamer-out.c : Likewise.
23848         * tree-streamer.c : Likewise.
23849         * tree-streamer.h : Likewise.
23850         * tree-switch-conversion.c : Likewise.
23851         * tree-tailcall.c : Likewise.
23852         * tree-vect-data-refs.c : Likewise.
23853         * tree-vect-generic.c : Likewise.
23854         * tree-vect-loop-manip.c : Likewise.
23855         * tree-vect-loop.c : Likewise.
23856         * tree-vect-patterns.c : Likewise.
23857         * tree-vect-slp.c : Likewise.
23858         * tree-vect-stmts.c : Likewise.
23859         * tree-vectorizer.c : Likewise.
23860         * tree-vectorizer.h : Likewise.
23861         * tree-vrp.c : Likewise.
23862         * tree.c : Likewise.
23863         * tsan.c : Likewise.
23864         * ubsan.c : Likewise.
23865         * valtrack.c : Likewise.
23866         * valtrack.h : Likewise.
23867         * value-prof.c : Likewise.
23868         * var-tracking.c : Likewise.
23869         * varasm.c : Likewise.
23870         * varpool.c : Likewise.
23871         * vec.c: Likewise.
23872         * vmsdbgout.c : Likewise.
23873         * vtable-verify.c : Likewise.
23874         * vtable-verify.h : Likewise.
23875         * web.c : Likewise.
23876         * wide-int.cc : Likewise.
23877         * xcoffout.c : Likewise.
23878         * config/aarch64/aarch64-builtins.c : Likewise.
23879         * config/aarch64/aarch64.c : Likewise.
23880         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
23881         * config/alpha/alpha.c : Likewise.
23882         * config/arc/arc.c : Likewise.
23883         * config/arm/aarch-common.c : Likewise.
23884         * config/arm/arm-builtins.c : Likewise.
23885         * config/arm/arm-c.c : Likewise.
23886         * config/arm/arm.c : Likewise.
23887         * config/avr/avr-c.c : Likewise.
23888         * config/avr/avr-log.c : Likewise.
23889         * config/avr/avr.c : Likewise.
23890         * config/bfin/bfin.c : Likewise.
23891         * config/c6x/c6x.c : Likewise.
23892         * config/cr16/cr16.c : Likewise.
23893         * config/cris/cris.c : Likewise.
23894         * config/darwin-c.c : Likewise.
23895         * config/darwin.c : Likewise.
23896         * config/default-c.c : Likewise.
23897         * config/epiphany/epiphany.c : Likewise.
23898         * config/epiphany/mode-switch-use.c : Likewise.
23899         * config/epiphany/resolve-sw-modes.c : Likewise.
23900         * config/fr30/fr30.c : Likewise.
23901         * config/frv/frv.c : Likewise.
23902         * config/ft32/ft32.c : Likewise.
23903         * config/glibc-c.c : Likewise.
23904         * config/h8300/h8300.c : Likewise.
23905         * config/i386/i386-c.c : Likewise.
23906         * config/i386/i386.c : Likewise.
23907         * config/i386/msformat-c.c : Likewise.
23908         * config/i386/winnt-cxx.c : Likewise.
23909         * config/i386/winnt-stubs.c : Likewise.
23910         * config/i386/winnt.c : Likewise.
23911         * config/ia64/ia64-c.c : Likewise.
23912         * config/ia64/ia64.c : Likewise.
23913         * config/iq2000/iq2000.c : Likewise.
23914         * config/lm32/lm32.c : Likewise.
23915         * config/m32c/m32c-pragma.c : Likewise.
23916         * config/m32c/m32c.c : Likewise.
23917         * config/m32r/m32r.c : Likewise.
23918         * config/m68k/m68k.c : Likewise.
23919         * config/mcore/mcore.c : Likewise.
23920         * config/mep/mep-pragma.c : Likewise.
23921         * config/mep/mep.c : Likewise.
23922         * config/microblaze/microblaze-c.c : Likewise.
23923         * config/microblaze/microblaze.c : Likewise.
23924         * config/mips/mips.c : Likewise.
23925         * config/mmix/mmix.c : Likewise.
23926         * config/mn10300/mn10300.c : Likewise.
23927         * config/moxie/moxie.c : Likewise.
23928         * config/msp430/msp430-c.c : Likewise.
23929         * config/msp430/msp430.c : Likewise.
23930         * config/nds32/nds32-cost.c : Likewise.
23931         * config/nds32/nds32-fp-as-gp.c : Likewise.
23932         * config/nds32/nds32-intrinsic.c : Likewise.
23933         * config/nds32/nds32-isr.c : Likewise.
23934         * config/nds32/nds32-md-auxiliary.c : Likewise.
23935         * config/nds32/nds32-memory-manipulation.c : Likewise.
23936         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
23937         * config/nds32/nds32-predicates.c : Likewise.
23938         * config/nds32/nds32.c : Likewise.
23939         * config/nios2/nios2.c : Likewise.
23940         * config/nvptx/nvptx.c : Likewise.
23941         * config/pa/pa.c : Likewise.
23942         * config/pdp11/pdp11.c : Likewise.
23943         * config/rl78/rl78-c.c : Likewise.
23944         * config/rl78/rl78.c : Likewise.
23945         * config/rs6000/rs6000-c.c : Likewise.
23946         * config/rs6000/rs6000.c : Likewise.
23947         * config/rx/rx.c : Likewise.
23948         * config/s390/s390-c.c : Likewise.
23949         * config/s390/s390.c : Likewise.
23950         * config/sh/sh-c.c : Likewise.
23951         * config/sh/sh-mem.cc : Likewise.
23952         * config/sh/sh.c : Likewise.
23953         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
23954         * config/sh/sh_treg_combine.cc : Likewise.
23955         * config/sol2-c.c : Likewise.
23956         * config/sol2-cxx.c : Likewise.
23957         * config/sol2-stubs.c : Likewise.
23958         * config/sol2.c : Likewise.
23959         * config/sparc/sparc-c.c : Likewise.
23960         * config/sparc/sparc.c : Likewise.
23961         * config/spu/spu-c.c : Likewise.
23962         * config/spu/spu.c : Likewise.
23963         * config/stormy16/stormy16.c : Likewise.
23964         * config/tilegx/mul-tables.c : Likewise.
23965         * config/tilegx/tilegx-c.c : Likewise.
23966         * config/tilegx/tilegx.c : Likewise.
23967         * config/tilepro/mul-tables.c : Likewise.
23968         * config/tilepro/tilepro-c.c : Likewise.
23969         * config/tilepro/tilepro.c : Likewise.
23970         * config/v850/v850-c.c : Likewise.
23971         * config/v850/v850.c : Likewise.
23972         * config/vax/vax.c : Likewise.
23973         * config/visium/visium.c : Likewise.
23974         * config/vms/vms-c.c : Likewise.
23975         * config/vms/vms.c : Likewise.
23976         * config/vxworks.c : Likewise.
23977         * config/winnt-c.c : Likewise.
23978         * config/xtensa/xtensa.c : Likewise.
23979
23980 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
23981
23982         PR lto/65378
23983         * ipa-utils.h (warn_types_mismatch): Update prototype.
23984         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
23985         parameters.
23986         (type_mismatch_p): New function.
23987         (warn_types_mismatch): Reorg to work better on non-C++ types.
23988         (odr_types_equivalent_p): Add loc1/loc2 parameters.
23989         (add_type_duplicate): Update.
23990
23991 2015-06-08  Tom de Vries  <tom@codesourcery.com>
23992
23993         PR rtl-optimization/66444
23994         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
23995         call_used_regs.
23996
23997 2015-06-08  Richard Biener  <rguenther@suse.de>
23998
23999         PR tree-optimization/66422
24000         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
24001         block after inserted gcc_unreachable.
24002
24003 2015-06-08  Nick Clifton  <nickc@redhat.com>
24004
24005         * config/rx/rx.c (rx_function_value): Do not promote vector types.
24006         (rx_promote_function_mode): Likewise.
24007         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
24008
24009 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
24010
24011         * genattrtab.c (insn_alternatives): Change type from int *
24012         to uint64_t *.
24013         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
24014         (get_attr_value): Change type of num_alt to uint64_t.
24015         (compute_alternative_mask): Change return type from
24016         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
24017         (make_alternative_compare, mk_attr_alt): Change argument type
24018         from int to uint64_t.
24019         (simplify_test_exp): Change type of i from int to uint64_t.
24020         Shift ((uint64_t) 1) instead of 1 up.
24021         (main): Adjust oballocvec first argument from int to uint64_t.
24022         Shift ((uint64_t) 1) instead of 1 up.
24023
24024 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
24025
24026         PR other/65366
24027         * gdbhooks.py: Import sys.
24028         (intptr): New function.  Replace int(...) by intptr(...).
24029
24030 2015-06-08  Richard Biener  <rguenther@suse.de>
24031
24032         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
24033         adjustment for gaps at the end of a SLP load group properly.
24034         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
24035         all permutations we can generate.
24036         (vect_transform_slp_perm_load): Use the correct group-size.
24037
24038 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
24039
24040         * genmatch.c (expr::gen_transform): For conditions, guess the type
24041         from the second operand.
24042
24043 2015-06-08  Tom de Vries  <tom@codesourcery.com>
24044
24045         PR tree-optimization/66442
24046         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
24047         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
24048         if the loop latch is not a singleton.  Use
24049         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
24050
24051 2015-06-08  Marek Polacek  <polacek@redhat.com>
24052
24053         PR sanitizer/66452
24054         * toplev.c (check_global_declaration): Don't warn about artificial
24055         decls.
24056
24057 2015-06-08  Tom de Vries  <tom@codesourcery.com>
24058
24059         PR tree-optimization/66436
24060         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
24061         dump file.
24062         * gimplify.c: Add tree-dump.h include.
24063         (gimplify_function_tree): Dump function to gimple dump file.
24064         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
24065         dump file.
24066
24067 2015-06-08  Tom de Vries  <tom@codesourcery.com>
24068
24069         PR tree-optimization/66435
24070         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
24071         function.
24072
24073 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
24074
24075         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
24076         of ptr_type_node to not be ptr_to_node.
24077         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
24078         TREE_TYPE of pointers.
24079         * gimple-expr.c (useless_type_conversion): Reorder the check for
24080         function pointers and TYPE_CANONICAL.
24081
24082 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
24083
24084         PR bootstrap/66319
24085         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
24086         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
24087         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
24088         later.
24089         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
24090         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
24091         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
24092         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
24093         and non iso if unix2003.
24094
24095 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
24096
24097         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
24098
24099 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
24100
24101         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
24102         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
24103         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
24104         except.c, final.c, function.c, gcse-common.c, genemit.c,
24105         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
24106         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
24107         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
24108         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
24109         more derived ones.
24110
24111 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
24112
24113         * combine.c (combine_split_insns): Remove cast.
24114         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
24115         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
24116         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
24117         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
24118         * genemit.c (gen_split): Change return type of generated functions to
24119         rtx_insn.
24120         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
24121         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
24122         gen_peephole2_* functions.
24123         (print_subroutine, main): Likewise.
24124         * recog.c (peephole2_optimize): Remove cast.
24125         (peep2_next_insn): Promote return type to rtx_insn.
24126         * recog.h (peep2_next_insn): Fix prototype.
24127         * rtl.h (try_split, split_insns): Likewise.
24128
24129 2015-06-06  DJ Delorie  <dj@redhat.com>
24130
24131         * config/msp430/msp430.c (msp430_asm_integer): Support addition
24132         and subtraction too.
24133
24134 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
24135
24136         PR target/66410
24137         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
24138         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
24139         instead of Snd.  Disparage Sid/z alternative with '^'.
24140
24141 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
24142
24143         * dwarf2out.c: Remove deferred_locations*.
24144         (dwarf2_debug_hooks): Add early_finish hook.
24145         Remove global_decl hook.
24146         Add early_global_decl and late_global_decl hook.
24147         New global early_dwarf.
24148         New structure set_early_dwarf.
24149         (output_die): Indicate whether a DIE was generated early
24150         when generating assembly with -dA.
24151         (struct limbo_die_struct): Document created_for field.
24152         Remove file_table_last_lookup.
24153         (remove_AT): Return TRUE if successful.
24154         (remove_child_TAG): Clear die_parent.
24155         (reparent_child): New function abstracted from...
24156         (splice_child_die): ...here.
24157         (new_die): ICE if a DIE ends up in limbo too late.
24158         (check_die): New.
24159         (defer_location): Remove.
24160         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
24161         (fill_variable_array_bounds): New.
24162         (decl_start_label): Call fill_variable_array_bounds.
24163         (gen_formal_parameter_die): Rewrite to reuse previously generated
24164         DIEs.
24165         (gen_subprogram_die): Same.
24166         (gen_variable_die): Same.
24167         (gen_const_die): Same.
24168         (gen_label_die): Same.
24169         (gen_lexical_block_die): Same.
24170         (decl_will_get_specification_p): New.
24171         (local_function_static): New.
24172         (gen_struct_or_union_type_die): Fill in variable-length fields.
24173         (gen_typedef_die): Fill in variable-length typedefs.
24174         (gen_tagged_type_die): Gracefully return on error_mark_node.
24175         Handle re-entrancy.
24176         (gen_type_die_with_usage): Handle variable-length types.
24177         Remove duplicate code for ARRAY_TYPE case.
24178         (process_scope_var): Only process imported modules during early
24179         dwarf.
24180         (dwarf2out_early_global_decl): New.
24181         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
24182         (dwarf2out_type_decl): Set early_dwarf while calling
24183         dwarf2out_decl.
24184         (dwarf2out_decl): Verify that we did not recreate a previously
24185         generated DIE.
24186         Do not return on DECL_EXTERNALs in VAR_DECLs.
24187         Abstract some code to local_function_static.
24188         (lookup_filename): Remove use of file_table_last_lookup.
24189         Gracefully exit on missing file_name.
24190         (dwarf2out_finish): Verify limbo list.
24191         Remove deferred_locations_list use.
24192         Move deferred_asm_name and limbo flushing to...
24193         (dwarf2out_early_finish): ...here.  New.
24194         (dwarf2out_c_finalize): Remove set of deferred_location_list,
24195         deferred_asm_name, and file_table_last_lookup.
24196         * cgraph.h (referred_to_p): Add default argument.
24197         * cgraphunit.c (referred_to_p): Add and handle include_self
24198         argument.
24199         (analyze_functions): Add first_time argument.
24200         Call check_global_declaration for all symbols.
24201         Call late_global_decl for nodes for moribund nodes.
24202         (finalize_compilation_unit): Add new argument to
24203         analyze_functions.
24204         Call early_global_decl for functions.
24205         Call early_finish debug hook.
24206         * dbxout.c (dbxout_early_global_decl): New.
24207         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
24208         (dbx_debug_hooks): Add new hooks.
24209         (xcoff_debug_hooks): Same.
24210         * debug.c (do_nothing_debug_hooks): Add early_finish field.
24211         Add early and late debug hooks.
24212         Remove global_decl hook.
24213         * debug.h (struct gcc_debug_hooks): Add early_finish,
24214         early_global_decl, and late_global_decl fields.
24215         Remove global_decl field.
24216         Document gcc_debug_hooks.
24217         * gengtype.c (output_typename): Remove.
24218         * godump.c (go_early_global_decl): New.
24219         (go_late_global_decl): New.
24220         (go_global_decl): Remove.
24221         (dump_go_spec_init): Remove global_decl.  Add
24222         {early,late}_global_decl.
24223         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
24224         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
24225         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
24226         (write_global_declarations): Remove.
24227         (global_decl_processing): New.
24228         * langhooks.h (struct lang_hooks_for_decls): Remove
24229         final_write_globals field.
24230         Add post_compilation_parsing_cleanups field.
24231         * passes.c (rest_of_decl_compilation): Call early_global_decl.
24232         * sdbout.c: Add early and late_global_decl hooks.  Remove
24233         sdbout_global_decl hook.
24234         Add early_finish field for sdb_debug_hooks.
24235         (sdbout_global_decl): Remove.
24236         (sdbout_early_global_decl): New.
24237         (sdbout_late_global_decl): New.
24238         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
24239         * toplev.c (check_global_declaration): Rename from
24240         check_global_declaration_1.
24241         Adapt to use symtab infrastructure.
24242         (check_global_declarations): Remove.
24243         (emit_debug_global_declarations): Remove.
24244         (compile_file): Remove call to final_write_globals langhook.
24245         Run the actual compilation process.
24246         Perform any post compilation parser cleanups.
24247         Generate late debug info.
24248         * toplev.h (check_global_declaration): New.
24249         (check_global_declaration_1): Remove.
24250         (check_global_declarations): Remove.
24251         (write_global_declarations): Remove.
24252         (emit_debug_global_declarations): Remove.
24253         (global_decl_processing): New.
24254         * tree-core.h (struct tree_block): Add DIE field.
24255         * tree.h (BLOCK_DIE): New.
24256         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
24257         throughout.
24258         (vmsdbgout_early_global_decl): New.
24259         (vmsdbgout_late_global_decl): New.
24260         Add early_finish debug hook field to vmsdbg_debug_hooks.
24261         Remove vmsdbgout_decl to vmsdbgout_function_decl.
24262         Add early and late_global_decl debug hooks.
24263
24264 2015-06-05  Julian Brown  <julian@codesourcery.com>
24265             Sandra Loosemore  <sandra@codesourcery.com>
24266
24267         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
24268         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
24269         to print-sysroot-suffix.sh script.
24270
24271 2015-06-05  Tom de Vries  <tom@codesourcery.com>
24272
24273         merge from gomp4 branch:
24274         2015-05-28  Tom de Vries  <tom@codesourcery.com>
24275
24276         PR tree-optimization/65443
24277         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
24278         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
24279         (try_transform_to_exit_first_loop_alt): New function.
24280         (transform_to_exit_first_loop): Use
24281         try_transform_to_exit_first_loop_alt.
24282
24283 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
24284
24285         * builtins.c (expand_builtin_atomic_compare_exchange): Call
24286         emit_cmp_and_jump_insns with the mode of target.
24287
24288 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
24289
24290         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
24291
24292 2015-06-04  DJ Delorie  <dj@redhat.com>
24293
24294         * config/msp430/msp430.md (movsi_s): New.  Special case for
24295         storing a 20-bit symbol into a 32-bit register.
24296         * config/msp430/msp430.c (msp430_subreg): Add support for it.
24297         * config/msp430/predicates.md (msp430_symbol_operand): New.
24298
24299 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
24300
24301         * c-family/c-common.c (noplt): New attribute.
24302         (handle_noplt_attribute): New handler.
24303         * calls.c (prepare_call_address): Check for noplt
24304         attribute.
24305         * config/i386/i386.c (ix86_expand_call): Check
24306         for noplt attribute.
24307         (ix86_nopic_noplt_attribute_p): New function.
24308         (ix86_output_call_insn): Output indirect call for non-pic
24309         no plt calls.
24310         * doc/extend.texi (noplt): Document new attribute.
24311         * doc/invoke.texi: Document new attribute.
24312
24313 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
24314
24315         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
24316         real.h, and fixed-value.h when included in host source files.
24317         * double-int.h: Remove redundant #includes listed above.
24318         * fixed-value.h: Likewise.
24319         * real.h: Likewise.
24320         * wide-int.h: Likewise.
24321         * inchash.h: Likewise.
24322         * rtl.h: Add some include files When included from a generator file.
24323         * target.h: Remove wide-int.h and insn-modes.h from the include list.
24324         * internal-fn.h: Don't include coretypes.h.
24325         * alias.c: Adjust includes for restructured coretypes.h.
24326         * asan.c: Likewise.
24327         * attribs.c: Likewise.
24328         * auto-inc-dec.c: Likewise.
24329         * auto-profile.c: Likewise.
24330         * bb-reorder.c: Likewise.
24331         * bt-load.c: Likewise.
24332         * builtins.c: Likewise.
24333         * caller-save.c: Likewise.
24334         * calls.c: Likewise.
24335         * ccmp.c: Likewise.
24336         * cfg.c: Likewise.
24337         * cfganal.c: Likewise.
24338         * cfgbuild.c: Likewise.
24339         * cfgcleanup.c: Likewise.
24340         * cfgexpand.c: Likewise.
24341         * cfghooks.c: Likewise.
24342         * cfgloop.c: Likewise.
24343         * cfgloop.h: Likewise.
24344         * cfgloopanal.c: Likewise.
24345         * cfgloopmanip.c: Likewise.
24346         * cfgrtl.c: Likewise.
24347         * cgraph.c: Likewise.
24348         * cgraphbuild.c: Likewise.
24349         * cgraphclones.c: Likewise.
24350         * cgraphunit.c: Likewise.
24351         * cilk-common.c: Likewise.
24352         * combine-stack-adj.c: Likewise.
24353         * combine.c: Likewise.
24354         * compare-elim.c: Likewise.
24355         * convert.c: Likewise.
24356         * coverage.c: Likewise.
24357         * cppbuiltin.c: Likewise.
24358         * cprop.c: Likewise.
24359         * cse.c: Likewise.
24360         * cselib.c: Likewise.
24361         * data-streamer-in.c: Likewise.
24362         * data-streamer-out.c: Likewise.
24363         * data-streamer.c: Likewise.
24364         * dbxout.c: Likewise.
24365         * dce.c: Likewise.
24366         * ddg.c: Likewise.
24367         * debug.c: Likewise.
24368         * df-core.c: Likewise.
24369         * df-problems.c: Likewise.
24370         * df-scan.c: Likewise.
24371         * df.h: Likewise.
24372         * dfp.c: Likewise.
24373         * dojump.c: Likewise.
24374         * dominance.c: Likewise.
24375         * domwalk.c: Likewise.
24376         * double-int.c: Likewise.
24377         * dse.c: Likewise.
24378         * dumpfile.c: Likewise.
24379         * dwarf2asm.c: Likewise.
24380         * dwarf2cfi.c: Likewise.
24381         * dwarf2out.c: Likewise.
24382         * dwarf2out.h: Likewise.
24383         * emit-rtl.c: Likewise.
24384         * et-forest.c: Likewise.
24385         * except.c: Likewise.
24386         * explow.c: Likewise.
24387         * expmed.c: Likewise.
24388         * expr.c: Likewise.
24389         * final.c: Likewise.
24390         * fixed-value.c: Likewise.
24391         * fold-const.c: Likewise.
24392         * function.c: Likewise.
24393         * fwprop.c: Likewise.
24394         * gcc-plugin.h: Likewise.
24395         * gcse.c: Likewise.
24396         * generic-match-head.c: Likewise.
24397         * ggc-page.c: Likewise.
24398         * gimple-builder.c: Likewise.
24399         * gimple-expr.c: Likewise.
24400         * gimple-fold.c: Likewise.
24401         * gimple-iterator.c: Likewise.
24402         * gimple-low.c: Likewise.
24403         * gimple-match-head.c: Likewise.
24404         * gimple-pretty-print.c: Likewise.
24405         * gimple-ssa-isolate-paths.c: Likewise.
24406         * gimple-ssa-strength-reduction.c: Likewise.
24407         * gimple-streamer-in.c: Likewise.
24408         * gimple-streamer-out.c: Likewise.
24409         * gimple-streamer.h: Likewise.
24410         * gimple-walk.c: Likewise.
24411         * gimple.c: Likewise.
24412         * gimplify-me.c: Likewise.
24413         * gimplify.c: Likewise.
24414         * godump.c: Likewise.
24415         * graph.c: Likewise.
24416         * graphite-blocking.c: Likewise.
24417         * graphite-dependences.c: Likewise.
24418         * graphite-interchange.c: Likewise.
24419         * graphite-isl-ast-to-gimple.c: Likewise.
24420         * graphite-optimize-isl.c: Likewise.
24421         * graphite-poly.c: Likewise.
24422         * graphite-scop-detection.c: Likewise.
24423         * graphite-sese-to-poly.c: Likewise.
24424         * graphite.c: Likewise.
24425         * haifa-sched.c: Likewise.
24426         * hooks.h: Likewise.
24427         * hw-doloop.c: Likewise.
24428         * ifcvt.c: Likewise.
24429         * incpath.c: Likewise.
24430         * init-regs.c: Likewise.
24431         * internal-fn.c: Likewise.
24432         * ipa-chkp.c: Likewise.
24433         * ipa-comdats.c: Likewise.
24434         * ipa-cp.c: Likewise.
24435         * ipa-devirt.c: Likewise.
24436         * ipa-icf-gimple.c: Likewise.
24437         * ipa-icf.c: Likewise.
24438         * ipa-inline-analysis.c: Likewise.
24439         * ipa-inline-transform.c: Likewise.
24440         * ipa-inline.c: Likewise.
24441         * ipa-polymorphic-call.c: Likewise.
24442         * ipa-profile.c: Likewise.
24443         * ipa-prop.c: Likewise.
24444         * ipa-pure-const.c: Likewise.
24445         * ipa-ref.c: Likewise.
24446         * ipa-reference.c: Likewise.
24447         * ipa-split.c: Likewise.
24448         * ipa-utils.c: Likewise.
24449         * ipa-visibility.c: Likewise.
24450         * ipa.c: Likewise.
24451         * ira-build.c: Likewise.
24452         * ira-color.c: Likewise.
24453         * ira-conflicts.c: Likewise.
24454         * ira-costs.c: Likewise.
24455         * ira-emit.c: Likewise.
24456         * ira-lives.c: Likewise.
24457         * ira.c: Likewise.
24458         * jump.c: Likewise.
24459         * langhooks.c: Likewise.
24460         * lcm.c: Likewise.
24461         * loop-doloop.c: Likewise.
24462         * loop-init.c: Likewise.
24463         * loop-invariant.c: Likewise.
24464         * loop-iv.c: Likewise.
24465         * loop-unroll.c: Likewise.
24466         * lower-subreg.c: Likewise.
24467         * lra-assigns.c: Likewise.
24468         * lra-coalesce.c: Likewise.
24469         * lra-constraints.c: Likewise.
24470         * lra-eliminations.c: Likewise.
24471         * lra-lives.c: Likewise.
24472         * lra-remat.c: Likewise.
24473         * lra-spills.c: Likewise.
24474         * lra.c: Likewise.
24475         * lto-cgraph.c: Likewise.
24476         * lto-compress.c: Likewise.
24477         * lto-opts.c: Likewise.
24478         * lto-section-in.c: Likewise.
24479         * lto-section-out.c: Likewise.
24480         * lto-streamer-in.c: Likewise.
24481         * lto-streamer-out.c: Likewise.
24482         * lto-streamer.c: Likewise.
24483         * mcf.c: Likewise.
24484         * mode-switching.c: Likewise.
24485         * modulo-sched.c: Likewise.
24486         * omega.c: Likewise.
24487         * omp-low.c: Likewise.
24488         * optabs.c: Likewise.
24489         * opts-global.c: Likewise.
24490         * passes.c: Likewise.
24491         * plugin.c: Likewise.
24492         * postreload-gcse.c: Likewise.
24493         * postreload.c: Likewise.
24494         * predict.c: Likewise.
24495         * print-rtl.c: Likewise.
24496         * print-tree.c: Likewise.
24497         * profile.c: Likewise.
24498         * real.c: Likewise.
24499         * realmpfr.c: Likewise.
24500         * realmpfr.h: Likewise.
24501         * recog.c: Likewise.
24502         * ree.c: Likewise.
24503         * reg-stack.c: Likewise.
24504         * regcprop.c: Likewise.
24505         * reginfo.c: Likewise.
24506         * regrename.c: Likewise.
24507         * regs.h: Likewise.
24508         * regstat.c: Likewise.
24509         * reload.c: Likewise.
24510         * reload1.c: Likewise.
24511         * reorg.c: Likewise.
24512         * resource.c: Likewise.
24513         * rtl-chkp.c: Likewise.
24514         * rtlanal.c: Likewise.
24515         * rtlhooks.c: Likewise.
24516         * sanopt.c: Likewise.
24517         * sched-deps.c: Likewise.
24518         * sched-ebb.c: Likewise.
24519         * sched-rgn.c: Likewise.
24520         * sched-vis.c: Likewise.
24521         * sdbout.c: Likewise.
24522         * sel-sched-dump.c: Likewise.
24523         * sel-sched-ir.c: Likewise.
24524         * sel-sched.c: Likewise.
24525         * sese.c: Likewise.
24526         * shrink-wrap.c: Likewise.
24527         * shrink-wrap.h: Likewise.
24528         * simplify-rtx.c: Likewise.
24529         * stack-ptr-mod.c: Likewise.
24530         * statistics.c: Likewise.
24531         * stmt.c: Likewise.
24532         * stor-layout.c: Likewise.
24533         * store-motion.c: Likewise.
24534         * stringpool.c: Likewise.
24535         * symtab.c: Likewise.
24536         * target-globals.c: Likewise.
24537         * targhooks.c: Likewise.
24538         * toplev.c: Likewise.
24539         * tracer.c: Likewise.
24540         * trans-mem.c: Likewise.
24541         * tree-affine.c: Likewise.
24542         * tree-affine.h: Likewise.
24543         * tree-browser.c: Likewise.
24544         * tree-call-cdce.c: Likewise.
24545         * tree-cfg.c: Likewise.
24546         * tree-cfgcleanup.c: Likewise.
24547         * tree-chkp-opt.c: Likewise.
24548         * tree-chkp.c: Likewise.
24549         * tree-chrec.c: Likewise.
24550         * tree-complex.c: Likewise.
24551         * tree-data-ref.c: Likewise.
24552         * tree-dfa.c: Likewise.
24553         * tree-diagnostic.c: Likewise.
24554         * tree-dump.c: Likewise.
24555         * tree-eh.c: Likewise.
24556         * tree-emutls.c: Likewise.
24557         * tree-if-conv.c: Likewise.
24558         * tree-inline.c: Likewise.
24559         * tree-into-ssa.c: Likewise.
24560         * tree-iterator.c: Likewise.
24561         * tree-loop-distribution.c: Likewise.
24562         * tree-nested.c: Likewise.
24563         * tree-nrv.c: Likewise.
24564         * tree-object-size.c: Likewise.
24565         * tree-outof-ssa.c: Likewise.
24566         * tree-parloops.c: Likewise.
24567         * tree-phinodes.c: Likewise.
24568         * tree-predcom.c: Likewise.
24569         * tree-pretty-print.c: Likewise.
24570         * tree-pretty-print.h: Likewise.
24571         * tree-profile.c: Likewise.
24572         * tree-scalar-evolution.c: Likewise.
24573         * tree-sra.c: Likewise.
24574         * tree-ssa-address.c: Likewise.
24575         * tree-ssa-alias.c: Likewise.
24576         * tree-ssa-ccp.c: Likewise.
24577         * tree-ssa-coalesce.c: Likewise.
24578         * tree-ssa-copy.c: Likewise.
24579         * tree-ssa-copyrename.c: Likewise.
24580         * tree-ssa-dce.c: Likewise.
24581         * tree-ssa-dom.c: Likewise.
24582         * tree-ssa-dse.c: Likewise.
24583         * tree-ssa-forwprop.c: Likewise.
24584         * tree-ssa-ifcombine.c: Likewise.
24585         * tree-ssa-live.c: Likewise.
24586         * tree-ssa-loop-ch.c: Likewise.
24587         * tree-ssa-loop-im.c: Likewise.
24588         * tree-ssa-loop-ivcanon.c: Likewise.
24589         * tree-ssa-loop-ivopts.c: Likewise.
24590         * tree-ssa-loop-manip.c: Likewise.
24591         * tree-ssa-loop-niter.c: Likewise.
24592         * tree-ssa-loop-prefetch.c: Likewise.
24593         * tree-ssa-loop-unswitch.c: Likewise.
24594         * tree-ssa-loop.c: Likewise.
24595         * tree-ssa-loop.h: Likewise.
24596         * tree-ssa-math-opts.c: Likewise.
24597         * tree-ssa-operands.c: Likewise.
24598         * tree-ssa-phiopt.c: Likewise.
24599         * tree-ssa-phiprop.c: Likewise.
24600         * tree-ssa-pre.c: Likewise.
24601         * tree-ssa-propagate.c: Likewise.
24602         * tree-ssa-reassoc.c: Likewise.
24603         * tree-ssa-sccvn.c: Likewise.
24604         * tree-ssa-scopedtables.c: Likewise.
24605         * tree-ssa-sink.c: Likewise.
24606         * tree-ssa-strlen.c: Likewise.
24607         * tree-ssa-structalias.c: Likewise.
24608         * tree-ssa-tail-merge.c: Likewise.
24609         * tree-ssa-ter.c: Likewise.
24610         * tree-ssa-threadedge.c: Likewise.
24611         * tree-ssa-threadupdate.c: Likewise.
24612         * tree-ssa-uncprop.c: Likewise.
24613         * tree-ssa-uninit.c: Likewise.
24614         * tree-ssa.c: Likewise.
24615         * tree-ssanames.c: Likewise.
24616         * tree-stdarg.c: Likewise.
24617         * tree-streamer-in.c: Likewise.
24618         * tree-streamer-out.c: Likewise.
24619         * tree-streamer.c: Likewise.
24620         * tree-switch-conversion.c: Likewise.
24621         * tree-tailcall.c: Likewise.
24622         * tree-vect-data-refs.c: Likewise.
24623         * tree-vect-generic.c: Likewise.
24624         * tree-vect-loop-manip.c: Likewise.
24625         * tree-vect-loop.c: Likewise.
24626         * tree-vect-patterns.c: Likewise.
24627         * tree-vect-slp.c: Likewise.
24628         * tree-vect-stmts.c: Likewise.
24629         * tree-vectorizer.c: Likewise.
24630         * tree-vrp.c: Likewise.
24631         * tree.c: Likewise.
24632         * tsan.c: Likewise.
24633         * ubsan.c: Likewise.
24634         * valtrack.c: Likewise.
24635         * value-prof.c: Likewise.
24636         * var-tracking.c: Likewise.
24637         * varasm.c: Likewise.
24638         * varpool.c: Likewise.
24639         * vmsdbgout.c: Likewise.
24640         * vtable-verify.c: Likewise.
24641         * web.c: Likewise.
24642         * wide-int-print.cc: Likewise.
24643         * wide-int-print.h: Likewise.
24644         * wide-int.cc: Likewise.
24645         * xcoffout.c: Likewise.
24646         * config/aarch64/aarch64-builtins.c: Likewise.
24647         * config/aarch64/aarch64.c: Likewise.
24648         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
24649         * config/alpha/alpha.c: Likewise.
24650         * config/arc/arc.c: Likewise.
24651         * config/arm/aarch-common.c: Likewise.
24652         * config/arm/arm-builtins.c: Likewise.
24653         * config/arm/arm-c.c: Likewise.
24654         * config/arm/arm.c: Likewise.
24655         * config/avr/avr-c.c: Likewise.
24656         * config/avr/avr-log.c: Likewise.
24657         * config/avr/avr.c: Likewise.
24658         * config/bfin/bfin.c: Likewise.
24659         * config/c6x/c6x.c: Likewise.
24660         * config/cr16/cr16.c: Likewise.
24661         * config/cris/cris.c: Likewise.
24662         * config/darwin-c.c: Likewise.
24663         * config/darwin.c: Likewise.
24664         * config/default-c.c: Likewise.
24665         * config/epiphany/epiphany.c: Likewise.
24666         * config/epiphany/mode-switch-use.c: Likewise.
24667         * config/epiphany/resolve-sw-modes.c: Likewise.
24668         * config/fr30/fr30.c: Likewise.
24669         * config/frv/frv.c: Likewise.
24670         * config/ft32/ft32.c: Likewise.
24671         * config/glibc-c.c: Likewise.
24672         * config/h8300/h8300.c: Likewise.
24673         * config/i386/i386-c.c: Likewise.
24674         * config/i386/i386.c: Likewise.
24675         * config/i386/msformat-c.c: Likewise.
24676         * config/i386/winnt-cxx.c: Likewise.
24677         * config/i386/winnt-stubs.c: Likewise.
24678         * config/i386/winnt.c: Likewise.
24679         * config/ia64/ia64-c.c: Likewise.
24680         * config/ia64/ia64.c: Likewise.
24681         * config/iq2000/iq2000.c: Likewise.
24682         * config/lm32/lm32.c: Likewise.
24683         * config/m32c/m32c-pragma.c: Likewise.
24684         * config/m32c/m32c.c: Likewise.
24685         * config/m32r/m32r.c: Likewise.
24686         * config/m68k/m68k.c: Likewise.
24687         * config/mcore/mcore.c: Likewise.
24688         * config/mep/mep-pragma.c: Likewise.
24689         * config/mep/mep.c: Likewise.
24690         * config/microblaze/microblaze-c.c: Likewise.
24691         * config/microblaze/microblaze.c: Likewise.
24692         * config/mips/mips.c: Likewise.
24693         * config/mmix/mmix.c: Likewise.
24694         * config/mn10300/mn10300.c: Likewise.
24695         * config/moxie/moxie.c: Likewise.
24696         * config/msp430/msp430-c.c: Likewise.
24697         * config/msp430/msp430.c: Likewise.
24698         * config/nds32/nds32-cost.c: Likewise.
24699         * config/nds32/nds32-fp-as-gp.c: Likewise.
24700         * config/nds32/nds32-intrinsic.c: Likewise.
24701         * config/nds32/nds32-isr.c: Likewise.
24702         * config/nds32/nds32-md-auxiliary.c: Likewise.
24703         * config/nds32/nds32-memory-manipulation.c: Likewise.
24704         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
24705         * config/nds32/nds32-predicates.c: Likewise.
24706         * config/nds32/nds32.c: Likewise.
24707         * config/nios2/nios2.c: Likewise.
24708         * config/nvptx/nvptx.c: Likewise.
24709         * config/pa/pa.c: Likewise.
24710         * config/pdp11/pdp11.c: Likewise.
24711         * config/rl78/rl78-c.c: Likewise.
24712         * config/rl78/rl78.c: Likewise.
24713         * config/rs6000/rs6000-c.c: Likewise.
24714         * config/rs6000/rs6000.c: Likewise.
24715         * config/rx/rx.c: Likewise.
24716         * config/s390/s390-c.c: Likewise.
24717         * config/s390/s390.c: Likewise.
24718         * config/sh/sh-c.c: Likewise.
24719         * config/sh/sh-mem.cc: Likewise.
24720         * config/sh/sh.c: Likewise.
24721         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
24722         * config/sh/sh_treg_combine.cc: Likewise.
24723         * config/sol2-c.c: Likewise.
24724         * config/sol2-cxx.c: Likewise.
24725         * config/sol2-stubs.c: Likewise.
24726         * config/sol2.c: Likewise.
24727         * config/sparc/sparc-c.c: Likewise.
24728         * config/sparc/sparc.c: Likewise.
24729         * config/spu/spu-c.c: Likewise.
24730         * config/spu/spu.c: Likewise.
24731         * config/stormy16/stormy16.c: Likewise.
24732         * config/tilegx/mul-tables.c: Likewise.
24733         * config/tilegx/tilegx-c.c: Likewise.
24734         * config/tilegx/tilegx.c: Likewise.
24735         * config/tilepro/mul-tables.c: Likewise.
24736         * config/tilepro/tilepro-c.c: Likewise.
24737         * config/tilepro/tilepro.c: Likewise.
24738         * config/v850/v850-c.c: Likewise.
24739         * config/v850/v850.c: Likewise.
24740         * config/vax/vax.c: Likewise.
24741         * config/visium/visium.c: Likewise.
24742         * config/vms/vms-c.c: Likewise.
24743         * config/vms/vms.c: Likewise.
24744         * config/vxworks.c: Likewise.
24745         * config/winnt-c.c: Likewise.
24746         * config/xtensa/xtensa.c: Likewise.
24747         * common/config/bfin/bfin-common.c: Likewise.
24748
24749 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
24750
24751         * tree.h (tree_code_for_canonical_type_merging): New function.
24752         * tree.c (gimple_canonical_types_compatible_p): Use
24753         tree_code_for_canonical_type_merging..
24754
24755 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24756
24757         PR c++/66192
24758         PR target/66200
24759         * doc/tm.texi: Regenerate.
24760         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
24761         * target.def (TARGET_RELAXED_ORDERING): Likewise.
24762         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
24763         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
24764         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
24765         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
24766         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
24767         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
24768         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
24769
24770 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24771
24772         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
24773         register fma steering pass.
24774         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
24775         AARCH64_TUNE_FMA_STEERING.
24776
24777 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
24778
24779         * tree.c (verify_type_variant): Verify that type and variant is
24780         compatible.
24781         (gimple_canonical_types_compatible_p): Look for main variants.
24782
24783 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
24784
24785         * config.gcc (powerpc*-*-*): Add support for a new configure
24786         option --with-advance-toolchain=<xxx> which overrides using the
24787         default header files, libraries and dynamic linker.
24788
24789         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
24790         specs to support the configure --with-advance-toolchain=<xxx>
24791         option.
24792         (INCLUDE_EXTRA_SPEC): Likewise.
24793         (LINK_OS_EXTRA_SPEC32): Likewise.
24794         (LINK_OK_EXTRA_SPEC64): Likewise.
24795         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
24796         (DYNAMIC_LINKER_PREFIX): Likewise.
24797         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
24798         toolchain support.
24799         (GLIBC_DYNAMIC_LINKER32): Likewise.
24800         (GLIBC_DYNAMIC_LINKER64): Likewise.
24801         (LINK_OS_LINUX_SPEC32): Likewise.
24802         (LINK_OS_LINUX_SPEC64): Likewise.
24803
24804         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
24805         configuration option.
24806
24807 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
24808
24809         PR target/66275
24810         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
24811         to determine current function ABI.
24812         (ix86_function_value_regno_p): Ditto.
24813
24814 2015-06-03  Martin Liska  <mliska@suse.cz>
24815
24816         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
24817         * bitmap.h (struct bitmap_usage): Likewise.
24818         * ggc-common.c (struct ggc_usage): Likewise.
24819         * mem-stats.h (struct mem_location): Likewise.
24820         (struct mem_usage): Likewise.
24821         * vec.c (struct vec_usage): Likewise.
24822
24823 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
24824
24825         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
24826         -Bsymbolic.
24827
24828 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
24829
24830         * doc/plugins.texi (enum plugin_event): New event.
24831         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
24832         and PLUGIN_FINISH_FUNCTION.
24833         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
24834         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
24835
24836 2015-06-03  Richard Biener  <rguenther@suse.de>
24837
24838         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
24839         compute GROUP_GAP for the first element.
24840         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
24841         on in-group gaps.
24842
24843 2015-06-03  Nick Clifton  <nickc@redhat.com>
24844
24845         * config/rl78/rl78-real.md: Add peepholes to avoid a register
24846         copy when calling a function.
24847         * config/rl78/rl78.c (need_to_save): Do not push the frame
24848         pointer in an interrupt handler prologue if it is never used.
24849
24850 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24851
24852         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
24853
24854 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
24855
24856         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
24857         reference when cloning alias node.
24858
24859 2015-06-03  Martin Liska  <mliska@suse.cz>
24860
24861         * alloc-pool.h (struct pool_usage): Correct space padding.
24862         * ggc-page.c (ggc_print_statistics): Align columns in a report.
24863         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
24864         * tree.c (dump_tree_statistics): Align columns in a report.
24865
24866 2015-06-03  Martin Liska  <mliska@suse.cz>
24867
24868         * alloc-pool.c (allocate_pool_descriptor): Remove.
24869         (struct pool_output_info): Likewise.
24870         (print_alloc_pool_statistics): Likewise.
24871         (dump_alloc_pool_statistics): Likewise.
24872         * alloc-pool.h (struct pool_usage): New struct.
24873         (pool_allocator::initialize): Change usage of memory statistics
24874         to a new interface.
24875         (pool_allocator::release): Likewise.
24876         (pool_allocator::allocate): Likewise.
24877         (pool_allocator::remove): Likewise.
24878         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
24879         for a pool allocator.
24880         * mem-stats.h (struct mem_location): Add new ctor.
24881         (struct mem_usage): Add counter for number of
24882         instances.
24883         (mem_alloc_description::register_descriptor): New overload of
24884         * mem-stats.h (mem_location::to_string): New function.
24885         * bitmap.h (struct bitmap_usage): Use this new function.
24886         * ggc-common.c (struct ggc_usage): Likewise.
24887         the function.
24888
24889 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
24890
24891         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
24892         of GCC_INSN_FLAGS_H block.
24893
24894 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
24895
24896         * explow.c (plus_constant): Update check after force_const_mem call
24897         to see if the value returned is not a NULL_RTX.
24898
24899 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
24900
24901         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
24902         remove instumentation thunks calling reachable functions.
24903         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
24904         * lto/lto-partition.c (privatize_symbol_name_1): New.
24905         (privatize_symbol_name): Privatize both decl and orig_decl
24906         names for instrumented functions.
24907         * cgraph.c (cgraph_node::verify_node): Add transparent
24908         alias chain check for instrumented node.
24909
24910 2015-06-03  Marek Polacek  <polacek@redhat.com>
24911
24912         PR c/64223
24913         PR c/29358
24914         * tree.c (attribute_value_equal): Handle attribute format.
24915         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
24916
24917 2015-06-03  Richard Biener  <rguenther@suse.de>
24918
24919         PR tree-optimization/63916
24920         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
24921         Forward-propagate non-invariant addresses by splicing their
24922         reference ops if the result isn't going to be used by PRE.
24923         (vn_reference_lookup_3): Remove pointless assert.
24924
24925 2015-06-03  Richard Biener  <rguenther@suse.de>
24926
24927         PR tree-optimization/66375
24928         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
24929         add to the evolution before following SSA edges.
24930
24931 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
24932
24933         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
24934         (dump_use, dump_cand, find_induction_variables): Pass new argument
24935         to dump_iv.
24936         (record_use): Preserve the ssa name information in IV.
24937
24938 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
24939
24940         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
24941         NO_MODE_TEST.
24942         (add_mode_tests): Don't add mode tests if the predicate only
24943         accepts scalar constant integers.  Otherwise, allow the mode
24944         of "op" to be VOIDmode if the predicate does accept such integers.
24945
24946 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
24947
24948         PR target/66258
24949         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
24950         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
24951         (aarch64_secondary_reload): Likewise
24952         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
24953         to !TARGET_FLOAT.
24954         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
24955         Likewise.
24956
24957 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
24958             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24959
24960         PR target/65768
24961         * cprop.c (try_replace_reg): Check cost of constants before propagating.
24962
24963 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
24964
24965         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
24966         provide access to the IBM extended double floating point mode if
24967         long double is IEEE 128-bit floating point.
24968         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
24969         point if long double is the IBM extended double type.
24970
24971         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
24972         enable adding IEEE 128-bit floating point support.
24973         (-mfloat128-software): Likewise.
24974         (-mfloat128-sw): Likewise.
24975
24976         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
24977         128-bit floating point types to occupy any register if
24978         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
24979         -mfloat128-software is enabled.
24980         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
24981         support.
24982         (rs6000_option_override_internal): Add -mfloat128-* support.
24983         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
24984
24985         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
24986         and float128 type nodes.
24987         (ieee128_float_type_node): Likewise.
24988         (ibm128_float_type_node): Likewise.
24989
24990 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
24991
24992         PR target/66136
24993         * config/aarch64/geniterators.sh: Rewrite in awk.
24994
24995 2015-06-02  Martin Liska  <mliska@suse.cz>
24996
24997         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
24998         values to avoid -Wmaybe-uninitialized errors.
24999
25000 2015-06-02  Richard Biener  <rguenther@suse.de>
25001
25002         PR debug/65549
25003         * dwarf2out.c (lookup_context_die): New function.
25004         (resolve_addr): Avoid forcing a full DIE for the
25005         target of a DW_TAG_GNU_call_site during late compilation.
25006         Instead create a stub DIE without a type if we have a
25007         context DIE present.
25008
25009 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
25010
25011         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
25012
25013 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
25014
25015         PR tree-optimization/48052
25016         * cfgloop.h (struct control_iv): New.
25017         (struct loop): New field control_ivs.
25018         * tree-ssa-loop-niter.c : Include "stor-layout.h".
25019         (number_of_iterations_lt): Set no_overflow information.
25020         (number_of_iterations_exit): Init control iv in niter struct.
25021         (record_control_iv): New.
25022         (estimate_numbers_of_iterations_loop): Call record_control_iv.
25023         (loop_exits_before_overflow): New.  Interface factored out of
25024         scev_probably_wraps_p.
25025         (scev_probably_wraps_p): Factor loop niter related code into
25026         loop_exits_before_overflow.
25027         (free_numbers_of_iterations_estimates_loop): Free control ivs.
25028         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
25029
25030 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
25031
25032         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
25033         the target doesn't belong to the current function.
25034
25035 2015-06-02  Marek Polacek  <polacek@redhat.com>
25036
25037         PR middle-end/66345
25038         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
25039         get_maxval_strlen does not produce an INTEGER_CST.
25040
25041 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
25042
25043         * config/arc/constraints.md: Use lower-case names in match_code.
25044         * config/mmix/constraints.md: Likewise.
25045
25046 2015-06-02  Richard Biener  <rguenther@suse.de>
25047
25048         PR tree-optimization/65961
25049         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
25050         check and clarify dump message.
25051         (vect_build_slp_tree): If all children are built up from scalars
25052         build up the parent from scalars instead.
25053         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
25054
25055 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
25056
25057         PR other/65366
25058         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
25059         instead of print ... .
25060
25061 2015-06-02  Alan Modra  <amodra@gmail.com>
25062
25063         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
25064         2014-08-11 change.
25065
25066 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
25067
25068         PR tree-optimization/52563
25069         PR tree-optimization/62173
25070         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
25071         (alloc_iv, set_iv): New parameter.
25072         (determine_biv_step): Delete.
25073         (find_bivs): Inline original determine_biv_step.  Pass new
25074         argument to set_iv.
25075         (idx_find_step): Use no_overflow information for conversion.
25076         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
25077         resolve_mixers handle folded_casts.
25078         (instantiate_scev_name): Change bool parameter to bool pointer.
25079         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
25080         (instantiate_array_ref, instantiate_scev_not): Ditto.
25081         (instantiate_scev_3, instantiate_scev_2): Ditto.
25082         (instantiate_scev_1, instantiate_scev_r): Ditto.
25083         (instantiate_scev_convert, ): Change parameter.  Pass argument
25084         to chrec_convert_aggressive.
25085         (instantiate_scev): Change argument.
25086         (resolve_mixers): New parameter and set it.
25087         (scev_const_prop): New argument.
25088         * tree-scalar-evolution.h (resolve_mixers): New parameter.
25089         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
25090         of chrec_conert_1.
25091         (chrec_convert): New parameter.  Move definition below.
25092         (chrec_convert_aggressive): New parameter and set it.  Call
25093         convert_affine_scev.
25094         * tree-chrec.h (chrec_convert): New parameter.
25095         (chrec_convert_aggressive): Ditto.
25096
25097 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
25098
25099         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
25100         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
25101         the LHS of a no-return call if its type has variable size.
25102         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
25103         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
25104
25105 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
25106
25107         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
25108         * config.in: Regenerate.
25109
25110 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
25111
25112         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
25113         consecutive accesses within outer-loop with force_vectorize
25114         for references with zero step in inner-loop.
25115
25116 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
25117
25118         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
25119         rather than from gcc/build directory.
25120
25121 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
25122
25123         PR target/65697
25124         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
25125         for __sync memory models, emit initial loads and final barriers as
25126         appropriate.
25127
25128 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
25129
25130         PR target/65697
25131         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
25132         (aarch64_split_atomic_op): Check for __sync memory models, emit
25133         appropriate initial loads and final barriers.
25134
25135 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
25136
25137         * Makefile.in: Fix gcov dependencies that should
25138         not point to a build folder.
25139
25140 2015-06-01  Richard Biener  <rguenther@suse.de>
25141
25142         Revert
25143         2015-05-29  Richard Biener  <rguenther@suse.de>
25144
25145         PR tree-optimization/66314
25146         * tree-ssa-threadupdate.c (create_block_for_threading): Add
25147         parameter that says which loop the new block belongs to.
25148         (ssa_create_duplicates): Blocks duplicated for the threaded
25149         path belong to the loop of the thread destination.
25150
25151 2015-06-01  Martin Liska  <mliska@suse.cz>
25152
25153         * sched-deps.c: Include pool-alloc.h before
25154         cselib.h header file is included.
25155
25156 2015-06-01  Richard Biener  <rguenther@suse.de>
25157
25158         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
25159         functions.
25160
25161 2015-06-01  Martin Liska  <mliska@suse.cz>
25162
25163         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
25164         a function local variable.
25165
25166 2015-06-01  Martin Liska  <mliska@suse.cz>
25167
25168         * alloc-pool.c (create_alloc_pool): Remove.
25169         (empty_alloc_pool): Likewise.
25170         (free_alloc_pool): Likewise.
25171         (free_alloc_pool_if_empty): Likewise.
25172         (pool_alloc): Likewise.
25173         (pool_free): Likewise.
25174         * alloc-pool.h: Remove old declarations.
25175
25176 2015-06-01  Martin Liska  <mliska@suse.cz>
25177
25178         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
25179         (ira_create_object): Likewise.
25180         (ira_create_allocno): Likewise.
25181         (ira_create_live_range): Likewise.
25182         (copy_live_range): Likewise.
25183         (ira_finish_live_range): Likewise.
25184         (ira_free_allocno_costs): Likewise.
25185         (finish_allocno): Likewise.
25186         (finish_allocnos): Likewise.
25187         (initiate_prefs): Likewise.
25188         (ira_create_pref): Likewise.
25189         (finish_pref): Likewise.
25190         (finish_prefs): Likewise.
25191         (initiate_copies): Likewise.
25192         (ira_create_copy): Likewise.
25193         (finish_copy): Likewise.
25194         (finish_copies): Likewise.
25195         (finish_prefs): Likewise.
25196
25197 2015-06-01  Martin Liska  <mliska@suse.cz>
25198
25199         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
25200         (allocate_and_init_ipcp_value): Likewise.
25201         (ipcp_lattice::add_value): Likewise.
25202         (merge_agg_lats_step): Likewise.
25203         (ipcp_driver): Likewise.
25204         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
25205         (ipa_free_all_structures_after_iinln): Likewise.
25206         * ipa-prop.h: Likewise.
25207
25208 2015-06-01  Martin Liska  <mliska@suse.cz>
25209
25210         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
25211         pool allocator.
25212         (set_hint_predicate): Likewise.
25213         (inline_summary_alloc): Likewise.
25214         (reset_inline_edge_summary): Likewise.
25215         (reset_inline_summary): Likewise.
25216         (set_cond_stmt_execution_predicate): Likewise.
25217         (set_switch_stmt_execution_predicate): Likewise.
25218         (compute_bb_predicates): Likewise.
25219         (estimate_function_body_sizes): Likewise.
25220         (inline_free_summary): Likewise.
25221
25222 2015-06-01  Martin Liska  <mliska@suse.cz>
25223
25224         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
25225         (ipa_edge_duplication_hook): Likewise.
25226         (ipa_free_all_structures_after_ipa_cp): Likewise.
25227         (ipa_free_all_structures_after_iinln): Likewise.
25228
25229 2015-06-01  Martin Liska  <mliska@suse.cz>
25230
25231         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
25232         (ipa_profile_generate_summary): Likewise.
25233         (ipa_profile_read_summary): Likewise.
25234         (ipa_profile): Likewise.
25235
25236 2015-06-01  Martin Liska  <mliska@suse.cz>
25237
25238         * tree-ssa-structalias.c (new_var_info): Use new type-based
25239         pool allocator.
25240         (new_constraint): Likewise.
25241         (init_alias_vars): Likewise.
25242         (delete_points_to_sets): Likewise.
25243
25244 2015-06-01  Martin Liska  <mliska@suse.cz>
25245
25246         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
25247         (free_strinfo): Likewise.
25248         (pass_strlen::execute): Likewise.
25249
25250 2015-06-01  Martin Liska  <mliska@suse.cz>
25251
25252         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
25253         pool allocator.
25254         (vn_reference_insert_pieces): Likewise.
25255         (vn_phi_insert): Likewise.
25256         (visit_reference_op_call): Likewise.
25257         (copy_phi): Likewise.
25258         (copy_reference): Likewise.
25259         (process_scc): Likewise.
25260         (allocate_vn_table): Likewise.
25261         (free_vn_table): Likewise.
25262
25263 2015-06-01  Martin Liska  <mliska@suse.cz>
25264
25265         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
25266         pool allocator.
25267         (add_repeat_to_ops_vec): Likewise.
25268         (get_ops): Likewise.
25269         (maybe_optimize_range_tests): Likewise.
25270         (init_reassoc): Likewise.
25271         (fini_reassoc): Likewise.
25272
25273 2015-06-01  Martin Liska  <mliska@suse.cz>
25274
25275         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
25276         pool allocator.
25277         (bitmap_set_new): Likewise.
25278         (get_or_alloc_expr_for_constant): Likewise.
25279         (get_or_alloc_expr_for): Likewise.
25280         (phi_translate_1): Likewise.
25281         (compute_avail): Likewise.
25282         (init_pre): Likewise.
25283         (fini_pre): Likewise.
25284
25285 2015-06-01  Martin Liska  <mliska@suse.cz>
25286
25287         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
25288         (delete_dep_node): Likewise.
25289         (create_deps_list): Likewise.
25290         (free_deps_list): Likewise.
25291         (sched_deps_init): Likewise.
25292         (sched_deps_finish): Likewise.
25293
25294 2015-06-01  Martin Liska  <mliska@suse.cz>
25295
25296         * regcprop.c (free_debug_insn_changes): Use new type-based
25297         pool allocator.
25298         (replace_oldest_value_reg): Likewise.
25299         (pass_cprop_hardreg::execute): Likewise.
25300
25301 2015-06-01  Martin Liska  <mliska@suse.cz>
25302
25303         * ira-build.c (initiate_cost_vectors): Use new type-based
25304         pool allocator.
25305         (ira_allocate_cost_vector): Likewise.
25306         (ira_free_cost_vector): Likewise.
25307         (finish_cost_vectors): Likewise.
25308
25309 2015-06-01  Martin Liska  <mliska@suse.cz>
25310
25311         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
25312         pool allocator.
25313         (free_sched_pools): Likewise.
25314         * sel-sched-ir.h (_list_alloc): Likewise.
25315         (_list_remove): Likewise.
25316
25317 2015-06-01  Martin Liska  <mliska@suse.cz>
25318
25319         * stmt.c (add_case_node): Use new type-based pool allocator.
25320         (expand_case): Likewise.
25321         (expand_sjlj_dispatch_table): Likewise.
25322
25323 2015-06-01  Martin Liska  <mliska@suse.cz>
25324
25325         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
25326         (free_bb): Likewise.
25327         (pass_cse_reciprocals::execute): Likewise.
25328
25329 2015-06-01  Martin Liska  <mliska@suse.cz>
25330
25331         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
25332         (sra_deinitialize) Likewise.
25333         (create_access_1) Likewise.
25334         (build_accesses_from_assign) Likewise.
25335         (create_artificial_child_access) Likewise.
25336
25337 2015-06-01  Martin Liska  <mliska@suse.cz>
25338
25339         * dse.c (get_group_info):Use new type-based pool allocator.
25340         (dse_step0) Likewise.
25341         (free_store_info) Likewise.
25342         (delete_dead_store_insn) Likewise.
25343         (free_read_records) Likewise.
25344         (record_store) Likewise.
25345         (replace_read) Likewise.
25346         (check_mem_read_rtx) Likewise.
25347         (scan_insn) Likewise.
25348         (dse_step1) Likewise.
25349         (dse_step7) Likewise.
25350
25351 2015-06-01  Martin Liska  <mliska@suse.cz>
25352
25353         * df-scan.c (struct df_scan_problem_data):Use new type-based
25354         pool allocator.
25355         (df_scan_free_internal) Likewise.
25356         (df_scan_alloc) Likewise.
25357         (df_grow_reg_info) Likewise.
25358         (df_free_ref) Likewise.
25359         (df_insn_create_insn_record) Likewise.
25360         (df_mw_hardreg_chain_delete) Likewise.
25361         (df_insn_info_delete) Likewise.
25362         (df_free_collection_rec) Likewise.
25363         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
25364         (df_sort_and_compress_mws) Likewise.
25365         (df_ref_create_structure) Likewise.
25366         (df_ref_record) Likewise.
25367
25368 2015-06-01  Martin Liska  <mliska@suse.cz>
25369
25370         * df-problems.c (df_chain_create):Use new type-based pool allocator.
25371         (df_chain_unlink_1) Likewise.
25372         (df_chain_unlink) Likewise.
25373         (df_chain_remove_problem) Likewise.
25374         (df_chain_alloc) Likewise.
25375         (df_chain_free) Likewise.
25376         * df.h (struct dataflow) Likewise.
25377
25378 2015-06-01  Martin Liska  <mliska@suse.cz>
25379
25380         * cselib.c (new_elt_list):Use new type-based pool allocator.
25381         (new_elt_loc_list) Likewise.
25382         (unchain_one_elt_list) Likewise.
25383         (unchain_one_elt_loc_list) Likewise.
25384         (unchain_one_value) Likewise.
25385         (new_cselib_val) Likewise.
25386         (cselib_init) Likewise.
25387         (cselib_finish) Likewise.
25388
25389 2015-06-01  Martin Liska  <mliska@suse.cz>
25390
25391         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
25392         (sh_reorg) Likewise.
25393
25394 2015-06-01  Martin Liska  <mliska@suse.cz>
25395
25396         * cfg.c (initialize_original_copy_tables):Use new type-based
25397         pool allocator.
25398         (free_original_copy_tables) Likewise.
25399         (copy_original_table_clear) Likewise.
25400         (copy_original_table_set) Likewise.
25401
25402 2015-06-01  Martin Liska  <mliska@suse.cz>
25403
25404         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
25405         pool allocator.
25406         (asan_mem_ref_new) Likewise.
25407         (free_mem_ref_resources) Likewise.
25408
25409 2015-06-01  Martin Liska  <mliska@suse.cz>
25410
25411         * var-tracking.c (variable_htab_free):Use new type-based
25412         pool allocator.
25413         (attrs_list_clear) Likewise.
25414         (attrs_list_insert) Likewise.
25415         (attrs_list_copy) Likewise.
25416         (shared_hash_unshare) Likewise.
25417         (shared_hash_destroy) Likewise.
25418         (unshare_variable) Likewise.
25419         (var_reg_delete_and_set) Likewise.
25420         (var_reg_delete) Likewise.
25421         (var_regno_delete) Likewise.
25422         (drop_overlapping_mem_locs) Likewise.
25423         (variable_union) Likewise.
25424         (insert_into_intersection) Likewise.
25425         (canonicalize_values_star) Likewise.
25426         (variable_merge_over_cur) Likewise.
25427         (dataflow_set_merge) Likewise.
25428         (remove_duplicate_values) Likewise.
25429         (variable_post_merge_new_vals) Likewise.
25430         (dataflow_set_preserve_mem_locs) Likewise.
25431         (dataflow_set_remove_mem_locs) Likewise.
25432         (variable_from_dropped) Likewise.
25433         (variable_was_changed) Likewise.
25434         (set_slot_part) Likewise.
25435         (clobber_slot_part) Likewise.
25436         (delete_slot_part) Likewise.
25437         (loc_exp_insert_dep) Likewise.
25438         (notify_dependents_of_changed_value) Likewise.
25439         (emit_notes_for_differences_1) Likewise.
25440         (vt_emit_notes) Likewise.
25441         (vt_initialize) Likewise.
25442         (vt_finalize) Likewise.
25443
25444 2015-06-01  Martin Liska  <mliska@suse.cz>
25445
25446         * ira-color.c (init_update_cost_records):Use new type-based
25447         pool allocator.
25448         (get_update_cost_record) Likewise.
25449         (free_update_cost_record_list) Likewise.
25450         (finish_update_cost_records) Likewise.
25451         (initiate_cost_update) Likewise.
25452
25453 2015-06-01  Martin Liska  <mliska@suse.cz>
25454
25455         * lra.c (init_insn_regs): Use new type-based pool allocator.
25456         (new_insn_reg) Likewise.
25457         (free_insn_reg) Likewise.
25458         (free_insn_regs) Likewise.
25459         (finish_insn_regs) Likewise.
25460         (init_insn_recog_data) Likewise.
25461         (init_reg_info) Likewise.
25462         (finish_reg_info) Likewise.
25463         (lra_free_copies) Likewise.
25464         (lra_create_copy) Likewise.
25465         (invalidate_insn_data_regno_info) Likewise.
25466
25467 2015-06-01  Martin Liska  <mliska@suse.cz>
25468
25469         * lra-lives.c (free_live_range): Use new type-based pool allocator.
25470         (free_live_range_list) Likewise.
25471         (create_live_range) Likewise.
25472         (copy_live_range) Likewise.
25473         (lra_merge_live_ranges) Likewise.
25474         (remove_some_program_points_and_update_live_ranges) Likewise.
25475         (lra_live_ranges_init) Likewise.
25476         (lra_live_ranges_finish) Likewise.
25477
25478 2015-06-01  Martin Liska  <mliska@suse.cz>
25479
25480         * et-forest.c (et_new_occ): Use new type-based pool allocator.
25481         (et_new_tree): Likewise.
25482         (et_free_tree): Likewise.
25483         (et_free_tree_force): Likewise.
25484         (et_free_pools): Likewise.
25485         (et_split): Likewise.
25486
25487 2015-06-01  Martin Liska  <mliska@suse.cz>
25488
25489         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
25490         to header file.
25491         * alloc-pool.h (pool_allocator::pool_allocator): New function.
25492         (pool_allocator::release): Likewise.
25493         (inline pool_allocator::release_if_empty): Likewise.
25494         (inline pool_allocator::~pool_allocator): Likewise.
25495         (pool_allocator::allocate): Likewise.
25496         (pool_allocator::remove): Likewise.
25497
25498 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
25499
25500         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
25501         in comment.
25502
25503 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
25504
25505         * config/arm/arm-protos.h (tune_params): Rename fuseable_ops
25506         to fusible_ops.
25507         * config/arm/arm.c (arm_print_tune_info): Likewise.
25508         (arm_macro_fusion_p): Likewise.
25509         (arm_macro_fusion_pair_p): Likewise.
25510
25511 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
25512
25513         * config/aarch64/aarch64-protos.h (tune_params): Rename
25514         fuseable_ops to fusible_ops.
25515         * config/aarch64/aarch64.c (generic_tunings): Rename
25516         fuseable_ops to fusible_ops.
25517         (cortexa53_tunings): Likewise.
25518         (cortexa57_tunings): Likewise.
25519         (thunderx_tunings): Likewise.
25520         (xgene1_tunings): Likewise.
25521         (aarch64_macro_fusion_p): Likewise.
25522         (aarch64_macro_fusion_pair_p): Likewise.
25523
25524 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
25525
25526         * config/s390/driver-native.c: New file.
25527         * config/s390/x-native: New file.
25528         * config.host: Add new files for s390.
25529         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
25530         and -march=native
25531         * config.gcc: Likewise.
25532         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
25533         * config/s390/s390-opts.h (enum processor_type): Ditto.
25534         * config/s390/s390.c (s390_option_override): Catch unhandled
25535         PROCESSOR_NATIVE
25536
25537 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
25538
25539         PR target/65527
25540         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
25541         redirection for instrumented calls.
25542         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
25543         (append_compiler_options): Append -fcheck-pointer-bounds.
25544         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
25545         (chkp_redirect_edge): New.
25546         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
25547         (chkp_redirect_edge): New.
25548
25549 2015-06-01  Richard Biener  <rguenther@suse.de>
25550
25551         PR tree-optimization/66280
25552         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
25553         def-use walking.
25554
25555 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25556
25557         * config/aarch64/aarch64.md
25558         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
25559         logic_shift_imm.
25560
25561 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
25562
25563         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
25564         Remove obsolete kludge.
25565
25566 2015-06-01  Richard Biener  <rguenther@suse.de>
25567
25568         * tree-ssa-reassoc.c (get_rank): Simplify.
25569
25570 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
25571
25572         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
25573         * configure: Regenerated.
25574
25575 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
25576
25577         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
25578         issue (add space between string literal and macro).
25579         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
25580
25581 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
25582
25583         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
25584         implict or explicit -fPIE or -fpie.
25585
25586 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
25587
25588         * config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
25589
25590 2015-05-28  DJ Delorie  <dj@redhat.com>
25591
25592         * expmed.c (extract_bit_field_1): Avoid clobbering a
25593         yet-to-be-used base/index register.
25594
25595 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
25596
25597         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
25598         (alias_stats): Add num_universal.
25599         (alias_set_subset_of): Special case pointers; be ready for NULL
25600         children.
25601         (alias_sets_conflict_p): Special case pointers; be ready for NULL
25602         children.
25603         (init_alias_set_entry): Break out from ...
25604         (record_alias_subset): ... here; propagate new fields;
25605         allocate children only when really needed.
25606         (get_alias_set): Do less generous pointer globbing.
25607         (dump_alias_stats_in_alias_c): Update statistics.
25608
25609 2015-05-30  Alan Modra  <amodra@gmail.com>
25610
25611         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
25612         correct block for use of r12.
25613         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
25614
25615 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
25616
25617         PR target/66215
25618         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
25619         with -mhotpatch=.
25620
25621 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
25622
25623         PR tree-optimization/66142
25624         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
25625         virtual phis that feed themselves.
25626
25627 2015-05-29  Richard Biener  <rguenther@suse.de>
25628
25629         PR tree-optimization/66314
25630         * tree-ssa-threadupdate.c (create_block_for_threading): Add
25631         parameter that says which loop the new block belongs to.
25632         (ssa_create_duplicates): Blocks duplicated for the threaded
25633         path belong to the loop of the thread destination.
25634
25635 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25636
25637         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
25638         to cleanup-saved-temps.
25639         * doc/sourcebuild.texi (Clean up generated test files): Expand
25640         introduction.
25641         (dg-keep-saved-temps): Document new proc.
25642         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
25643         cleanup-saved-temps): Remove.
25644
25645 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
25646
25647         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
25648         gcc_AC_CHECK_DECLS.
25649         * configure: Regenerate.
25650
25651 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
25652
25653         * config/nios2/linux.h (CPP_SPEC): Define.
25654
25655 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
25656
25657         * config/microblaze/linux.h (CPP_SPEC): Define.
25658
25659 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
25660
25661         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
25662         -pthread is specified.
25663
25664 2015-05-28  Richard Biener  <rguenther@suse.de>
25665
25666         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
25667         (vect_fixup_scalar_cycles_with_patterns): Likewise.
25668         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
25669         after pattern recog.
25670         (vect_create_epilog_for_reduction): Properly handle reductions
25671         with patterns.
25672         (vectorizable_reduction): Likewise.
25673         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
25674         reduction chains.
25675         (vect_get_constant_vectors): Create the correct number of
25676         initial values for reductions.
25677         (vect_schedule_slp_instance): Handle reduction chains that are
25678         type changing properly.
25679         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
25680
25681 2015-05-28  Richard Biener  <rguenther@suse.de>
25682
25683         PR tree-optimization/66142
25684         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
25685         values better in memcpy destination handling.  Handle non-aliasing
25686         we discover here.
25687
25688 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
25689
25690         PR target/63810
25691         * config/darwin-c.c (version_components): New global enum.
25692         (parse_version, version_as_legacy_macro)
25693         (version_as_modern_macro, macosx_version_as_macro): New functions.
25694         (version_as_macro): Remove.
25695         (darwin_cpp_builtins): Use new function.
25696
25697 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
25698
25699         * builtins.c (expand_builtin_acc_on_device): Mark parameters
25700         with ATTRIBUTE_UNUSED.
25701
25702 2015-05-28  Julian Brown  <julian@codesourcery.com>
25703
25704         PR libgomp/65742
25705
25706         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
25707         sequence for !ACCEL_COMPILER.
25708
25709 2015-05-28  Nick Clifton  <nickc@redhat.com>
25710
25711         * config/rx/rx.c (push_regs): New function.  Extracts code from...
25712         (rx_expand_prologue): ... here.  Use push_regs to push even small
25713         spans of registers.
25714         (pop_regs): New function.
25715         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
25716         registers.
25717
25718 2015-05-28  Richard Biener  <rguenther@suse.de>
25719
25720         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
25721         member.
25722         (SLP_INSTANCE_BODY_COST_VEC): Remove.
25723         (vect_update_slp_costs_according_to_vf): Likewise.
25724         (vect_slp_analyze_operations): Update prototype.
25725         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
25726         vect_update_slp_costs_according_to_vf, adjust.
25727         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
25728         (vect_analyze_slp_cost_1): Likewise.
25729         (vect_analyze_slp_cost): Likewise.  Properly deal with
25730         widening reduction ops.  Commit body costs.
25731         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
25732         cost for loops from here.
25733         (vect_slp_analyze_operations): But do it from here when
25734         the vectorization factor is known and stmts are analyzed.
25735         (vect_bb_vectorization_profitable_p): Simplify.
25736         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
25737         (vect_update_slp_costs_according_to_vf): Remove.
25738
25739 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
25740             H.J. Lu  <hongjiu.lu@intel.com>
25741
25742         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
25743         (BUILD_CFLAGS): Likewise.
25744         (BUILD_CXXFLAGS): Likewise.
25745         (LINKER): Add @NO_PIE_FLAG@.
25746         (BUILD_LDFLAGS): Likewise.
25747         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
25748         --enable-default-pie.
25749         * common.opt (fPIE): Initialize to -1.
25750         (fpie): Likewise.
25751         (no-pie): New option.
25752         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
25753         * configure.ac: Add --enable-default-pie.
25754         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
25755         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
25756         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
25757         * gcc.c (NO_PIE_SPEC): New.
25758         (PIE_SPEC): Likewise.
25759         (NO_FPIE1_SPEC): Likewise.
25760         (FPIE1_SPEC): Likewise.
25761         (NO_FPIE2_SPEC): Likewise.
25762         (FPIE2_SPEC): Likewise.
25763         (NO_FPIE2_SPEC): Likewise.
25764         (FPIE_SPEC): Likewise.
25765         (NO_FPIE_SPEC): Likewise.
25766         (NO_FPIC1_SPEC): Likewise.
25767         (FPIC1_SPEC): Likewise.
25768         (NO_FPIC2_SPEC): Likewise.
25769         (FPIC2_SPEC): Likewise.
25770         (NO_FPIC2_SPEC): Likewise.
25771         (FPIC_SPEC): Likewise.
25772         (NO_FPIC_SPEC): Likewise.
25773         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
25774         (FPIE1_OR_FPIC1_SPEC): Likewise.
25775         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
25776         (FPIE2_OR_FPIC2_SPEC): Likewise.
25777         (NO_FPIE_AND_FPIC_SPEC): Likewise.
25778         (FPIE_OR_FPIC_SPEC): Likewise.
25779         (LD_PIE_SPEC): Likewise.
25780         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
25781         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
25782         * config/darwin.h (PIE_SPEC): Renamed to ...
25783         (DARWIN_PIE_SPEC): This.
25784         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
25785         * config/darwin9.h (PIE_SPEC): Renamed to ...
25786         (DARWIN_PIE_SPEC): This.
25787         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
25788         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
25789         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
25790         FPIE2_OR_FPIC2_SPEC.
25791         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
25792         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
25793         * config/sol2.h (ASM_PIC_SPEC): Likewise.
25794         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
25795         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
25796         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
25797         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
25798         * config/m32r/m32r.h (ASM_SPEC): Likewise.
25799         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
25800         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
25801         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
25802         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
25803         * config/sparc/linux.h (ASM_SPEC): Likewise.
25804         * config/sparc/linux64.h (ASM_SPEC): Likewise.
25805         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
25806         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
25807         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25808         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
25809         * config/sparc/sparc.h (ASM_SPEC): Likewise.
25810         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
25811         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
25812         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
25813         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
25814         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
25815         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
25816         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
25817         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
25818         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
25819         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
25820         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
25821         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
25822         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25823         * config/vax/linux.h (ASM_SPEC): Likewise.
25824         * doc/install.texi: Document --enable-default-pie.
25825         * doc/invoke.texi: Document -no-pie.
25826         * config.in: Regenerated.
25827         * configure: Likewise.
25828
25829 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25830
25831         PR rtl-optimization/66168
25832         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
25833         can_move_invariant_reg.
25834
25835 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
25836
25837         PR target/66148
25838         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
25839         REG_EQUAL note when doing insert.
25840
25841         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
25842         instead of "%d" for 'o' operand.
25843
25844 2015-05-27  Nathan Sidwell  <nathan@acm.org>
25845
25846         PR c++/66270
25847         * tree.c (build_pointer_type_for_mode): Canonical type does not
25848         inherit can_alias_all.
25849         (build_reference_type_for_mode): Likewise.
25850
25851 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
25852
25853         * expr.h (array_at_struct_end_p): Move to...
25854         (array_ref_element_size): Likewise.
25855         (component_ref_field_offset): Likewise.
25856         * tree.h (array_ref_element_size): ...here.
25857         (array_at_struct_end_p): Likewise.
25858         (component_ref_field_offset): Likewise.
25859         * expr.c (array_ref_element_size): Move to...
25860         (array_ref_low_bound): Likewise.
25861         (array_at_struct_end_p): Likewise.
25862         (array_ref_up_bound): Likewise.
25863         (component_ref_field_offset): Likewise.
25864         * tree.c (array_ref_element_size): ...here.
25865         (array_ref_low_bound): Likewise.
25866         (array_ref_up_bound): Likewise.
25867         (array_at_struct_end_p): Likewise.
25868         (component_ref_field_offset): Likewise.
25869
25870 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
25871             Szabolcs Nagy  <szabolcs.nagy@arm.com>
25872
25873         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
25874
25875 2015-05-27  Jason Merrill  <jason@redhat.com>
25876
25877         PR bootstrap/66304
25878         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
25879         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
25880         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
25881
25882 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
25883
25884         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
25885         is true.
25886
25887         * statistics.c (statistics_fini_pass): Print pass name.
25888
25889 2015-05-27  Richard Biener  <rguenther@suse.de>
25890
25891         PR tree-optimization/66272
25892         Revert parts of
25893         2014-08-15  Richard Biener  <rguenther@suse.de>
25894
25895         PR tree-optimization/62031
25896         * tree-data-ref.c (dr_analyze_indices): Do not set
25897         DR_UNCONSTRAINED_BASE.
25898         (dr_may_alias_p): All indirect accesses have to go the
25899         formerly DR_UNCONSTRAINED_BASE path.
25900         * tree-data-ref.h (struct indices): Remove
25901         unconstrained_base member.
25902         (DR_UNCONSTRAINED_BASE): Remove.
25903
25904 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
25905
25906         * dwarf2out.c: Remove block_map.
25907         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
25908         (gen_lexical_block_die): Same.
25909         (dwarf2out_function_decl): Remove block_map use.
25910         (dwarf2out_c_finalize): Same.
25911         * tree-core.h (struct tree_block): Add die field.
25912         * tree.h (BLOCK_DIE): New.
25913
25914 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25915
25916         PR target/65358
25917         * expr.c (memory_load_overlap): New function.
25918         (emit_push_insn): When pushing partial args to the stack would
25919         clobber the register part load the overlapping part into a pseudo
25920         and put it into the hard reg after pushing.  Change return type
25921         to bool.  Add bool argument.
25922         * expr.h (emit_push_insn): Change return type to bool.
25923         Add bool argument.
25924         * calls.c (expand_call): Cancel sibcall optimization when encountering
25925         partial argument on targets with ARGS_GROW_DOWNWARD and
25926         !STACK_GROWS_DOWNWARD.
25927         (emit_library_call_value_1): Update callsite of emit_push_insn.
25928         (store_one_arg): Likewise.
25929
25930 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
25931
25932         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
25933
25934 2015-05-27  Martin Liska  <mliska@suse.cz>
25935
25936         * Makefile.in: Add additional dependencies related to memory report
25937         enhancement.
25938         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
25939         * bitmap.c (struct bitmap_descriptor_d): Remove.
25940         (struct loc): Likewise.
25941         (struct bitmap_desc_hasher): Likewise.
25942         (bitmap_desc_hasher::hash): Likewise.
25943         (bitmap_desc_hasher::equal): Likewise.
25944         (get_bitmap_descriptor): Likewise.
25945         (bitmap_register): User new memory descriptor API.
25946         (register_overhead): Likewise.
25947         (bitmap_find_bit): Register nsearches and search_iter statistics.
25948         (struct bitmap_output_info): Remove.
25949         (print_statistics): Likewise.
25950         (dump_bitmap_statistics): Use new memory descriptor.
25951         * bitmap.h (struct bitmap_usage): New class.
25952         * genmatch.c: Extend header file inclusion.
25953         * genpreds.c: Likewise.
25954         * ggc-common.c (struct ggc_usage): New class.
25955         (struct ggc_loc_desc_hasher): Remove.
25956         (ggc_loc_desc_hasher::hash): Likewise.
25957         (ggc_loc_desc_hasher::equal): Likewise.
25958         (struct ggc_ptr_hash_entry): Likewise.
25959         (struct ptr_hash_hasher): Likewise.
25960         (ptr_hash_hasher::hash): Likewise.
25961         (ptr_hash_hasher::equal): Likewise.
25962         (make_loc_descriptor): Likewise.
25963         (ggc_prune_ptr): Likewise.
25964         (dump_ggc_loc_statistics): Use new memory descriptor.
25965         (ggc_record_overhead): Likewise.
25966         (ggc_free_overhead): Likewise.
25967         (final_cmp_statistic): Remove.
25968         (cmp_statistic): Likewise.
25969         (ggc_add_statistics): Liekwise.
25970         (ggc_prune_overhead_list): Likewise.
25971         * hash-map-traits.h: New file.
25972         * hash-map.h (struct default_hashmap_traits): Move the traits to a
25973         separate header file.
25974         * hash-set.h: Pass memory statistics info to ctor.
25975         * hash-table.c (void dump_hash_table_loc_statistics): New function.
25976         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
25977         (hash_table::~hash_table): Register memory release operation.
25978         (hash_table::alloc_entries): Handle memory allocation operation.
25979         (hash_table::expand): Likewise.
25980         * inchash.c (iterative_hash_hashval_t): Move implementation to header
25981         file.
25982         (iterative_hash_host_wide_int): Likewise.
25983         * inchash.h (class hash): Likewise.
25984         * mem-stats-traits.h: New file.
25985         * mem-stats.h: New file.
25986         (mem_location): Add new class.
25987         (mem_usage): Likewise.
25988         (mem_alloc_description): Likewise.
25989         * sese.c: Add new header file inclusision.
25990         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
25991         and hash_set.
25992         * tree-sra.c: Add new header file inclusision.
25993         * vec.c (struct vec_descriptor): Remove.
25994         (hash_descriptor): Likewise.
25995         (struct vec_usage): Likewise.
25996         (struct ptr_hash_entry): Likewise.
25997         (hash_ptr): Likewise.
25998         (eq_ptr): Likewise.
25999         (vec_prefix::register_overhead): Use new memory descriptor API.
26000         (vec_prefix::release_overhead): Likewise.
26001         (add_statistics): Remove.
26002         (dump_vec_loc_statistics): Use new memory descriptor API.
26003         * vec.h (struct vec_prefix): Likewise.
26004         (va_heap::reserve): Likewise.
26005         (va_heap::release): Likewise.
26006         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
26007
26008 2015-05-27  Richard Biener  <rguenther@suse.de>
26009
26010         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
26011         earlier and remove ??? comment.
26012         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
26013         and got called from loop analysis bail out.  Always pass the SLP
26014         node to the vectorizable_* functions.
26015         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
26016         the premature SLP check here.
26017         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
26018         detected SLP stmts.
26019         (vect_detect_hybrid_slp_1): Likewise.
26020
26021 2015-05-26  Jeff Law  <law@redhat.com>
26022
26023         * combine.c (find_split_point): Verify that the shift count is a
26024         constant when choosing (plus (ashift ...)) as a split point.
26025
26026         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
26027         No functional changes.
26028
26029 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
26030
26031         * ipa-polymorphic-call.c
26032         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
26033         case when call target is already known.
26034
26035 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
26036
26037         PR target/65979
26038         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
26039         take into account the case that operands[1] and operands[2]
26040         are the same register.
26041
26042 2015-05-26  Michael Matz  <matz@suse.de>
26043
26044         PR middle-end/66251
26045
26046         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
26047         stores.
26048         (vect_create_vectorized_demotion_stmts): Always set
26049         STMT_VINFO_VEC_STMT, also with SLP.
26050         (vectorizable_store): Handle strided group stores.
26051
26052 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
26053
26054         PR target/66049
26055         * config/aarch64/aarch64.md
26056         (*adds_shift_imm_<mode>):  New pattern.
26057         (*subs_shift_imm_<mode>):  Likewise.
26058         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
26059         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
26060         (*add_uxt<mode>_shift2): Likewise.
26061         (*add_uxtsi_shift2_uxtw): Likewise.
26062         (*sub_uxt<mode>_shift2): Likewise.
26063         (*sub_uxtsi_shift2_uxtw): Likewise.
26064
26065 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
26066
26067         * config/rs6000/constraints.md (Y, U): Use match_test.
26068
26069 2015-05-26  Christian Bruel  <christian.bruel@st.com>
26070
26071         PR target/52144
26072         * config/arm/arm.c (arm_option_check_internal)
26073         (arm_option_params_internal): Check opts->target_flags to set macros.
26074         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
26075         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
26076         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
26077         (builtin_define): Replaced with def_or_undef_macro.
26078         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
26079         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
26080         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
26081         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
26082         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
26083         (TARGET_ARM_FEATURE_LDREX_P)
26084         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
26085         * config/arm/arm-c.c (def_or_undef_macro): New function.
26086         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
26087
26088 2015-05-26  Christian Bruel  <christian.bruel@st.com>
26089
26090         * c-common.h (builtin_define_with_int_value)
26091         (builtin_define_type_sizeof): Declare.
26092         * c-cppbuiltin.c (builtin_define_with_int_value)
26093         (builtin_define_type_sizeof): Externalize.
26094         (builtin_define_std): Cleanup declaration.
26095         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
26096         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
26097         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
26098         (builtin_define, builtin_assert): New macros.
26099
26100 2015-05-26  Richard Biener  <rguenther@suse.de>
26101
26102         PR tree-optimization/66142
26103         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
26104         MEM_REFs for the same base address.
26105
26106 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26107
26108         PR ipa/66181
26109         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
26110
26111 2015-05-26  Jason Merrill  <jason@redhat.com>
26112
26113         * configure.ac: Set CXXFLAGS for ISL test.
26114         * configure: Regenerate.
26115
26116         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
26117         strstr and basename.
26118         * configure: Regenerate.
26119
26120 2015-05-26  Richard Biener  <rguenther@suse.de>
26121
26122         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
26123         X % C -> X & (C - 1) for C being a power-of two to ...
26124         * match.pd: ... patterns.
26125
26126 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
26127
26128         * match.pd (swapped_tcc_comparison): New operator list.
26129         (-A CMP -B): New simplification.
26130         * fold-const.c (fold_comparison): Remove corresponding code.
26131
26132 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
26133
26134         * caller-save.c (init_caller_save): Base temporary register numbers
26135         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
26136         * cfgloopanal.c (init_set_costs): Likewise.
26137         * dojump.c (prefer_and_bit_test): Likewise.
26138         * expr.c (init_expr_target): Likewise.
26139         * ira.c (setup_prohibited_mode_move_regs): Likewise.
26140         * lower-subreg.c (init_lower_subreg): Likewise.
26141         * postreload.c (reload_cse_regs_1): Likewise.
26142
26143 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
26144
26145         * gensupport.h (compute_test_codes): Declare.
26146         * gensupport.c (compute_predicate_codes): Rename to...
26147         (compute_test_codes): ...this.  Generalize error message.
26148         (process_define_predicate): Update accordingly.
26149         * genpreds.c (compute_maybe_allows): Delete.
26150         (add_constraint): Use compute_test_codes to determine whether
26151         something can accept a SUBREG, REG or MEM.
26152
26153 2015-05-26  Torvald Riegel  <triegel@redhat.com>
26154
26155         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
26156         'memory model' to align with C++11; fix description of memory orders;
26157         fix a few typos.
26158
26159 2015-05-26  Richard Biener  <rguenther@suse.de>
26160
26161         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
26162         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
26163         detect whether we apply SLP.  Remove call to
26164         vect_update_slp_costs_according_to_vf.
26165         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
26166         vect_update_slp_costs_according_to_vf from here.  Dispatch
26167         to vect_slp_analyze_operations to analyze SLP stmts.
26168         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
26169         unused bb_vec_info parameter, adjust assert.
26170         (vect_slp_analyze_operations): Pass in the slp instance tree
26171         instead of bb_vec_info.
26172         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
26173         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
26174
26175 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
26176
26177         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
26178         Q_REGS.  Expand comment.
26179         (REG_CLASS_NAMES): Ditto.
26180         (REG_CLASS_CONTENTS): Ditto.
26181
26182 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
26183
26184         PR target/66274
26185         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
26186         when LEGACY_INT_REGNO_P is processed.
26187
26188 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
26189
26190         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
26191
26192 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
26193
26194         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
26195         register if not marked dead/unused, before return.
26196
26197 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
26198
26199         PR lto/66180
26200         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
26201         is set; check for assembler name at LTO time.
26202         (type_in_anonymous_namespace): Remove hacks, check that all
26203         anonymous types are called "<anon>"
26204         (odr_type_p): Simplify; add check for "<anon>"
26205         (odr_subtypes_equivalent): Add odr_type_p check.
26206         * tree.c (need_assembler_name_p): Even anonymous namespace needs
26207         assembler name.
26208
26209 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
26210
26211         * ipa-utils.h (method_class_type): Remove.
26212         * cgraphunit.c (walk_polymorphic_call_targets): Use
26213         TYPE_METHOD_BASETYPE.
26214         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
26215         on main variants only.
26216         (method_class_type): Remove.
26217         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
26218         (build_type_inheritance_graph): Likewise.
26219         * ipa-icf.c (sem_function::equals_wpa): Likewise.
26220         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
26221         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
26222
26223 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
26224
26225         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
26226         is_typedef_decl, typedef_variant_p): Constify.
26227         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
26228         is_typedef_decl, typedef_variant_p): Constify.
26229
26230 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26231
26232         * defaults.h (gen_tablejump): New function.
26233         (HAVE_tablejump): Add default value.
26234         * expr.c: Adjust.
26235         * stmt.c: Likewise.
26236
26237 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26238
26239         * defaults.h (gen_store_multiple): New function.
26240         (HAVE_store_multiple): Add default value.
26241         * expr.c (move_block_from_reg): Adjust.
26242
26243 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26244
26245         * defaults.h (gen_load_multiple): New function.
26246         (HAVE_load_multiple): Add default value.
26247         * expr.c (move_block_to_reg): Adjust.
26248
26249 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26250
26251         * defaults.h (gen_mem_signal_fence): New function.
26252         (HAVE_mem_signal_fence): Add default value.
26253         * optabs.c: Adjust.
26254
26255 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26256
26257         * defaults.h (gen_memory_barrier): New function.
26258         (HAVE_memory_barrier): Add default value.
26259         * optabs.c: Adjust.
26260
26261 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26262
26263         * defaults.h (gen_mem_thread_fence): New function.
26264         (HAVE_mem_thread_fence): Add default definition.
26265         * optabs.c: Adjust.
26266
26267 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26268
26269         * combine.c (find_split_point): Check the value of HAVE_lo_sum
26270         instead of if it is defined.
26271         (combine_simplify_rtx): Likewise.
26272         * lra-constraints.c (process_address_1): Likewise.
26273         * config/darwin.c: Adjust.
26274         * genconfig.c (main): Always define HAVE_lo_sum.
26275
26276 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
26277
26278         * genmatch.c (parser::parse_operation): Reject expanding
26279         operator-list inside 'for'.
26280
26281 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
26282
26283         * genmatch.c (parser::parse_for): Reject iterator if used as
26284         operator-list.
26285
26286 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
26287
26288         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
26289         after end of id-list.
26290
26291 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
26292
26293         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
26294         we do not try to compute canonical type for type that does not need
26295         alias set.
26296         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
26297         FUNCITON_TYPE.
26298         * tree.h (type_with_alias_set_p): New.
26299
26300 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
26301
26302         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
26303         function attributes.
26304         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
26305
26306 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
26307
26308         * Makefile.in (check_gcc_parallelize): Delete.
26309         (lang_checks_parallelized): Update comment.
26310
26311 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
26312
26313         PR rtl-optimization/66237
26314         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
26315         location of an "as_a" cast.
26316
26317 2015-05-22  Jeff Law  <law@redhat.com>
26318
26319         * config/pa/pa.md (non-canonical shift-add insns): Remove.
26320         (peepholes with non-canonical RTL sources): Remove.
26321         (peepholes for indexed stores of FP regs in integer modes): Match and
26322         generate canonical RTL.
26323
26324 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
26325
26326         PR tree-optimization/63387
26327         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
26328         ((x ord x) & (y ord y) -> (x ord y),
26329         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
26330         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
26331         vectors like scalars.
26332
26333 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
26334
26335         * convert.c (convert_to_integer, convert_to_vector): Include the
26336         types in the error message.
26337
26338 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
26339
26340         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
26341         simplifications.
26342
26343 2015-05-22  Jeff Law  <law@redhat.com>
26344
26345         * config/pa/pa.md (integer_indexed_store splitters): Use
26346         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
26347         insns -- adjusting the constant 2nd operand accordingly.
26348
26349         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
26350         (plus (ashift X log2) Y) if it is a split point.
26351
26352         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
26353         out of hppa_legitimize_address to handle both forms of a multiply
26354         by 2, 4 or 8.
26355         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
26356         Always generate the ASHIFT variant as the result is not directly
26357         used in a MEM.  Update comments and refactor slightly to improve
26358         readability.
26359
26360 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26361
26362         PR target/65491
26363         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
26364         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
26365         (aarch64_composite_type_p): Return false if given type and mode are
26366         for a short vector.
26367
26368 2015-05-22  Richard Biener  <rguenther@suse.de>
26369
26370         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
26371         member.
26372         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
26373         patterns when determining whether SLP is pure.
26374         (vect_is_slp_reduction): Remove check for pattern stmts.
26375         (vect_is_simple_reduction_1): Remove dead code.
26376         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
26377         (vect_get_and_check_slp_defs): Pass in the stmt number.
26378         Allow the first def in a reduction to be not a pattern stmt when
26379         the rest of the stmts def are patterns.
26380         (vect_build_slp_tree_1): Allow tcc_expression codes like
26381         SAD_EXPR and DOT_PROD_EXPR.
26382         (vect_build_slp_tree): Adjust.
26383         (vect_analyze_slp): Refactor and move BB vect error message ...
26384         (vect_slp_analyze_bb_1): ... here.
26385
26386 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
26387
26388         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
26389         for CSWTCH temporary.
26390
26391 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26392
26393         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
26394         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
26395         unknown unspecs.
26396
26397 2015-05-22  Richard Biener  <rguenther@suse.de>
26398
26399         PR tree-optimization/66251
26400         * tree-vect-stmts.c (vectorizable_conversion): Properly
26401         set STMT_VINFO_VEC_STMT even for the SLP case.
26402
26403 2015-05-22  Marek Polacek  <polacek@redhat.com>
26404
26405         * doc/extend.texi: Use @pxref instead of @xref.
26406
26407 2015-05-22  hiraditya  <hiraditya@msn.com>
26408
26409         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
26410         redundant if.
26411
26412 2015-05-22  Richard Biener  <rguenther@suse.de>
26413
26414         PR tree-optimization/65701
26415         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
26416         Move peeling cost models into one place.  Peel for alignment
26417         for single loads only if an aligned load is cheaper than
26418         an unaligned load.
26419
26420 2015-05-22  Marek Polacek  <polacek@redhat.com>
26421
26422         PR c/47043
26423         * doc/extend.texi (Enumerator Attributes): New section.
26424         Document syntax of enumerator attributes.
26425
26426 2015-05-22  Richard Biener  <rguenther@suse.de>
26427
26428         * tree-vect-loop.c (get_reduction_op): New function.
26429         (vect_model_reduction_cost): Use it, add reduc_index parameter.
26430         Make ready for BB reductions.
26431         (vect_create_epilog_for_reduction): Use get_reduction_op.
26432         (vectorizable_reduction): Init reduc_index to a valid value.
26433         Adjust vect_model_reduction_cost call.
26434         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
26435         operand for reduction defaults.  Add SAD_EXPR support.
26436         Assert we have a neutral op for SLP reductions.
26437         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
26438         walking pattern stmt ops only recurse to SSA names.
26439
26440 2015-05-22  Richard Biener  <rguenther@suse.de>
26441
26442         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
26443         assert with guard, remove check on detected reduction.
26444         (vect_recog_sad_pattern): Likewise.
26445         (vect_recog_widen_sum_pattern): Likewise.
26446
26447 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26448
26449         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
26450         __always_inline__ attribute.
26451         (vaesdq_u8): Likewise.
26452         (vaesmcq_u8): Likewise.
26453         (vaesimcq_u8): Likewise.
26454         (vsha1cq_u32): Likewise.
26455         (vsha1mq_u32): Likewise.
26456         (vsha1pq_u32): Likewise.
26457         (vsha1h_u32): Likewise.
26458         (vsha1su0q_u32): Likewise.
26459         (vsha1su1q_u32): Likewise.
26460         (vsha256hq_u32): Likewise.
26461         (vsha256h2q_u32): Likewise.
26462         (vsha256su0q_u32): Likewise.
26463         (vsha256su1q_u32): Likewise.
26464         (vmull_p64): Likewise.
26465         (vmull_high_p64): Likewise.
26466
26467 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26468
26469         * final.c (final_scan_insn): Don't check HAVE_peephole with the
26470         preprocessor.
26471         * output.h: Likewise.
26472         * genconfig.c (main): Alwways define HAVE_peephole.
26473         * genpeep.c: Don't emit checks of HAVE_peephole.
26474
26475 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26476
26477         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
26478         check HAVE_conditional_move with the preprocessor.
26479
26480 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26481
26482         * genconfig.c (main): Always define HAVE_conditional_move.
26483         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
26484         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
26485         is defined.
26486
26487 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26488
26489         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
26490         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
26491         and FRAME_POINTER_REGNUM with the preprocessor.
26492
26493 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26494
26495         * defaults.h: Add default for STACK_PUSH_CODE.
26496         * expr.c: Don't redefine STACK_PUSH_CODE.
26497         * recog.c: Likewise.
26498
26499 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26500
26501         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
26502         sched-deps.c: Use if instead of preprocessor checks with
26503         STACK_GROWS_DOWNWARD.
26504
26505 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26506
26507         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
26508         is defined.
26509         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
26510         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
26511         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
26512         * doc/tm.texi: Regenerate.
26513
26514 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
26515
26516         PR target/66232
26517         * config/i386/constraints.md (Bg): New constraint for GOT memory
26518         operand.
26519         * config/i386/i386.md (*call_got_x32): New pattern.
26520         (*call_value_got_x32): Likewise.
26521         * config/i386/predicates.md (GOT_memory_operand): New predicate.
26522
26523 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
26524
26525         PR tree-optimization/66233
26526         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
26527         Simplify.
26528
26529 2015-05-21  Jeff Law  <law@redhat.com>
26530
26531         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
26532         than MULT for shadd sequences.
26533
26534 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
26535
26536         * alias.c (alias_stats): New static var.
26537         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
26538         (dump_alias_stats_in_alias_c): New function.
26539         * alias.h (dump_alias_stats_in_alias_c): Declare.
26540         * tree-ssa-alias.c (dump_alias_stats): Call it.
26541
26542 2015-05-08  Michael Matz  <matz@suse.de>
26543
26544         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
26545         to strided_p.
26546         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
26547         (STMT_VINFO_STRIDED_P): ... this.
26548         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
26549         (vect_verify_datarefs_alignment): Likewise.
26550         (vect_enhance_data_refs_alignment): Likewise.
26551         (vect_analyze_data_ref_access): Likewise.
26552         (vect_analyze_data_refs): Accept strided stores.
26553         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
26554         (vect_model_load_cost): Adjust for macro rename.
26555         (vectorizable_mask_load_store): Likewise.
26556         (vectorizable_load): Likewise.
26557         (vectorizable_store): Open code strided stores.
26558
26559 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26560
26561         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
26562         Document sqrt_insn.
26563
26564 2015-05-21  Richard Biener  <rguenther@suse.de>
26565
26566         PR c++/66211
26567         * match.pd: Guard pattern optimzing (int)(float)int
26568         conversions to apply only on GIMPLE.
26569
26570 2015-05-21  Jeff Law  <law@redhat.com>
26571
26572         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
26573         multiply-accumulate/shift-add insn generation.
26574
26575 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
26576
26577         PR target/54236
26578         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
26579         operands[1] are the same.
26580
26581 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
26582
26583         PR middle-end/66221
26584         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
26585         build_distinct_type_copy to copy bounds.
26586
26587 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
26588
26589         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
26590         Change to unsigned int.
26591
26592 2015-05-20  Jeff Law  <law@redhat.com>
26593
26594         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
26595         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
26596         (pa_shadd_constant_p): Allow constants for shadd insns rather
26597         than valid scaling constants for memory addresses.
26598         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
26599         * config/pa/predicates.md (mem_shadd_operand): New predicate.
26600         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
26601         (shift-add insns using ASHIFT): New patterns.
26602
26603 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
26604
26605         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
26606         feasible.
26607         (fix_up_fall_thru_edges): Likewise.
26608         (fix_crossing_conditional_branches): Likewise. Promote jump targets
26609         from to rtx_insn to rtx_code_label where feasible.
26610         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
26611         gen_move_insn (returned type changed to rtx_insn).
26612         * builtins.c (expand_errno_check): Fix arguments of
26613         do_compare_rtx_and_jump (now expects rtx_code_label).
26614         (expand_builtin_acc_on_device): Likewise.
26615         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
26616         invert_jump (now exprects rtx_jump_insn).
26617         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
26618         (construct_init_block): Use rtx_code_label.
26619         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
26620         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
26621         calling redirect_jump.
26622         (patch_jump_insn): Likewise.
26623         (redirect_branch_edge): Likewise.
26624         (force_nonfallthru_and_redirect): Likewise.
26625         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
26626         when suitable.
26627         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
26628         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
26629         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
26630         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
26631         to store the value retured by gen_label_rtx.
26632         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
26633         rtx_jump_insn.
26634         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
26635         (split_branches): Fix calls of redirect_jump.
26636         * dojump.c (jumpifnot): Promote argument type from rtx to
26637         rtx_code_label.
26638         (jumpifnot_1): Likewise.
26639         (jumpif): Likewise.
26640         (jumpif_1): Likewise.
26641         (do_jump_1): Likewise.
26642         (do_jump): Likewise. Use rtx_code_label when feasible.
26643         (do_jump_by_parts_greater_rtx): Likewise.
26644         (do_jump_by_parts_zero_rtx): Likewise.
26645         (do_jump_by_parts_equality_rtx): Likewise.
26646         (do_compare_rtx_and_jump): Likewise.
26647         * dojump.h: Update function prototypes.
26648         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
26649         returns rtx_insn).
26650         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
26651         rtx_jump_insn.
26652         (emit_label_before): Likewise.
26653         (emit_jump_insn_after_noloc): Likewise.
26654         (emit_jump_insn_after_setloc): Likewise.
26655         (emit_jump_insn_after): Likewise
26656         (emit_jump_insn_before_setloc): Likewise.
26657         (emit_jump_insn_before): Likewise.
26658         (emit_label_before): Promote return type to rtx_code_label.
26659         (emit_label): Likewise.
26660         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
26661         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
26662         gen_move_insn.
26663         (emit_stack_restore): Likewise.
26664         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
26665         (do_cmp_and_jump): Likewise.
26666         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
26667         from rtx to rtx_code_label.
26668         (gen_move_insn_uncast): New function.
26669         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
26670         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
26671         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
26672         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
26673         invert_jump_1 and redirect_jump_1.
26674         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
26675         do_compare_rtx_and_jump.
26676         (expand_addsub_overflow): Likewise.
26677         (expand_neg_overflow): Likewise.
26678         (expand_mul_overflow): Likewise.
26679         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
26680         return value of gen_move_insn.
26681         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
26682         * loop-doloop.c (add_test): Use rtx_code_label.
26683         (doloop_modify): Likewise.
26684         (doloop_optimize): Likewise.
26685         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
26686         * lra-constraints.c (emit_spill_move): Remove cast of value returned
26687         by gen_move_insn.
26688         (inherit_reload_reg): Add cast when calling dump_insn_slim.
26689         (split_reg): Likewise.
26690         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
26691         gen_move_insn.
26692         * optabs.c (expand_binop_directly): Remove casts of values returned by
26693         maybe_gen_insn.
26694         (expand_unop_direct): Likewise.
26695         (expand_abs): Likewise.
26696         (maybe_emit_unop_insn): Likewise.
26697         (maybe_gen_insn): Promote return type to rtx_insn.
26698         * optabs.h: Update prototype of maybe_gen_insn.
26699         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
26700         redundant cast.
26701         * recog.c (struct peep2_insn_data): Promote type of insn field to
26702         rtx_insn.
26703         (peep2_reinit_state): Use NULL instead of NULL_RTX.
26704         (peep2_attempt): Remove casts of insn in peep2_insn_data.
26705         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
26706         * recog.h (struct insn_gen_fn): Promote return types of function
26707         pointers and operator ().from rtx to rtx_insn.
26708         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
26709         (fill_eager_delay_slots): Likewise.
26710         (relax_delay_slots): Likewise.
26711         (make_return_insns): Likewise.
26712         (dbr_schedule): Likewise.
26713         (optimize_skips): Likewise.
26714         (reorg_redirect_jump): Likewise.
26715         (fill_slots_from_thread): Likewise.
26716         * reorg.h: Update prototypes.
26717         * resource.c (find_dead_or_set_registers): Use dyn_cast to
26718         rtx_jump_insn instead of check.  Use it's jump_target method.
26719         * rtl.h (rtx_jump_insn::jump_label): Define new method.
26720         (rtx_jump_insn::jump_target): Define new method.
26721         (rtx_jump_insn::set_jump_target): Define new method.
26722         * rtlanal.c (tablejump_p): Promote type of one local variable.
26723         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
26724         (sched_analyze_insn): Likewise.
26725         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
26726         (print_insn): Likewise.
26727         * stmt.c (label_rtx): Promote return type to rtx_insn.
26728         (force_label_rtx): Likewise.
26729         (jump_target_rtx): Define new function.
26730         (expand_label): Use it, get rid of one cast.
26731         (expand_naked_return): Promote rtx to rtx_code_label.
26732         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
26733         (expand_case): Use rtx_code_label instread of rtx where feasible.
26734         (expand_sjlj_dispatch_table): Likewise.
26735         (emit_case_nodes): Likewise.
26736         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
26737         * store-motion.c (insert_store): Make use of new return type of
26738         gen_move_insn and remove a cast.
26739         (replace_store_insn): Likewise.
26740
26741 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
26742
26743         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
26744         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
26745
26746 2015-05-20  Jeff Law  <law@redhat.com>
26747
26748         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
26749         dispose of the jump thread path when the jump threading
26750         opportunity is cancelled.
26751
26752 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26753
26754         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
26755         when printing the caret character.
26756
26757 2015-05-20  Marek Polacek  <polacek@redhat.com>
26758
26759         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
26760
26761 2015-05-20  Marek Polacek  <polacek@redhat.com>
26762
26763         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
26764         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
26765         * gimple-fold.c (canonicalize_bool): Likewise.
26766         (same_bool_result_p): Likewise.
26767         * tree-if-conv.c (parse_predicate): Likewise.
26768
26769 2015-05-20  Marek Polacek  <polacek@redhat.com>
26770
26771         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
26772         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
26773
26774 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26775
26776         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
26777         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
26778         values.
26779
26780 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
26781
26782         * config/mips/mips.h (micromips_globals): Declare.
26783
26784 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
26785
26786         * timevar.def (TV_INITIALIZE_RTL): New.
26787         * toplev.c (initialize_rtl): Use an auto_timevar to account this
26788         function's time to TV_INITIALIZE_RTL.
26789
26790 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
26791
26792         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
26793         gimple_build_nop calls.
26794         (chkp_find_bounds_for_elem): Likewise.
26795         (chkp_get_zero_bounds): Likewise.
26796         (chkp_get_none_bounds): Likewise.
26797         (chkp_get_bounds_by_definition): Likewise.
26798         (chkp_generate_extern_var_bounds): Likewise.
26799         (chkp_get_bounds_for_decl_addr): Likewise.
26800         (chkp_get_bounds_for_string_cst): Likewise.
26801
26802 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
26803
26804         PR tree-optimization/65447
26805         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
26806         (dump_use, dump_uses): Support to dump sub use.
26807         (record_use): New parameters to support sub use.  Remove call to
26808         dump_use.
26809         (record_sub_use, record_group_use): New functions.
26810         (compute_max_addr_offset, split_all_small_groups): New functions.
26811         (group_address_uses, rewrite_use_address): New functions.
26812         (strip_offset): New declaration.
26813         (find_interesting_uses_address): Call record_group_use.
26814         (add_candidate): New assertion.
26815         (infinite_cost_p): Move definition forward.
26816         (add_costs): Check INFTY cost and return immediately.
26817         (get_computation_cost_at): Clear setup cost and dependent bitmap
26818         for sub uses.
26819         (determine_use_iv_cost_address): Compute cost for sub uses.
26820         (rewrite_use_address_1): Rename from old rewrite_use_address.
26821         (free_loop_data): Free sub uses.
26822         (tree_ssa_iv_optimize_loop): Call group_address_uses.
26823
26824 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
26825             Jim Wilson  <jim.wilson@linaro.org>
26826
26827         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
26828         new  fields loadv and storev.
26829         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
26830         Initialize loadv and storev.
26831         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
26832         (cortexa53_extra_costs): Likewise.
26833         (cortexa57_extra_costs): Likewise.
26834         (xgene1_extra_costs): Likewise.
26835         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
26836         rtx_costs.
26837
26838 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
26839
26840         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
26841          storev.
26842         (cortexa8_extra_costs): Likewise.
26843         (cortexa5_extra_costs): Likewise.
26844         (cortexa7_extra_costs): Likewise.
26845         (cortexa12_extra_costs): Likewise.
26846         (cortexa15_extra_costs): Likewise.
26847         (v7m_extra_costs): Likewise.
26848
26849 2015-05-20  Jeff Law  <law@redhat.com>
26850
26851         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
26852         instead of open-coded version.  Also delete the jump thread created
26853         within this function.
26854
26855 2015-05-20  Alan Modra  <amodra@gmail.com>
26856
26857         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
26858         stack adjusting insn.  Formatting.
26859         (rs6000_emit_prologue): Track stack adjusting insn, and use of
26860         r12.  If possible, emit first -fsplit-stack arg pointer insn
26861         before stack adjust.  Don't use r12 to save cr if split-stack.
26862
26863 2015-05-20  Alan Modra  <amodra@gmail.com>
26864
26865         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
26866         Define.
26867         (rs6000_supports_split_stack): New function.
26868         * config/rs6000/rs6000.c (machine_function): Add
26869         split_stack_arg_pointer.
26870         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
26871         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
26872         rather than virtual_incoming_args_rtx.
26873         (rs6000_va_start): Likewise.
26874         (split_stack_arg_pointer_used_p): New function.
26875         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
26876         (morestack_ref): New var.
26877         (gen_add3_const, rs6000_expand_split_stack_prologue,
26878         rs6000_internal_arg_pointer, rs6000_live_on_entry,
26879         rs6000_split_stack_space_check): New functions.
26880         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
26881         * config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
26882         (UNSPECV_SPLIT_STACK_RETURN): Define.
26883         (split_stack_prologue, load_split_stack_limit,
26884         load_split_stack_limit_di, load_split_stack_limit_si,
26885         split_stack_return, split_stack_space_check): New expands and insns.
26886         * config/rs6000/rs6000-protos.h
26887         (rs6000_expand_split_stack_prologue): Declare.
26888         (rs6000_split_stack_space_check): Declare.
26889
26890 2015-05-20  Alan Modra  <amodra@gmail.com>
26891
26892         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
26893         (direct_return): Test vrsave_size rather than vrsave_mask.
26894         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
26895         (rs6000_emit_epilogue): Likewise.
26896
26897 2015-05-20  Alan Modra  <amodra@gmail.com>
26898
26899         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
26900         when not saving registers.
26901         (debug_stack_info): Adjust to omit printing unused offsets,
26902         as before.
26903         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
26904         expression.
26905
26906 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26907
26908         PR c++/65835
26909         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
26910         value_type to const char *.
26911
26912 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
26913
26914         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
26915         to build a biarch toolchain again.
26916
26917 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
26918
26919         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
26920         or implicit declarations.
26921         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
26922         into it.
26923         (get_odr_type): Check type has linkage before adding bases.
26924         (register_odr_type): Check that type has linkage before adding it.
26925         (type_known_to_have_no_deriavations_p): Rename to ..
26926         (type_known_to_have_no_derivations_p): This one.
26927         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
26928         (type_known_to_have_no_derivations_p): This one.
26929         * ipa-polymorphic-call.c
26930         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
26931         type has linkage.
26932
26933 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
26934
26935         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
26936         (layout_type): Use RECORD_OR_UNION_TYPE_P.
26937
26938 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26939
26940         * config/s390/s390.c (s390_vector_bool_type_p): New function.
26941         (s390_invalid_binary_op): New function.
26942         (TARGET_INVALID_BINARY_OP): Define macro.
26943
26944 2015-05-19  David Sherwood  <david.sherwood@arm.com>
26945
26946         * loop-invariant.c (create_new_invariant): Don't calculate address cost
26947         if mode is not a scalar integer.
26948         (get_inv_cost): Increase computational cost for unused invariants.
26949
26950 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26951
26952         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
26953         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
26954         * config/s390/s390-builtin-types.def: New file.
26955         * config/s390/s390-builtins.def: New file.
26956         * config/s390/s390-builtins.h: New file.
26957         * config/s390/s390-c.c: New file.
26958         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
26959         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
26960         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
26961         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
26962         prototypes.
26963         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
26964         Include.
26965         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
26966         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
26967         variable definitions.
26968         (s390_const_operand_ok): New function.
26969         (s390_expand_builtin): Rewrite.
26970         (s390_init_builtins): New function.
26971         (s390_handle_vectorbool_attribute): New function.
26972         (s390_attribute_table): Add s390_vector_bool attribute.
26973         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
26974         (s390_branch_condition_mask): Generate masks for new modes.
26975         (s390_expand_vec_compare_cc): New function.
26976         (s390_mangle_type): Add mangling for vector bool types.
26977         (enum s390_builtin): Remove.
26978         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
26979         efpc builtins.
26980         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
26981         s390_cpu_cpp_builtins.
26982         (REGISTER_TARGET_PRAGMAS): New macro.
26983         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
26984         (insn_cmp mode attribute): Add new CC modes.
26985         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
26986         (lcbb): New pattern definition.
26987         * config/s390/s390intrin.h: Include vecintrin.h.
26988         * config/s390/t-s390: New file.
26989         * config/s390/vecintrin.h: New file.
26990         * config/s390/vector.md: Include vx-builtins.md.
26991         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
26992         support.
26993
26994 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26995
26996         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
26997         CCVFHE.
26998         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
26999         (s390_select_ccmode): Likewise.
27000         (s390_canonicalize_comparison): Swap operands if necessary.
27001         (s390_expand_vec_compare_scalar): Expand DFmode compare using
27002         single element vector instructions.
27003         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
27004         (s390_branch_condition_mask): Generate CC masks for the new modes.
27005         * config/s390/s390.md (v0, vf, vd): New mode attributes.
27006         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
27007         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
27008         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
27009         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
27010         (*extend<DSF:mode><BFP:mode>2): New insn definition.
27011         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
27012         (extend<DSF:mode><BFP:mode>2): Turn into expander.
27013         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
27014         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
27015         (sqrt<mode>2): Add vector instruction.
27016
27017 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27018
27019         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
27020         constraints.
27021         * config/s390/predicates.md (const0_operand, constm1_operand)
27022         (constable_operand): Accept vector operands.
27023         * config/s390/s390-modes.def: Add supported vector modes.
27024         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
27025         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
27026         (s390_bytemask_vector_p, s390_expand_vec_strlen)
27027         (s390_expand_vec_compare, s390_expand_vcond)
27028         (s390_expand_vec_init): Add prototypes.
27029         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
27030         (s390_vector_mode_supported_p): New function.
27031         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
27032         (s390_contiguous_bitmask_vector_p): New function.
27033         (s390_bytemask_vector_p): New function.
27034         (s390_split_ok_p): Vector regs don't work either.
27035         (regclass_map): Add VEC_REGS.
27036         (s390_legitimate_constant_p): Handle vector constants.
27037         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
27038         (legitimate_reload_vector_constant_p): New function.
27039         (s390_preferred_reload_class): Handle CONST_VECTOR.
27040         (s390_reload_symref_address):  Likewise.
27041         (s390_secondary_reload): Vector memory instructions only support
27042         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
27043         (s390_emit_ccraw_jump): New function.
27044         (s390_expand_vec_strlen): New function.
27045         (s390_expand_vec_compare): New function.
27046         (s390_expand_vcond): New function.
27047         (s390_expand_vec_init): New function.
27048         (s390_dwarf_frame_reg_mode): New function.
27049         (print_operand): Handle addresses with 'O' and 'R' constraints.
27050         (NR_C_MODES, constant_modes): Add vector modes.
27051         (s390_output_pool_entry): Handle vector constants.
27052         (s390_hard_regno_mode_ok): Handle vector registers.
27053         (s390_class_max_nregs): Likewise.
27054         (s390_cannot_change_mode_class): New function.
27055         (s390_invalid_arg_for_unprototyped_fn): New function.
27056         (s390_function_arg_vector): New function.
27057         (s390_function_arg_float): Remove size variable.
27058         (s390_pass_by_reference): Handle vector arguments.
27059         (s390_function_arg_advance): Likewise.
27060         (s390_function_arg): Likewise.
27061         (s390_return_in_memory): Vector values are returned in a VR if
27062         possible.
27063         (s390_function_and_libcall_value): Handle vector arguments.
27064         (s390_gimplify_va_arg): Likewise.
27065         (s390_call_saved_register_used): Consider the arguments named.
27066         (s390_conditional_register_usage): Disable v16-v31 for non-vec
27067         targets.
27068         (s390_preferred_simd_mode): New function.
27069         (s390_support_vector_misalignment): New function.
27070         (s390_vector_alignment): New function.
27071         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
27072         (TARGET_VECTOR_MODE_SUPPORTED_P)
27073         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
27074         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
27075         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
27076         (TARGET_VECTOR_ALIGNMENT): Define target macro.
27077         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
27078         (FIRST_PSEUDO_REGISTER): Increase value.
27079         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
27080         (VECTOR_REG_P): Define macros.
27081         (FIXED_REGISTERS, CALL_USED_REGISTERS)
27082         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
27083         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
27084         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
27085         Add vector registers.
27086         (CANNOT_CHANGE_MODE_CLASS): Call C function.
27087         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
27088         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
27089         memory.
27090         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
27091         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
27092         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
27093         (VR*_REGNUM): New constants.
27094         (ALL): New mode iterator.
27095         (INTALL): Remove mode iterator.
27096         Include vector.md.
27097         (movti): Implement TImode moves for VRs.
27098         Disable TImode splitter for VR targets.
27099         Implement splitting TImode GPR<->VR moves.
27100         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
27101         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
27102         reload<mode>_la_in, reload<mode>_la_out.
27103         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
27104         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
27105         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
27106         (mov<mode> SF SD): Prefer lder, lde for loading.
27107         Add lrl and strl instructions.
27108         Add vector instructions.
27109         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
27110         Call s390_expand_vec_strlen on z13.
27111         (*cc_to_int): Change predicate to nonimmediate_operand.
27112         (addti3): Rename to *addti3.  New expander.
27113         (subti3): Rename to *subti3.  New expander.
27114         * config/s390/vector.md: New file.
27115
27116 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27117
27118         * common/config/s390/s390-common.c (processor_flags_table): Add
27119         z13.
27120         * config.gcc: Add z13.
27121         * config/s390/s390-opts.h (enum processor_type): Add
27122         PROCESSOR_2964_Z13.
27123         * config/s390/s390.c (s390_adjust_priority): Check for
27124         PROCESSOR_2964_Z13.
27125         (s390_reorg): Likewise.
27126         (s390_sched_reorder): Likewise.
27127         (s390_sched_variable_issue): Likewise.
27128         (s390_loop_unroll_adjust): Likewise.
27129         (s390_option_override): Likewise. Default to -mvx when available.
27130         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
27131         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
27132         (TARGET_VX_ABI): Define macros.
27133         macros.
27134         (TARGET_DEFAULT): Add MASK_OPT_VX.
27135         * config/s390/s390.md ("cpu" attribute): Add z13.
27136         ("cpu_facility" attribute): Add vec.
27137         * config/s390/s390.opt (processor_type): Add z13.
27138         (mvx): New options.
27139         * doc/invoke.texi: Add z13 option for -march.
27140
27141 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27142
27143         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
27144         mode check to make sure that only scalar integer values are
27145         accepted.
27146
27147 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
27148
27149         * tree.c (verify_type_variant): Fix #undef.
27150         (gimple_canonical_types_compatible_p): Move here from lto.c
27151         (verify_type): Verify TYPE_CANONICAL compatibility.
27152         * tree.h (gimple_canonical_types_compatible_p): Declare.
27153
27154 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
27155
27156         PR middle-end/66199
27157         * tree.h (OMP_TEAMS_COMBINED): Define.
27158         * gimplify.c (enum gimplify_omp_var_data): Add
27159         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
27160         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
27161         (omp_notice_variable): Accept both ORT_TEAMS
27162         and ORT_COMBINED_TEAMS.  Don't recurse if
27163         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
27164         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
27165         GOVD_FIRSTPRIVATE.
27166         (omp_no_lastprivate): New function.
27167         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
27168         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
27169         notice_outer and set appropriate bits, otherwise make
27170         sure default(none) combined constructs won't complain.
27171         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
27172         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
27173         omp_no_lastprivate either remove the clause or turn it
27174         into OMP_CLAUSE_PRIVATE.
27175         (gimplify_omp_for): Fix up handling of implicit
27176         lastprivate or linear iterators.
27177         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
27178         ORT_COMBINED_TEAMS.
27179         * omp-low.c (lower_omp_for_lastprivate): For combined
27180         for simd use fd.loop.n2 from the for rather than simd.
27181
27182 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
27183
27184         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
27185         instead of gen_rtx_raw_REG.
27186         (cris_expand_epilogue): Likewise.
27187         * config/microblaze/microblaze.c (microblaze_classify_address):
27188         Likewise.
27189         * config/sparc/sparc.md: Likewise.
27190
27191 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
27192
27193         * config/alpha/alpha.c (alpha_legitimize_reload_address)
27194         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
27195         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
27196         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
27197         Use CASE_CONST_SCALAR_INT.
27198         (print_operand) <case 'M'>: Use mode_width_operand to check the
27199         value of the constant.
27200         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
27201         * config/alpha/predicates.md (input_operand): Use general_operand
27202         instead of match_code as operand check.
27203         (symbolic_operand): Use match_code with subexpression digits.
27204         * config/alpha/constraints.md (Q): Ditto.
27205
27206 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27207
27208         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
27209
27210 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27211
27212         * config/s390/s390.c (s390_secondary_reload): Fix check for
27213         load/store relative.
27214
27215 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27216
27217         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
27218         alternative_mask to uint64_t.
27219
27220 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
27221
27222         PR tree-optimization/66187
27223         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
27224         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
27225         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
27226
27227 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
27228
27229         * diagnostic.c (diagnostic_report_current_module): Strengthen
27230         local "new_map" from const line_map * to
27231         const line_map_ordinary *.
27232         * genmatch.c (error_cb): Likewise for local "map".
27233         (output_line_directive): Likewise for local "map".
27234         * input.c (expand_location_1): Likewise for local "map".
27235         Pass NULL rather than &map to
27236         linemap_unwind_to_first_non_reserved_loc, since the value is never
27237         read from there, and the value written back not read from here.
27238         (is_location_from_builtin_token): Strengthen local "map" from
27239         const line_map * to const line_map_ordinary *.
27240         (dump_location_info): Strengthen locals "map" from
27241         line_map *, one to const line_map_ordinary *, the other
27242         to const line_map_macro *.
27243         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
27244         const line_map * to const line_map_macro *.
27245         (maybe_unwind_expanded_macro_loc): Add a call to
27246         linemap_check_macro when writing to the "map" field of the
27247         loc_map_pair.
27248         Introduce local const line_map_ordinary * "ord_map", using it in
27249         place of "map" in the part of the function where we know we have
27250         an ordinary map.  Strengthen local "m" from const line_map * to
27251         const line_map_ordinary *.
27252
27253 2015-05-19  Nick Clifton  <nickc@redhat.com>
27254
27255         PR target/66156
27256         * config/msp430/msp430.md (zero_extendhisi2): Add support for
27257         separate source and destination registers.
27258
27259 2015-05-19  Richard Biener  <rguenther@suse.de>
27260
27261         PR tree-optimization/66165
27262         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
27263         for no load permutation.
27264
27265         PR tree-optimization/66185
27266         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
27267         when building the SLP node from scalars.
27268
27269 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
27270             Tristan Gingold  <gingold@adacore.com>
27271
27272         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
27273         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
27274         (expand_stack_restore): Call record_new_stack_level.
27275         (expand_stack_save): Do not call do_pending_stack_adjust.
27276         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
27277         * calls.c (expand_call): Call record_new_stack_level for alloca.
27278         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
27279         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
27280         (update_sjlj_context): New global function.
27281         * except.h (update_sjlj_context): Declare.
27282         * explow.c (record_new_stack_level): New global function.
27283         (allocate_dynamic_stack_space): Call record_new_stack_level.
27284         * explow.h (record_new_stack_level): Declare.
27285         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
27286         * cfgrtl.c (duplicate_insn_chain): Likewise.
27287
27288 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27289
27290         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
27291         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
27292         STACK_GROWS_DOWNWARD as normal if.
27293         (expand_call): Likewise.
27294
27295 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
27296
27297         PR target/54236
27298         * config/sh/sh.md (*round_int_even): New insn_and_split and
27299         accompanying new unnamed split.
27300
27301 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
27302
27303         * bitmap.c (bitmap_set_range): Handle count==1 specially.
27304         (bitmap_clear_range): Likewise.
27305         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
27306         bitmap_set_range unconditionally.
27307         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
27308         * df-scan.c (df_mark_reg): Likewise.
27309         * haifa-sched.c (setup_ref_regs): Likewise.
27310         * sched-rgn.c (update_live_1): Likewise.
27311
27312 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
27313
27314         * regs.h (END_HARD_REGNO): Delete.
27315         (END_REGNO): Move to...
27316         * rtl.h: ...here.
27317         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
27318         * caller-save.c (mark_set_regs): Likewise.
27319         * combine.c (move_deaths, distribute_notes): Likewise.
27320         * cse.c (invalidate, invalidate_for_call): Likewise.
27321         * df-scan.c (df_ref_record): Likewise.
27322         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
27323         (record_last_reg_set_info): Likewise.
27324         * reg-stack.c (convert_regs_exit): Likewise.
27325         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
27326         * resource.c (update_live_status): Likewise.
27327         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
27328
27329 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
27330
27331         * rtl.h (reg_info): Add an nregs field.
27332         (REG_NREGS): Use it.
27333         (SET_REGNO_RAW): Delete.
27334         (set_regno_raw): New function.
27335         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
27336         (END_REGNO): Redefine in terms of REG_NREGS.
27337         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
27338         SET_REGNO_RAW.
27339         * emit-rtl.c (set_mode_and_regno): Likewise.
27340         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
27341         instead of SET_REGNO_RAW.
27342
27343 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
27344
27345         * rtl.h (PUT_MODE_RAW): New macro.
27346         (PUT_REG_NOTE_KIND): Use it.
27347         (set_mode_and_regno): Declare.
27348         (gen_raw_REG): Change regno to "unsigned int".
27349         (gen_rtx_REG): Change "unsigned" to "unsigned int".
27350         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
27351         use set_mode_and_regno to change the mode of registers.
27352         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
27353         * emit-rtl.c (set_mode_and_regno): New function.
27354         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
27355         * caller-save.c (reg_save_code): Use set_mode_and_regno.
27356         * expr.c (init_expr_target): Likewise.
27357         * ira.c (setup_prohibited_mode_move_regs): Likewise.
27358         * postreload.c (reload_cse_simplify_operands): Likewise.
27359
27360 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
27361
27362         * caller-save.c (init_caller_save): Use word_mode and
27363         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
27364         * expr.c (init_expr_target): Likewise.
27365         * ira.c (setup_prohibited_mode_move_regs): Likewise.
27366         * postreload.c (reload_cse_regs_1): Likewise.
27367
27368 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
27369
27370         * rtl.def (REG): Change format to "r".
27371         * rtl.h (rtunion): Remove rt_reg.
27372         (reg_info): New structure.
27373         (rtx_def): Add reg field to main union.
27374         (X0REGATTR): Delete.
27375         (REG_CHECK): New macro.
27376         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
27377         * rtl.c (rtx_format): Document "r".
27378         (rtx_code_size): Handle REG specially.
27379         * gengenrtl.c (special_format): Return true for formats
27380         that include 'r'.
27381         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
27382         Deal with REG_ATTRS after the field loop.
27383         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
27384         * expmed.c (init_expmed): Call gen_raw_REG instead of
27385         gen_rtx_raw_REG.
27386         * expr.c (init_expr_target): Likewise.
27387         * regcprop.c (maybe_mode_change): Likewise.
27388         * varasm.c (make_decl_rtl): Likewise.
27389         * final.c (leaf_renumber_regs_insn): Return early after
27390         handling REGs.
27391         * genemit.c (gen_exp): Handle 'r' fields.
27392         * genpeep.c (match_rtx): Likewise.
27393         * gensupport.c (subst_pattern_match): Likewise.
27394         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
27395         (alter_constraints, subst_dup): Likewise.
27396         * read-rtl.c (read_rtx_code): Likewise.
27397         * print-rtl.c (print_rtx): Likewise.
27398         * genrecog.c (find_operand, find_matching_operand): Likewise.
27399         (validate_pattern, match_pattern_2): Likewise.
27400         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
27401         (rtx_test::regno_field): New function.
27402         (operator ==, safe_to_hoist_p, transition_parameter_type)
27403         (parameter_type_string, print_parameter_value)
27404         (print_nonbool_test, print_test): Handle new enum values.
27405         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
27406         * lra-constraints.c (operands_match_p): Likewise.
27407
27408 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
27409
27410         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
27411         Change type of new_regno to unsigned int.
27412         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
27413         new_regno to unsigned int.
27414         (df_ref_change_reg_with_loc): Remove old_regno parameter.
27415         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
27416         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
27417         (SET_REGNO_RAW): Add space after ",".
27418
27419 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
27420
27421         * rtl.h (REG_NREGS): New macro
27422         * alias.c (record_set): Use it.
27423         * cfgcleanup.c (mark_effect): Likewise.
27424         * combine.c (likely_spilled_retval_1): Likewise.
27425         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
27426         (move_deaths, distribute_notes): Likewise.
27427         * cselib.c (cselib_record_set): Likewise.
27428         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
27429         * df-scan.c (df_mark_reg): Likewise.
27430         * dse.c (look_for_hardregs): Likewise.
27431         * dwarf2out.c (reg_loc_descriptor): Likewise.
27432         (multiple_reg_loc_descriptor): Likewise.
27433         * expr.c (write_complex_part, read_complex_part): Likewise.
27434         (emit_move_complex): Likewise.
27435         * haifa-sched.c (setup_ref_regs): Likewise.
27436         * ira-lives.c (mark_hard_reg_live): Likewise.
27437         * lra.c (lra_set_insn_recog_data): Likewise.
27438         * mode-switching.c (create_pre_exit): Likewise.
27439         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
27440         (reload_combine_recognize_pattern): Likewise.
27441         (reload_combine_note_use, move2add_record_mode): Likewise.
27442         (reload_cse_move2add): Likewise.
27443         * reg-stack.c (subst_stack_regs_pat): Likewise.
27444         * regcprop.c (kill_value, copy_value): Likewise.
27445         (copyprop_hardreg_forward_1): Likewise.
27446         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
27447         (build_def_use): Likewise.
27448         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
27449         (deps_analyze_insn): Likewise.
27450         * sched-rgn.c (check_live_1, update_live_1): Likewise.
27451         * sel-sched.c (count_occurrences_equiv): Likewise.
27452         * valtrack.c (dead_debug_insert_temp): Likewise.
27453
27454 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
27455
27456         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
27457         * dse.c (note_add_store): Likewise.
27458         * ira-lives.c (mark_hard_reg_dead): Likewise.
27459         * loop-invariant.c (mark_reg_store): Likewise.
27460         (mark_reg_death): Likewise.
27461         * postreload.c (reload_combine): Likewise.
27462         (reload_combine_note_store): Likewise.
27463         (reload_combine_note_use): Likewise.
27464         * recog.c (peep2_reg_dead_p): Likewise.
27465
27466 2015-05-19  Alan Modra  <amodra@gmail.com>
27467
27468         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
27469         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
27470         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
27471         unused predicates.
27472         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
27473         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
27474         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
27475         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
27476
27477 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
27478
27479         * config/mips/mips.md (JOIN_MODE): New mode iterator.
27480         (join2_load_Store<JOIN_MODE:mode>): New pattern.
27481         (join2_loadhi): Likewise.
27482         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
27483         load-load and store-stores.
27484         * config/mips/mips.opt (mload-store-pairs): New option.
27485         (TARGET_LOAD_STORE_PAIRS): New macro.
27486         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
27487         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
27488         * config/mips/mips.c (mips_load_store_bonding_p): New function.
27489
27490 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
27491
27492         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
27493         explicit swaps.
27494         * dojump.c (do_compare_rtx_and_jump): Likewise.
27495         * expmed.c (emit_store_flag_1): Likewise.
27496         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
27497         * final.c (sprint_ul): Use std::reverse for reversing a string.
27498         * fold-const.c (extract_muldiv_1): Use std::swap.
27499         * genmodes.c (emit_mode_int_n): Likewise.
27500         * ifcvt.c (dead_or_predicable): Likewise.
27501         * ira-build.c (ira_merge_live_ranges): Likewise.
27502         (swap_allocno_copy_ends_if_necessary): Likewise.
27503         * ira.c (ira_setup_alts): Likewise.
27504         * loop-iv.c (iv_analyze_expr): Likewise.
27505         (implies_p): Likewise.
27506         (canon_condition): Likewise.
27507         * lra-constraints.c (swap_operands): Likewise.
27508         * lra-lives.c (lra_merge_live_ranges): Likewise.
27509         * omega.c (swap): Remove.
27510         (bswap): Remove.
27511         (omega_unprotect_1): Use std::swap.
27512         (omega_solve_geq): Likewise.
27513         * optabs.c (expand_binop_directly): Likewise.
27514         (expand_binop): Likewise.
27515         (emit_conditional_move): Likewise.
27516         (emit_conditional_add): Likewise.
27517         * postreload.c (reload_cse_simplify_operands): Likewise.
27518         * reg-stack.c (emit_swap_insn): Likewise.
27519         (swap_to_top): Likewise.
27520         (compare_for_stack_reg): Likewise.
27521         (subst_asm_stack_regs): Likewise.
27522         * reload.c (find_reloads): Likewise.
27523         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
27524         * sel-sched.c (invoke_reorder_hooks): Likewise.
27525         (create_block_for_bookkeeping): Likewise.
27526         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
27527         (lambda_matrix_right_hermite): Use std::swap.
27528         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
27529         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
27530         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
27531         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
27532         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
27533         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
27534         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
27535         * tree-vrp.c (compare_ranges): Likewise.
27536         * var-tracking.c (add_with_sets): Likewise.
27537         (vt_find_locations): Likewise.
27538
27539 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
27540
27541         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
27542         pie executables.
27543         (FBSD_ENDFILE_SPEC): Likewise.
27544         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
27545         config/freebsd-spec.h.
27546         (ENDFILE_SPEC): Likewise.
27547
27548 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
27549             Richard Henderson  <rth@redhat.com>
27550
27551         PR target/57032
27552         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
27553         Check for a memory location that is not a reference (using an AND)
27554         to an unaligned location here.
27555         * config/alpha/predicates.md (normal_memory_operand): Remove.
27556
27557 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
27558
27559         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
27560         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
27561
27562 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
27563
27564         * config/mips/mips.c (micromips_globals): New variable.
27565         (mips_set_compression_mode): Save and reinitialize target-dependent
27566         state for microMIPS.
27567
27568 2015-05-18  Martin Liska  <mliska@suse.cz>
27569
27570         * dbgcnt.def: Add new counter.
27571         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
27572
27573 2015-05-18  Martin Liska  <mliska@suse.cz>
27574
27575         * dbgcnt.def: Sort counters.
27576         * opts.c (common_handle_option): Do not compile if
27577         -fdbg-cnt-list is enabled.
27578
27579 2015-05-18  Tom de Vries  <tom@codesourcery.com>
27580
27581         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
27582         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
27583         address operator to va_list operand.
27584         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
27585         unconditionally.
27586         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
27587         operand.
27588         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
27589         * config/s390/s390.c (s390_gimplify_va_arg): Same.
27590         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
27591
27592 2015-05-18  Tom de Vries  <tom@codesourcery.com>
27593
27594         * tree-ssa-tail-merge.c: Fix whitespace.
27595
27596 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
27597
27598         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
27599         cortex-a17, and cortex-a17.cortex-a7.
27600
27601 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
27602
27603         PR target/54236
27604         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
27605
27606 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
27607
27608         PR target/66174
27609         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
27610         QImode inner modes for TARGET_AVX512BW.  Force mask operand
27611         to a register for AVX512F modes.
27612
27613 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
27614
27615         * toplev.c (emit_debug_global_declarations): Do not output debug info
27616         when doing slim LTO objects.
27617
27618 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
27619
27620         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
27621         odr_types_equivalent_p): Declare.
27622         (odr_type_p): Use gcc_checking_assert.
27623         (type_in_anonymous_namespace_p) Declare.
27624         (type_with_linkage_p): Declare.
27625         * common.opt (Wlto-type-mismatch): New warning.
27626         * ipa-devirt.c (compound_type_base): New function.
27627         (odr_or_derived_type_p): New function.
27628         (odr_types_equivalent_p): New function.
27629         (add_type_duplicate): Simplify.
27630         (type_with_linkage_p): Add hack to prevent false positives on C types
27631         (type_in_anonymous_namespace_p): Likewise.
27632         * tree.c (need_assembler_name_p): Use type_with_linkage.
27633         * tree.h (type_in_anonymous_namespace_p): Remove.
27634         * doc/invoke.texi (-Wlto-type-mismatch): Document
27635
27636 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
27637
27638         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
27639         (verify_type): Verify STRING_FLAG.
27640
27641 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27642
27643         PR fortran/44054
27644         * tree-pretty-print.c (percent_K_format): Replace locus pointer
27645         with accessor function.
27646         * tree-diagnostic.c (diagnostic_report_current_function): Use
27647         diagnostic_location function.
27648         (maybe_unwind_expanded_macro_loc): Likewise.
27649         (virt_loc_aware_diagnostic_finalizer): Likewise.
27650         (default_tree_printer): Replace locus pointer with accessor function.
27651         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
27652         (diagnostic_set_info_translated): Initialize second location.
27653         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
27654         (diagnostic_show_locus): Handle two locations. Call
27655         diagnostic_print_caret_line.
27656         (diagnostic_print_caret_line): New.
27657         (default_diagnostic_starter): Use diagnostic_location function.
27658         (diagnostic_report_diagnostic): Use diagnostic_location function.
27659         (verbatim): Do not set text.locus.
27660         * diagnostic.h (struct diagnostic_info): Remove location field.
27661         (struct diagnostic_context): Make caret_chars an array of two.
27662         (diagnostic_location): New inline.
27663         (diagnostic_expand_location): Handle two locations.
27664         (diagnostic_same_line): New inline.
27665         (diagnostic_print_caret_line): Declare.
27666         (CARET_LINE_MARGIN): New constant.
27667         * pretty-print.c (pp_printf): Do not set text.locus.
27668         (pp_verbatim): Do not set text.locus.
27669         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
27670         (struct text_info): Replace locus pointer with locations
27671         array. Add accessor functions.
27672
27673 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
27674             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
27675
27676         PR target/65768
27677         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
27678         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
27679          large constants in register instead of splitting them.
27680
27681 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
27682
27683         PR target/66140
27684         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
27685         replacements in memory addresses.
27686         (get_unaligned_address): Ditto.
27687
27688 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
27689
27690         * config/ft32/*: New files for FT32 port.
27691         * doc/install.texi: Add FT32 information.
27692         * doc/invoke.texi: Add FT32 information.
27693         * doc/md.texi: Add FT32 information.
27694         * doc/contrib.texi: Self added.
27695
27696 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
27697
27698         PR tree-optimization/64454
27699         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
27700         (-1 - A -> ~A): Remove unnecessary condition.
27701
27702 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
27703
27704         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
27705         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
27706         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
27707
27708 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
27709
27710         * ipa-chkp.h (chkp_wrap_function): New.
27711         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
27712         (chkp_wrap_function_name): New.
27713         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
27714         to get wrapper name.
27715         * lto-cgraph.c: Include ipa-chkp.h.
27716         (input_cgraph_1): Avoid alias chain for wrappers.
27717
27718 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
27719
27720         PR middle-end/66134
27721         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
27722         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
27723
27724 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27725
27726         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
27727         (AARCH64_FL_SLOWMUL): Delete.
27728         (AARCH64_FL_CRC): Redefine to 1<<3.
27729         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
27730
27731 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27732
27733         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
27734         casting.
27735
27736 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
27737
27738         * config/alpha/alpha.md (extendqidi2): Use general_operand
27739         instead of some_operand for operand[1] predicate.
27740         (extendhidi2): Ditto.
27741         (cbranchdi4): Use general_operand instead of some_operand
27742         for operand[1] and operands[2] predicates.
27743         (cstoredi4): Ditto.
27744         * config/alpha/predicates.md (some_operand): Remove unused predicate.
27745         (some_ni_operand): Ditto.
27746
27747 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
27748
27749         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
27750         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
27751         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
27752         low part of the constant using alpha_emit_set_const_1.
27753         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
27754
27755 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
27756
27757         * varasm.c (output_constant_pool_1): Pass down alignment from
27758         constant pool entry's descriptor to output_constant_pool_2.
27759         (output_object_block): Add comment prior to call to
27760         output_constant_pool_1.
27761
27762 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
27763
27764         PR rtl-optimization/65862
27765         * target.def (ira_change_pseudo_allocno_class): New hook.
27766         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
27767         value of the hook.
27768         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
27769         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
27770         hook.
27771         * ira-costs.c (find_costs_and_classes): Call the hook and change
27772         classes when it is necessary.
27773         * doc/tm.texi: Update.
27774
27775 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
27776
27777         * config/i386/i386.md (sibcall_memory): Check that register with
27778         callee address is not also used as one of the arguments, instead
27779         of checking that it is not live after the sibcall.
27780         (sibcall_pop_memory): Ditto.
27781         (sibcall_value_memory): Ditto.
27782         (sibcall_value_pop_memory): Ditto.
27783
27784 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
27785
27786         * generic-match-head.c (types_match): Handle non-types.
27787         * gimple-match-head.c (types_match): Likewise.
27788         * match.pd: Remove unnecessary TREE_TYPE for types_match.
27789
27790 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
27791
27792         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
27793         (csneg3<mode>_insn): Enable expansion of pattern.
27794
27795 2015-05-14  Nick Clifton  <nickc@redhat.com>
27796
27797         * config/rl78/rl78.c (rl78_select_section): Select the correct
27798         default section based upon the category of the decl.
27799
27800 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
27801
27802         PR rtl-optimization/30967
27803         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
27804         destination mode for the cost of scc patterns.
27805
27806 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
27807
27808         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
27809         using SWIM248 mode iterator.
27810         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
27811         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
27812         for operand[2] constraint.
27813         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
27814
27815 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
27816
27817         PR middle-end/66133
27818         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
27819         make sure it is never noreturn, even when the task body does not
27820         return.
27821         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
27822         right before GIMPLE_OMP_RETURN.
27823         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
27824         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
27825         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
27826
27827 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27828
27829         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
27830         * tree-ssa-math-opts.c: Include params.h
27831         (pow_synth_sqrt_info): New struct.
27832         (representable_as_half_series_p): New function.
27833         (get_fn_chain): Likewise.
27834         (print_nested_fn): Likewise.
27835         (dump_fractional_sqrt_sequence): Likewise.
27836         (dump_integer_part): Likewise.
27837         (expand_pow_as_sqrts): Likewise.
27838         (gimple_expand_builtin_pow): Use above to attempt to expand
27839         pow as series of square roots.  Removed now unused variables.
27840
27841 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
27842
27843         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
27844         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
27845         Remove *p0 and *p1 arguments.  Rewrite function.
27846         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
27847         (alpha_split_const_mov): Update calls to alpha_extract_integer and
27848         alpha_emit_set_long_const.
27849         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
27850         (alpha_output_mi_thunk_osf): Ditto.
27851         * config/alpha/alpha.md (movti): Do not check operands[1]
27852         for CONST_DOUBLE.
27853
27854 2015-05-13  Richard Biener  <rguenther@suse.de>
27855
27856         PR tree-optimization/66129
27857         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
27858         commutative.
27859         (vect_schedule_slp_instance): Fix typo.
27860
27861 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
27862
27863         * common.opt (fdump-internal-locations): New option.
27864         * input.c: Include diagnostic-core.h.
27865         (get_end_location): New function.
27866         (write_digit): New function.
27867         (write_digit_row): New function.
27868         (dump_location_range): New function.
27869         (dump_labelled_location_range): New function.
27870         (dump_location_info): New function.
27871         * input.h (dump_location_info): New prototype.
27872         * toplev.c (compile_file): Handle flag_dump_locations.
27873
27874 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
27875
27876         * gimple-expr.h (is_gimple_constant): Reorder.
27877         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
27878
27879 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
27880
27881         * combine.c (simplify_set): When generating a CC set, if the
27882         source already is in the correct mode, do not wrap it in a
27883         compare.  Simplify the rest of that code.
27884
27885 2015-05-13  Richard Biener  <rguenther@suse.de>
27886
27887         PR tree-optimization/66123
27888         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
27889         a taken edge.
27890
27891 2015-05-13  Richard Biener  <rguenther@suse.de>
27892
27893         PR middle-end/66110
27894         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
27895         specially.
27896         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
27897
27898 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
27899
27900         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
27901         * aclocal.m4: Regenerated with automake-1.11.6.
27902
27903 2015-05-13  Tom de Vries  <tom@codesourcery.com>
27904
27905         PR tree-optimization/66010
27906         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
27907         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
27908         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
27909         and rval based on do_deref.
27910
27911 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
27912
27913         PR target/65103
27914         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
27915         link time constants into adress expressions and therefore set
27916         their cost to 0.
27917
27918 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
27919
27920         PR target/66112
27921         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
27922         Use SWI248 iterator instead of SWI.
27923         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
27924         Use eq_attr "alternative" "0" instead of match_test in
27925         length_immediate attribute computation.
27926         (*mulvhi4, *mulvhi4_1): New define_insns.
27927
27928         PR target/66112
27929         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
27930         SIGNED to get precision of non-negative value.
27931
27932 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
27933
27934         PR target/66048
27935         * function.c (diddle_return_value_1): Process bounds first.
27936         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
27937         register.
27938
27939 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27940
27941         PR rtl-optimization/64616
27942         * loop-invariant.c (can_move_invariant_reg): New.
27943         (move_invariant_reg): Call above new function to decide whether
27944         instruction can just be moved, skipping creation of temporary
27945         register.
27946
27947 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
27948
27949         PR target/pr66047.c
27950         * i386.c (ix86_function_sseregparm): Only return -1 if local function
27951         with implied regparm is called from -mno-sse function.
27952         (init_cumulative_args): Output error if ix86_function_sseregparm
27953         return -1 and SSE register would be needed.
27954         (function_arg_advance_32): Likewise.
27955         (function_arg_32): Likewise.
27956         * i386.h (ix86_args): Add decl field.
27957
27958 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
27959
27960         PR ipa/65873
27961         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
27962         inlines across optimization boundary.
27963
27964 2015-05-12  Jason Merrill  <jason@redhat.com>
27965
27966         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
27967         string literal and macro name.
27968
27969 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
27970
27971         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
27972         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
27973         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
27974
27975 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
27976
27977         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
27978         (-Wmisleading-indentation): New option.
27979         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
27980
27981 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
27982
27983         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
27984         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
27985         (alpha_extract_integer): Ditto.
27986         (alpha_legitimate_constant_p): Ditto.
27987         (alpha_split_tmode_pair): Ditto.
27988         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
27989         (alpha_expand_mov): Ditto.
27990         (print_operand): Remove handling of 'H' modifier.
27991         <case 'm'>: Remove CONST_DOUBLE handling.
27992         (summarize_insn): Handle CONST_WIDE_INT.
27993         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
27994         (anddi3): Ditto.
27995         (movti): Handle CONST_WIDE_INT.
27996         * config/alpha/constraints.md ('H'): Remove constraint definition.
27997         ('G'): Do not match MODE_FLOAT class.
27998         * config/alpha/predicates.md (const0_operand): Also match
27999         const_wide_int.
28000         (non_add_const_operand): Ditto.
28001         (non_zero_const_operand): Ditto.
28002         (some_operand): Ditto.
28003         (input_operand): Ditto.  Handle CONST_WIDE_INT.
28004         (and_operand): Do not match const_double.
28005         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
28006
28007 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
28008
28009         PR target/65697
28010         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
28011         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
28012         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
28013         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
28014         is_mm_seq_cst, is_mm_sync): New accessor functions.
28015         * builtins.c (expand_builtin_sync_operation,
28016         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
28017         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
28018         (get_memmodel,  expand_builtin_atomic_compare_exchange,
28019         expand_builtin_atomic_load, expand_builtin_atomic_store,
28020         expand_builtin_atomic_clear): Use new accessor routines.
28021         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
28022         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
28023         (maybe_emit_sync_lock_test_and_set): Use new accessors and
28024         MEMMODEL_SYNC_ACQUIRE.
28025         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
28026         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
28027         expand_atomic_store): Use new accessors.
28028         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
28029         * tsan.c (instrument_builtin_call): Update check for memory model beyond
28030         final enum to use MEMMODEL_LAST.
28031         * c-family/c-common.c: Use new accessor for memmodel_base.
28032         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
28033         accessors.
28034         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
28035         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
28036         mem_thread_fence, *dmb): Likewise.
28037         * config/alpha/alpha.c (alpha_split_compare_and_swap,
28038         alpha_split_compare_and_swap_12): Likewise.
28039         * config/arm/arm.c (arm_expand_compare_and_swap,
28040         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
28041         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
28042         atomic_loaddi): Likewise.
28043         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
28044         Likewise.
28045         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
28046         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
28047         use new accessors.
28048         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
28049         atomic_store<mode>, atomic_compare_and_swap<mode>,
28050         atomic_exchange<mode>): Use new accessors.
28051         * config/mips/mips.c (mips_process_sync_loop): Likewise.
28052         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
28053         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
28054         rs6000_post_atomic_barrier): Add new cases.
28055         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
28056         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
28057         (atomic_load<mode>): Add new cases and use new accessors.
28058         (store_quadpti): Add new cases.
28059         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
28060         accessors.
28061         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
28062         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
28063         model, not 8.
28064
28065 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
28066
28067         * ipa-devirt.c (type_with_linkage_p): New function.
28068         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
28069         type has linkage.
28070         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
28071         (can_be_name_hashed_p): Simplify.
28072         (hash_odr_name): Check that type has linkage before checking if it is
28073         anonymous.
28074         (types_same_for_odr): Likewise.
28075         (odr_name_hasher::equal): Likewise.
28076         (odr_subtypes_equivalent_p): Likewise.
28077         (warn_types_mismatch): Likewise.
28078         (get_odr_type): Likewise.
28079         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
28080         * ipa-utils.h (odr_type_p): Move offline.
28081         * tree.c (need_assembler_name_p): Fix handling of types
28082         without linkages.
28083         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
28084
28085 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
28086
28087         * timevar.c (timevar_enable): Delete in favor of...
28088         (g_timer): New global.
28089         (struct timevar_def): Move to timevar.h inside class timer.
28090         (struct timevar_stack_def): Likewise.
28091         (timevars): Delete global in favor of field "m_timevars" within
28092         class timer in timevar.h
28093         (stack): Likewise, in favor of field "m_stack".
28094         (unused_stack_instances): Likewise, in favor of field
28095         "m_unused_stack_instances".
28096         (start_time): Likewise, in favor of field "m_start_time".
28097         (get_time): Eliminate check for timevar_enable.
28098         (timer::timer): New function, built from part of timevar_init.
28099         (timevar_init): Rewrite idempotency test from using
28100         "timevar_enable" bool to using dynamic allocation of "g_timer".
28101         Move rest of implementation into timer's constructor.
28102         (timevar_push_1): Rename to...
28103         (timer::push): ...this, adding "m_" prefixes to variables that
28104         are now fields of timer.
28105         (timevar_pop_1): Likewise, rename to...
28106         (timer::pop): ...this, and add "m_" prefixes.
28107         (timevar_start): Replace test for "timevar_enable" with one for
28108         "g_timer", and move bulk of implementation to...
28109         (timer::start): ...here, adding "m_" prefixes.
28110         (timevar_stop): Likewise, from here...
28111         (timer::stop): ...to here.
28112         (timevar_cond_start): Likewise, from here...
28113         (timer::cond_start): ...to here.
28114         (timevar_cond_stop): Likewise, from here...
28115         (timer::cond_stop): ...to here.
28116         (validate_phases): Rename to...
28117         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
28118         locals "total" and "tv" const.
28119         (timevar_print): Rename to...
28120         (timer::print): ...this, and add "m_" prefixes.  Make locals
28121         "total" and "tv" const.  Eliminate test for timevar_enable.
28122         * timevar.h (timevar_enable): Eliminate.
28123         (g_timer): New declaration.
28124         (timevar_push_1): Eliminate.
28125         (timevar_pop_1): Eliminate.
28126         (timevar_print): Eliminate.
28127         (class timer): New class.
28128         (timevar_push): Rewrite to use g_timer.
28129         (timevar_pop): Likewise.
28130         * toplev.c (toplev::~toplev): Likewise.
28131
28132 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
28133
28134         * arm-protos.h (arm_sched_autopref): Delete.
28135         (tune_params): Re-organize, use enums for flag values.
28136         (FUSE_OPS): New macro.
28137         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
28138         (ARM_PREFETCH_BENEFICIAL): Likewise.
28139         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
28140         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
28141         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
28142         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
28143         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
28144         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
28145         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
28146         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
28147         format.
28148         (arm_option_override, thumb2_reorg, arm_print_tune_info)
28149         (aarch_macro_fusion_pair_p): Update uses of current_tune.
28150         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
28151
28152 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
28153
28154         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
28155         "break".
28156
28157 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
28158             Sandra Loosemore <sandra@codesourcery.com>
28159
28160         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
28161         value.
28162         (REG_CLASS_NAMES): Add "IJMP_REGS".
28163         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
28164         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
28165         use new "c" register constraint.
28166         * config/nios2/constraint.md (c): New register constraint
28167         corresponding to IJMP_REGS.
28168
28169 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
28170
28171         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
28172         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
28173         define_splits): Delete, revamp, transmogrify into ...
28174         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
28175         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
28176         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
28177         New.
28178
28179 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
28180
28181         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
28182         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
28183
28184 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
28185
28186         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
28187         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
28188         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
28189         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
28190         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
28191         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
28192         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
28193         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
28194         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
28195         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
28196         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
28197         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
28198         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
28199         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
28200         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
28201         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
28202         and 30 corresponding splitters): Delete.
28203
28204 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
28205
28206         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
28207         zero_extract.
28208
28209 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
28210
28211         * combine.c (recog_for_combine_1): New function, factored out
28212         from recog_for_combine.
28213         (change_zero_ext): New function.
28214         (recog_for_combine): If recog fails, try again with the pattern
28215         modified by change_zero_ext; if that still fails, restore the
28216         pattern.
28217
28218 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
28219
28220         * combine.c (get_undo_marker): New function.
28221         (undo_to_marker): New function, largely factored out from ...
28222         (undo_all): ... this.  Adjust.
28223
28224 2015-05-12  Richard Biener  <rguenther@suse.de>
28225
28226         PR tree-optimization/66101
28227         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
28228         fixup if we turn a loop exit edge to a fallthru edge.
28229
28230 2015-05-12  Richard Biener  <rguenther@suse.de>
28231
28232         PR tree-optimization/37021
28233         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
28234         (SLP_TREE_TWO_OPERATORS): New define.
28235         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
28236         SLP_TREE_TWO_OPERATORS.
28237         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
28238         SLP node.
28239         (vect_build_slp_tree): Adjust.
28240         (vect_analyze_slp_cost_1): Likewise.
28241         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
28242         emitting two vector stmts and mixing the results.
28243
28244 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
28245
28246         * call.c (print_z_candidates): Remove dead code.
28247
28248 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28249
28250         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
28251         and zEC12_simple_fp.
28252         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
28253         to 1.
28254
28255 2015-05-12  Tom de Vries  <tom@codesourcery.com>
28256
28257         PR tree-optimization/66010
28258         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
28259         ifn_va_arg.
28260         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
28261         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
28262         va_lists are passed, and remove corresponding handling.
28263         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
28264         do_deref argument to ifn_va_arg.
28265         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
28266         ifn_va_arg.
28267
28268 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28269
28270         PR target/65955
28271         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
28272         REG before taking its REGNO.
28273
28274 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28275
28276         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
28277         rsp->sign_bit_copies and rsp->nonzero_bits into ...
28278         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
28279         present to get more accurate information about the number of sign bit
28280         copies and non zero bits.
28281
28282 2015-05-12  Richard Biener  <rguenther@suse.de>
28283
28284         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
28285         do not allow unrolling.
28286
28287 2015-05-11  Richard Henderson  <rth@redhat.com>
28288
28289         * config/i386/i386-modes.def (CCP): New.
28290         * config/i386/i386.c (put_condition_code): Handle it.
28291         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
28292
28293 2015-05-11  Richard Henderson  <rth@redhat.com>
28294
28295         * target.def (md_asm_clobbers): Replace with...
28296         (md_asm_adjust): this.
28297         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
28298         (TARGET_MD_ASM_ADJUST): New.
28299         * tm.texi: Rebuild.
28300         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
28301         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
28302         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
28303
28304         * cfgexpand.c (check_operand_nalternatives): Accept vector of
28305         constraints instead of lists of outputs and inputs.
28306         (expand_asm_stmt): Save and restore input_location around the
28307         body of the function.  Move asm data into vectors instead of
28308         building tree lists.  Generate cleanup sequences as needed,
28309         rather than waiting til the end.  Use new md_asm_adjust hook.
28310
28311         * config/vxworks.c: Include vec.h before target.h.
28312         * gimple.c: Likewise.
28313         * incpath.c: Likewise.
28314         * mode-switching.c: Likewise.
28315
28316         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
28317         (cris_md_asm_adjust): this.
28318         (TARGET_MD_ASM_CLOBBERS): Remove.
28319         (TARGET_MD_ASM_ADJUST): New.
28320         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
28321         (ix86_md_asm_adjust): this.
28322         (TARGET_MD_ASM_CLOBBERS): Remove.
28323         (TARGET_MD_ASM_ADJUST): New.
28324         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
28325         (mn10300_md_asm_adjust): this.
28326         (TARGET_MD_ASM_CLOBBERS): Remove.
28327         (TARGET_MD_ASM_ADJUST): New.
28328         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
28329         (rs6000_md_asm_adjust): this.
28330         (TARGET_MD_ASM_CLOBBERS): Remove.
28331         (TARGET_MD_ASM_ADJUST): New.
28332         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
28333         (visium_md_asm_adjust): this.
28334         (TARGET_MD_ASM_CLOBBERS): Remove.
28335         (TARGET_MD_ASM_ADJUST): New.
28336
28337 2015-05-11  Richard Henderson  <rth@redhat.com>
28338
28339         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
28340         if noutputs is zero.
28341         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
28342
28343         * cfgexpand.c (expand_asm_operands): Merge into...
28344         (expand_asm_stmt): ... here.
28345
28346         * cfgexpand.c (expand_asm_operands): Don't call
28347         resolve_asm_operand_names.
28348         * stmt.c (resolve_asm_operand_names): Clarify block comment.
28349
28350 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
28351
28352         * dwarf2out.c (gen_member_die): Sanity check that we access
28353         TYPE_MAIN_VARIANT for TYPE_METHODS.
28354         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
28355         checking TYPE_METHODS.
28356         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
28357         if non-null.
28358         (build_distinct_type_copy): Clear TYPE_METHODS.
28359         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
28360         (verify_type): Allow TYPE_METHODS to be error_mark_node.
28361         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
28362
28363 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
28364
28365         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
28366         (emit_pattern_before_setloc): Likewise.
28367
28368 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
28369
28370         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
28371         for define_peephole2s.
28372         (get_peephole2_pattern): New function.
28373         (main): Use it.  Call validate_pattern.
28374
28375 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
28376
28377         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
28378         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
28379         (Last callee saved reg is different for AVR_TINY architecture)
28380
28381 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
28382
28383         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
28384         when looking for memory references.
28385
28386 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
28387
28388         PR target/65753
28389         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
28390         via function pointers.
28391
28392 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
28393
28394         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
28395         indirect call by forcing address into a pseudo with -fno-plt.
28396         * common.opt (flag_plt): New option.
28397         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
28398         ([-fno-plt]): Document.
28399
28400 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
28401
28402         PR bootstrap/66105
28403         * config/rs6000/option-defaults.h: Add space between string literal
28404         and macro name.
28405
28406 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28407
28408         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
28409         accross ARM targets.
28410
28411 2015-05-11  Christian Bruel  <christian.bruel@st.com>
28412
28413         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
28414         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
28415
28416 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
28417
28418         PR rtl-optimization/66076
28419         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
28420         Don't grow the heap array if it is already big enough from a
28421         previous iteration.
28422
28423 2015-05-11  Christian Bruel  <christian.bruel@st.com>
28424
28425         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
28426         (is_called_in_ARM_mode): Remove.
28427         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
28428         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
28429         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
28430          arm_declare_function_name.
28431
28432 2015-05-11  Christian Bruel  <christian.bruel@st.com>
28433
28434         * config/arm/arm.c (arm_option_override): Reoganized and split into :
28435         (arm_option_params_internal); New function.
28436         (arm_option_check_internal): New function.
28437         (arm_option_override_internal): New function.
28438         (thumb_code, thumb1_code): Remove.
28439         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
28440         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
28441         (thumb_code, thumb1_code): Remove.
28442         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
28443
28444 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
28445
28446         * config/alpha/alpha.c (alpha_emit_set_const_1)
28447         (alpha_emit_set_long_const, alpha_extract_integer)
28448         (alpha_legitimate_constant_p, alpha_split_const_mov)
28449         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
28450         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
28451         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
28452         HOST_WIDE_INT_1U.
28453         * config/alpha/predicates.md (mode_mask_operand): Do not match
28454         const_double RTX.
28455         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
28456         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
28457         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
28458         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
28459         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
28460
28461 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
28462
28463         PR target/65780
28464         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
28465         default_binds_local_p_2.
28466         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
28467         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
28468
28469 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
28470
28471         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
28472
28473 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
28474
28475         Patch by Richard Biener
28476         * coverage.c (coverage_obj_init): Delay building of type variant
28477         until the type is finished.
28478
28479 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
28480
28481         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
28482         mismatch between C and C++ type; compoare correctly ARG_TYPES
28483         for non-prototypes and output correctly parameter index for METHOD_TYPE.
28484         (odr_types_equivalent_p): Fix wording of warning about attributes;
28485         it is OK to match prototype and non-prototype.
28486
28487 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
28488
28489         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
28490         TYPE_ARG_TYPES list.
28491         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
28492         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
28493
28494 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
28495
28496         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
28497         * tree.h (is_lang_specific): Constify.
28498
28499 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
28500
28501         PR tree-optimization/64454
28502         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
28503         Rewrite.
28504
28505 2015-05-08  Jason Merrill  <jason@redhat.com>
28506
28507         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
28508         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
28509         config/darwin.h, config/darwin9.h, config/elfos.h,
28510         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
28511         config/microblaze/microblaze.h, config/mips/mips.h,
28512         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
28513         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
28514         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
28515         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
28516         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
28517         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
28518         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
28519         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
28520         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
28521         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
28522         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
28523         between string literal and macro name.
28524
28525 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28526
28527         * jump.c: Change argument types to rtx_insn *.
28528         * rtl.h: Adjust.
28529
28530 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28531
28532         * lra-constraints.c: Change argument type to rtx_insn *.
28533
28534 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28535
28536         * df-problems.c: Change argument type to rtx_insn *.
28537
28538 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28539
28540         * combine.c: Change argument type to rtx_insn *.
28541
28542 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28543
28544         * rtl.h: Adjust.
28545         * rtlanal.c: Change argument type to rtx_insn *.
28546
28547 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28548
28549         * sched-deps.c: Change argument types to rtx_insn *.
28550         * sched-int.h: Adjust.
28551
28552 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28553
28554         * dwarf2cfi.c: Change argument type to rtx_insn *.
28555
28556 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28557
28558         * ira.c (decrease_live_ranges_number): Changetype of local
28559         variable to rtx_insn *.
28560         * recog.c: Change argument types to rtx_insn *.
28561         * recog.h: Adjust.
28562
28563 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28564
28565         * reorg.c: Change argument types to rtx_insn *.
28566
28567 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28568
28569         * ira-color.c: Change argument types to rtx_insn *.
28570         * lra-eliminations.c: Likewise.
28571         * ira.h: Adjust.
28572
28573 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28574
28575         * gcse.c: Change argument types to rtx_insn *.
28576
28577 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28578
28579         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
28580
28581 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28582
28583         * emit-rtl.c (emit_debug_insn_before): Change argument type to
28584         rtx_insn *.
28585         * rtl.h: Adjust.
28586
28587 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28588
28589         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
28590         * rtl.h: Adjust.
28591
28592 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28593
28594         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
28595         * rtl.h: Adjust.
28596
28597 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28598
28599         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
28600         * rtl.h: Adjust.
28601
28602 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28603
28604         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
28605         * rtl.h: Adjust.
28606
28607 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28608
28609         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
28610         to rtx_insn *.
28611         * rtl.h: Adjust.
28612
28613 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28614
28615         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
28616         to rtx_insn *.
28617         * rtl.h: Likewise.
28618
28619 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28620
28621         * except.c (can_nonlocal_goto): Change type of argument to
28622         rtx_insn *.
28623         * rtl.h: Adjust.
28624
28625 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28626
28627         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
28628         * rtl.h: Adjust.
28629
28630 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28631
28632         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
28633         * cfgrtl.c (can_delete_label_p): Adjust.
28634         * rtl.h: likewise.
28635
28636 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28637
28638         * reorg.c (stop_search_p): Change argument to rtx_insn *.
28639
28640 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28641
28642         * except.c (make_reg_eh_region_note): Change argument to
28643         rtx_insn *.
28644         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
28645         * except.h: Adjust.
28646
28647 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
28648
28649         * mode-switching.c (commit_mode_sets): Change type of local
28650         variable from rtx to rtx_insn *.
28651
28652 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
28653
28654         * doc/install.texi (--enable-languages): Add missing jit and lto info.
28655         Add ^ to grep command.
28656         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
28657         arg to last gimple_simplify declaration.  Add missing gimple_build
28658         declaration for built-in function case with four tree args.
28659
28660 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
28661             Szabolcs Nagy  <szabolcs.nagy@arm.com>
28662
28663         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
28664         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
28665         (GNU_USER_DYNAMIC_LINKERN32): Update.
28666
28667 2015-05-08  Richard Biener  <rguenther@suse.de>
28668
28669         PR tree-optimization/66036
28670         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
28671         Handle strided group loads.
28672         (vect_verify_datarefs_alignment): Likewise.
28673         (vect_enhance_data_refs_alignment): Likewise.
28674         (vect_analyze_group_access): Likewise.
28675         (vect_analyze_data_ref_access): Likewise.
28676         (vect_analyze_data_ref_accesses): Likewise.
28677         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
28678         (vectorizable_load): Likewise.
28679
28680 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
28681
28682         * config/rs6000/rs6000.md: Require operand inequality in one
28683         of the peepholes.
28684
28685 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
28686             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
28687
28688         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
28689         from (set ...).
28690         * config/rx/rx.md (movdi, movdf): Likewise.
28691         Likewise for define_peephole2s.
28692
28693 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
28694
28695         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
28696         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
28697         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
28698         vtst_u64): Rewrite using gcc vector extensions.
28699
28700 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
28701
28702         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
28703         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
28704
28705 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
28706
28707         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
28708
28709 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
28710
28711         * config/glibc-stdint.h (OPTION_MUSL): Define.
28712         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
28713         Change the definition based on OPTION_MUSL for 64 bit targets.
28714         * config/linux.h (OPTION_MUSL): Redefine.
28715         * config/alpha/linux.h (OPTION_MUSL): Redefine.
28716         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
28717         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
28718
28719 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
28720             Szabolcs Nagy  <szabolcs.nagy@arm.com>
28721
28722         * config.gcc (LIBC_MUSL): New tm_defines macro.
28723         * config/linux.h (OPTION_MUSL): Define.
28724         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
28725         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
28726         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
28727         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
28728         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
28729         * config/linux.opt (mmusl): New option.
28730         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
28731         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
28732         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
28733         * configure: Regenerate.
28734
28735 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
28736             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
28737
28738         PR target/48904
28739         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
28740         * config/i386/knetbsd-gnu64.h: New file.
28741
28742 2015-05-08  Marek Polacek  <polacek@redhat.com>
28743
28744         PR c/64918
28745         * doc/invoke.texi: Document -Woverride-init-side-effects.
28746
28747 2015-05-07  Marek Polacek  <polacek@redhat.com>
28748
28749         PR c/65179
28750         * doc/invoke.texi: Document -Wshift-negative-value.
28751
28752 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
28753
28754         * gcov-tool.c (do_merge): Refactore to remove int ret.
28755         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
28756         !type == FUNC to type != FUNC.
28757         * reload.h (struct target_reload): Changee to type of
28758         x_spill_indirect_levels from bool to unsigned char.
28759
28760 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
28761
28762         * rtl.h (always_void_p): New function.
28763         * gengenrtl.c (always_void_p): Likewise.
28764         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
28765         with code foo are always VOIDmode.
28766         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
28767         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
28768         compare-elim.c, config/aarch64/aarch64.c,
28769         config/aarch64/aarch64.md, config/alpha/alpha.c,
28770         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
28771         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
28772         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
28773         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
28774         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
28775         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
28776         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
28777         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
28778         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
28779         config/ia64/vect.md, config/iq2000/iq2000.c,
28780         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
28781         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
28782         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
28783         config/mep/mep.c, config/microblaze/microblaze.c,
28784         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
28785         config/mn10300/mn10300.c, config/msp430/msp430.c,
28786         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
28787         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
28788         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
28789         config/rs6000/altivec.md, config/rs6000/rs6000.c,
28790         config/rs6000/rs6000.md, config/rs6000/vector.md,
28791         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
28792         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
28793         config/sh/sh.md, config/sh/sh_treg_combine.cc,
28794         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
28795         config/spu/spu.md, config/stormy16/stormy16.c,
28796         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
28797         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
28798         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
28799         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
28800         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
28801         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
28802         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
28803         var-tracking.c: Update calls accordingly.
28804
28805 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
28806
28807         PR middle-end/192
28808         PR middle-end/54303
28809         * varasm.c (function_mergeable_rodata_prefix): New function.
28810         (mergeable_string_section): Use it.
28811         (mergeable_constant_section): Use it.
28812
28813 2015-05-07  Jeff Law  <law@redhat.com>
28814
28815         PR target/39726
28816         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
28817         simplifier to narrow arithmetic.
28818         * generic-match-head.c: (types_match, single_use): New functions.
28819         * gimple-match-head.c: (types_match, single_use): New functions.
28820
28821 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
28822
28823         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
28824         rtx type.
28825
28826 2015-05-07  Richard Biener  <rguenther@suse.de>
28827
28828         PR tree-optimization/66002
28829         * passes.def: Schedule another pass_merge_phi after ifcombine, right
28830         before phiopt.
28831
28832 2015-05-07  Marek Polacek  <polacek@redhat.com>
28833             Martin Uecker  <uecker@eecs.berkeley.edu>
28834
28835         * doc/invoke.texi: Document -fsanitize=bounds-strict.
28836         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
28837         into SANITIZE_NONDEFAULT.
28838         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
28839
28840 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
28841
28842         PR target/66015
28843         * config/alpha/alpha.c (alpha_override_options_after_change): New.
28844         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
28845         (alpha_override_options): Move align_loops, align_jumps and
28846         align_functions handling into alpha_override_options_after_change.
28847
28848 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
28849             Chris Jones  <chrisj@nvidia.com>
28850             Joshua Conner  <jconner@nvidia.com>
28851
28852         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
28853         linking of crtfastmath.o.
28854         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
28855
28856 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
28857
28858         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
28859         (cstore<mode>4_unsigned_imm): New expander.
28860         (cstore<mode>4): Remove empty constraint strings.  Use the new
28861         expanders.
28862
28863 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
28864
28865         PR target/64208
28866         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
28867         alternatives.
28868
28869 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
28870
28871         * config/aarch64/geniterators.sh: Use standard BRE in sed.
28872
28873 2015-05-06  Alan Modra  <amodra@gmail.com>
28874
28875         PR target/66033
28876         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
28877         (UNSPEC_NOP): Define.
28878         (reload_vsx_from_gpr<mode>): Add missing DONE.
28879         (reload_gpr_from_vsx<mode>): Likewise.
28880         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
28881         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
28882
28883 2015-05-06  Christian Bruel  <christian.bruel@st.com>
28884
28885         PR target/66015
28886         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
28887         align_jumps, align_functions into aarch64_override_options_after_change.
28888
28889 2015-05-06  Richard Biener  <rguenther@suse.de>
28890
28891         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
28892         vect_transform_slp_perm_load to check if we support a permutation
28893         for basic-block vectorization.
28894
28895 2015-05-06  Nick Clifton  <nickc@redhat.com>
28896
28897         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
28898         used, even if it is not being used as a frame pointer.
28899
28900 2015-05-05  Jason Merrill  <jason@redhat.com>
28901
28902         * dwarf2out.c (gen_member_die): Don't emit anything for an
28903         anonymous class constructor.
28904
28905 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
28906
28907         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
28908         that it reflects the block structure.
28909         (afdo_propagate_edge): Likewise.
28910         (afdo_calculate_branch_prob): Likewise.
28911         (afdo_annotate_cfg): Likewise.
28912         * cfgcleanup.c (equal_different_set_p): Likewise.
28913         (try_crossjump_to_edge): Likewise.
28914         * cgraph.c (cgraph_node::verify_node): Likewise.
28915         * cgraphunit.c (expand_all_functions): Likewise.
28916         * config/i386/i386.c (ix86_expand_copysign): Likewise.
28917         (exact_dependency_1): Likewise.
28918         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
28919         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
28920         * gensupport.c (process_define_subst): Likewise.
28921         * lto-wrapper.c (merge_and_complain): Likewise.
28922         * tree-if-conv.c (if_convertible_bb_p): Likewise.
28923         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
28924         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
28925         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
28926         * tree-vect-loop.c (vectorizable_reduction): Likewise.
28927         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
28928         * tree-vect-stmts.c (vectorizable_shift): Likewise.
28929         * tree-vrp.c (vrp_finalize): Likewise.
28930         * tree.c (variably_modified_type_p): Likewise.
28931
28932 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
28933
28934         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
28935         on darwin12 and later.
28936         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
28937         file to pass -rdynamic on darwin12 and later.
28938         * config/darwin.opt (rdynamic): Add.
28939
28940 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
28941
28942         * doc/extend.texi (C Extensions): Update menu for moved Variable
28943         Attributes and Type Attributes sections.
28944
28945 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
28946
28947         PR target/65990
28948         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
28949         if rep_8byte stringop strategy was specified for 32-bit target.
28950
28951 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
28952
28953         PR target/65915
28954         * config/i386/i386.md (vector convert to float spltiter): Check for
28955         xmm16+, when splitting scalar float conversion.
28956         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
28957
28958 2015-05-05  Nick Clifton  <nickc@redhat.com>
28959
28960         * config/msp430/msp430-opts.h (enum msp430_regions): New.
28961         * config/msp430/msp430.c (msp430_override_options): Complain if
28962         -mcode-region or -mdata-region is used on a non MSP430X.
28963         (msp430_section_attr): New function.  Checks lower, upper and
28964         either attributes.
28965         (msp430_attribute_table): Add lower, upper and either.
28966         (gen_prefix): New function.  Generates a prefix for a section
28967         name.
28968         (msp430_select_section): New function - handles the choice of
28969         section for an object.  Takes into account memory region
28970         attributes and options.
28971         (msp430_function_section): Use gen_prefix.
28972         (TARGET_SECTION_TYPE_FLAGS): Define.
28973         (msp430_section_type_flags): New function.
28974         (TARGET_ASM_UNIQUE_SECTION): Define.
28975         (msp430_unique_section): New function.
28976         (msp430_output_aligned_decl_common): New function.
28977         (msp430_do_not_relax_short_jumps): New function.
28978         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
28979         Define.
28980         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
28981         * config/msp430/msp430-protos.h
28982         (msp430_do_not_relax_short_jumps): New prototype.
28983         (msp430_output_aligned_decl_common): New prototype.
28984         * config/msp430/msp430.md (length): New attribute.
28985         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
28986         then use a long code sequence for short jumps.
28987         * config/msp430/msp430.opt (mcode-region): New.
28988         (mdata-region): New.
28989         * doc/invoke.texi: Document new options.
28990         * doc/extend.texi: Document new attributes.
28991
28992 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
28993
28994         * config/aarch64-protos.h (struct cpu_branch_cost): New.
28995         (tune_params): Add field branch_costs.
28996         (aarch64_branch_cost): Declare.
28997         * config/aarch64.c (generic_branch_cost): New.
28998         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
28999         (cortexa53_tunings): Likewise.
29000         (cortexa57_tunings): Likewise.
29001         (thunderx_tunings): Likewise.
29002         (xgene1_tunings): Likewise.
29003         (aarch64_branch_cost): Define.
29004         * config/aarch64/aarch64.h (BRANCH_COST): Redefine.
29005
29006 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
29007
29008         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
29009         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
29010         * config/i386/i386.md: Ditto.
29011         * config/i386/winnt.c: Ditto.
29012
29013 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
29014
29015         * doc/extend.texi (__atomic Builtins): Move implementation details
29016         to the end of the description, rewrite opening paragraphs, state
29017         difference with __sync builtins, state C11/C++11 assumptions,
29018         weaken itemized descriptions, add explanation of memory model
29019         behaviour, expand description of compare-exchange, simplify text.
29020
29021 2015-05-05  Renlin Li  <renlin.li@arm.com>
29022
29023         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
29024
29025 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
29026
29027         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
29028         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
29029         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
29030         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
29031         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
29032         * configure: Regenerate.
29033         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
29034         * doc/install.texi (aarch64*-*-*): Document new
29035         --enable-fix-cortex-a53-843419 option.
29036         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
29037         and -mno-fix-cortex-a53-843419 options.
29038
29039 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
29040
29041         PR target/65871
29042         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
29043
29044 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
29045
29046         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
29047         fix overactive TYPE_MIN_VALUE check and add FIXME for type
29048         compatibility problems.
29049
29050 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
29051
29052         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
29053         constraints.
29054         (cbranchsi4_reg): New.
29055         * config/microblaze/microblaze.c
29056         (microblaze_expand_conditional_branch_reg): New.
29057         * config/microblaze/microblaze-protos.h
29058         (microblaze_expand_conditional_branch_reg): New prototype.
29059
29060 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
29061
29062         * config/microblaze/microblaze.md (peephole2): New.
29063
29064 2015-05-04  Jeff Law  <law@redhat.com>
29065
29066         Revert:
29067         2015-05-04  Jeff Law  <law@redhat.com>
29068
29069         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
29070         simplifier to narrow arithmetic.
29071         * generic-match-head.c: (types_match, single_use): New functions.
29072         * gimple-match-head.c: (types_match, single_use): New functions.
29073
29074 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
29075
29076         PR target/65987
29077         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
29078         (split_branches): Likewise.
29079
29080 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
29081
29082         * common.opt (fdelete-null-pointer-checks): Init to -1.
29083         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
29084         override flag_delete_null_pointer_checks default.
29085         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
29086         behavior re address zero.  Better document target-specific behavior.
29087         (-fisolate-errneous-paths-dereference): Mention relationship to
29088         -fdelete-null-pointer-checks.
29089
29090 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
29091
29092         PR tree-optimization/65984
29093         * ubsan.c: Include tree-cfg.h.
29094         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
29095         stmt_could_throw_p test, rename can_throw variable to ends_bb.
29096
29097 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
29098
29099         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
29100         to CONST_DOUBLE_P predicate.
29101         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
29102         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
29103         allow only operands that satisfy standard_sse_constant_p predicate.
29104         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
29105         to CONST_DOUBLE_P predicate.
29106
29107 2015-05-04  Jeff Law  <law@redhat.com>
29108
29109         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
29110         simplifier to narrow arithmetic.
29111         * generic-match-head.c: (types_match, single_use): New functions.
29112         * gimple-match-head.c: (types_match, single_use): New functions.
29113
29114 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
29115
29116         * config/arm/arm.c: Restore bootstrap.
29117
29118 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
29119
29120         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
29121         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
29122         as CONST_WIDE_INT, not CONST_DOUBLE.
29123         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
29124         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
29125         (ix86_find_base_term): Do not check for CONST_DOUBLE.
29126         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
29127         (ix86_build_signbit_mask): Rewrite using wide ints.
29128         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
29129         (ix86_rtx_costs): Handle CONST_WIDE_INT.
29130         (find_constant): Ditto.
29131         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
29132         using gen_int_mode.
29133         * config/i386/predicates.md (x86_64_immediate_operand)
29134         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
29135         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
29136         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
29137         (const0_operand): Also match const_wide_int.
29138         (constm1_operand): Ditto.
29139         (const1_operand): Ditto.
29140
29141 2015-05-04  Richard Biener  <rguenther@suse.de>
29142
29143         PR tree-optimization/65965
29144         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
29145         store groups at gaps.
29146
29147 2015-05-04  Richard Biener  <rguenther@suse.de>
29148
29149         PR tree-optimization/65935
29150         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
29151         then make sure to apply that swapping to the IL.
29152
29153 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
29154
29155         * Makefile.in (PATCHLEVEL_c): New variable.
29156         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
29157         expand the same way as if DEVPHASE_c was non-empty.
29158
29159 2015-05-04  Kai Tietz  <ktietz@redhat.com>
29160
29161         PR target/65559
29162         * lto-wrapper.c (run_gcc): Open filename
29163         in binary-mode.
29164
29165 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
29166
29167         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
29168         sections up in file, to immediately after the Function Attributes
29169         section.
29170
29171 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
29172
29173         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
29174
29175 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29176
29177         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
29178         (insert_partition_copy_on_edge): Adjust.
29179         (insert_rtx_to_part_on_edge): Likewise.
29180         (insert_part_to_rtx_on_edge): Likewise.
29181
29182 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29183
29184         * function.c (set_return_jump_label): Change type of argument to
29185         rtx_insn *.
29186         * function.h (set_return_jump_label): Adjust.
29187
29188 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29189
29190         * reload.h (struct reg_equivs_t): Change type of init to
29191         rtx_insn *.
29192         * ira.c (fix_reg_equiv_init): Adjust.
29193         * reload1.c (eliminate_regs_1): Likewise.
29194         (init_eliminable_invariants): Likewise.
29195
29196 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29197
29198         * cselib.c (fp_setter_insn): Take a rtx_insn *.
29199         * cselib.h (fp_setter_insn): Adjust.
29200
29201 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29202
29203         * recog.c (struct validate_replace_src_data): Change type of
29204         insn field to rtx_insn *.
29205         (validate_replace_src_group): Change type of argument to rtx_insn *.
29206         * recog.h (validate_replace_src_group): Adjust.
29207
29208 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29209
29210         * haifa-sched.c: Change the type of some variables to rtx_insn *.
29211         * sched-deps.c: Likewise.
29212         * sched-int.h: Likewise.
29213         * sched-rgn.c: Likewise.
29214         * sel-sched.c: Likewise.
29215
29216 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29217
29218         to rtx_insn *.
29219         * config/i386/i386.c: Change the type of some arguments to
29220         rtx_insn *.
29221         * config/arm/arm.c: Likewise.
29222
29223 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29224
29225         * lra-constraints.c: Change type of some arguments to rtx_insn *.
29226
29227 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29228
29229         * regcprop.c (kill_autoinc_value): Change type of argument to
29230         rtx_insn *.
29231
29232 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29233
29234         * genrecog.c (print_subroutine): Adjust.
29235         * recog.c (get_bool_attr_mask_uncached): Likewise.
29236         * recog.h (struct recog_data_d): Change the type of insn to
29237         rtx_insn *.
29238
29239 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29240
29241         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
29242
29243 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29244
29245         * df-problems.c (df_set_note): Change type of argument to
29246         rtx_insn *.
29247
29248 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29249
29250         * builtins.c (expand_builtin_trap): Change type of local
29251         variable to rtx_insn *.
29252         (add_sched_insns_for_speculation): Likewise.
29253         (ix86_emit_save_regs): Likewise.
29254         (get_scratch_register_on_entry): Likewise.
29255         (ix86_emit_restore_reg_using_pop): Likewise.
29256         (ix86_emit_leave): Likewise.
29257         (ix86_emit_restore_regs_using_mov): Likewise.
29258         (ix86_expand_epilogue): Likewise.
29259         Likewise.
29260         (rl78_alloc_physical_registers_umul): Likewise.
29261         * cselib.c (discard_useless_locs): Likewise.
29262         (cselib_invalidate_regno): Likewise.
29263         (cselib_invalidate_mem): Likewise.
29264         * function.c (expand_function_start): Likewise.
29265         (emit_use_return_register_into_block): Likewise.
29266         * gcse.c: Likewise.
29267         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
29268         * ifcvt.c (noce_get_alt_condition): Likewise.
29269         * loop-doloop.c (doloop_condition_get): Likewise.
29270         * lra-constraints.c (inherit_in_ebb): Likewise.
29271         * modulo-sched.c (sms_schedule_by_order): Likewise.
29272         * recog.c (next_insn_tests_no_inequality): Likewise.
29273         * reorg.c (emit_delay_sequence): Likewise.
29274         (update_reg_dead_notes): Likewise.
29275         (fix_reg_dead_note): Likewise.
29276         (fill_slots_from_thread): Likewise.
29277         (delete_computation): Likewise.
29278
29279 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
29280
29281         * doc/extend.texi (Variable Attributes): Add menu and proper
29282         @nodes to subsections.  Move Microsoft Windows attributes to
29283         their own subsection.
29284         (Type Attributes): Reorganize introduction to remove duplicate
29285         list of attributes.  Add menu and proper @nodes to subsections.
29286         Alphabetize the main table of common attributes.
29287
29288 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
29289
29290         * match.pd: New simplification patterns.
29291         (x + (x & 1))  -> ((x + 1) & ~1)
29292         (x & ~(x & y)) -> ((x & ~y))
29293         (x | ~(x | y)) -> ((x | ~y))
29294
29295 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29296
29297         * target.def (attribute_table): Mention that struct attribute_spec
29298         is defined in tree-core.h rather than tree.h
29299         * doc/tm.texi: Regenerate.
29300
29301 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
29302
29303         * genrecog.c (test): Rename to rtx_test.  Update rest of file
29304         accordingly.
29305
29306 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
29307
29308         PR translation/65959
29309         * params.h (DEFPARAM): Rename msgid to nocmsgid.
29310
29311 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
29312
29313         * config/aarch64/aarch64-protos.h (tune_params):
29314         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
29315         * config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
29316         Return value depending on target.
29317         (generic_tunings): Initialize new target settings.
29318         (cortexa53_tunings): Likewise.
29319         (cortexa57_tunings): Likewise.
29320         (thunderx_tunings): Likewise.
29321         (xgene1_tunings): Likewise.
29322
29323 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
29324
29325         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
29326         Make Cortex-A53 shift costs more accurate.
29327
29328 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29329
29330         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
29331         UNSIGNED_FLOAT.
29332
29333 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
29334
29335         * config/aarch64/aarch64.c (aarch64_rtx_costs):
29336         Calculate cost of op0 and op1 in PLUS and MINUS cases.
29337
29338 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29339
29340         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
29341         Add cost of op0 in the compare-with-fpzero case.
29342
29343 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
29344
29345         * builtins.c (fold_builtin_1): Remove spurious second
29346         semicolon.
29347         * cgraph.h (symtab_node::get_availability): Likewise.
29348         * opts.c (common_handle_option): Remove spurious second semicolon.
29349         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
29350         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
29351
29352 2015-04-30  Caroline Tice  <cmtice@google.com>
29353
29354         PR gcov-profile/65929
29355         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
29356         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
29357         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
29358         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
29359         * doc/tm.texi: Regenerate.
29360         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
29361         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
29362         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
29363         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
29364
29365 2015-04-30  Marek Polacek  <polacek@redhat.com>
29366
29367         * varasm.c (handle_cache_entry): Fix logic.
29368
29369 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29370
29371         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
29372         (*extrsi5_insn_uxtw_alt): Likewise.
29373         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
29374         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
29375         operations.
29376
29377 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29378
29379         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
29380         fabd in ABS case.
29381
29382 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29383
29384         * config/aarch64/aarch64.md
29385         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
29386         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
29387         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
29388         appropriately.  Handle alternative EON form.
29389
29390 2015-04-30  Renlin Li  <renlin.li@arm.com>
29391
29392         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
29393         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
29394
29395 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
29396
29397         PR ipa/65873
29398         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
29399         -fstrict-aliasing boundaries.
29400
29401 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29402
29403         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
29404         and [SU]MNEGL patterns.
29405
29406 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29407
29408         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
29409         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
29410         combined arithmetic-shift ops.  Properly handle all shift and extend
29411         operations that can occur in combination with PLUS/MINUS.
29412         Rename maybe_fma to compound_p.
29413         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
29414         arithmetic and shift operations.
29415
29416 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29417
29418         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
29419         rather than arith_shift cost when costing ADD/MINUS of an
29420         extended value.
29421
29422 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
29423
29424         PR lto/65948
29425         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
29426         to itself.
29427
29428 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
29429
29430         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
29431         are for the same position.
29432
29433 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
29434
29435         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
29436         vectorize_loops.
29437         (vectorize_loops): Use it.
29438
29439 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
29440
29441         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
29442         for aggregate types.
29443         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
29444         type to be non_ODR.
29445         * tree.c (need_assembler_name_p): Compute mangled name for
29446         non-fundamental types and integer types.
29447
29448 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
29449
29450         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
29451         manual swaps.
29452         * expr.c (expand_expr_real_2): Likewise.
29453
29454 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
29455
29456         * tree.c (build_common_builtin_nodes): Do not build
29457         __builtin_alloca_with_align as equivalent of library alloca.
29458
29459 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
29460
29461         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
29462         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
29463         bugus variants.
29464         * tree.c: Include print-tree.h and ipa-utils.h
29465         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
29466         (free_lang_data_in_cgraph): Call verify_type.
29467         (verify_type_variant): New function.
29468         (verify_type): New function.
29469         * tree.h (verify_type): Declare.
29470
29471 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
29472
29473         * config/mips/mips-cpus.def: (mips4): Change default processor
29474         from PROCESSOR_R8000 to PROCESSOR_R10000.
29475
29476 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
29477
29478         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
29479         la/jalr instead of jal.
29480
29481 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
29482
29483         PR target/65871
29484         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
29485         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
29486         (setcc+movzbl peephole2): Check also clobbered reg.
29487         (setcc+andl peephole2): Ditto.
29488
29489 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
29490
29491         PR libgomp/65099
29492         * config/nvptx/mkoffload.c (target_ilp32): New variable.
29493         (main): Set it depending on "-foffload-abi=[...]".
29494         (compile_native, main): Use it to pass "-m32" or "-m64" to the
29495         compiler.
29496
29497 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
29498
29499         PR target/65770
29500         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
29501         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
29502         Flip lane index back at assembly time for bigendian.
29503
29504 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
29505
29506         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
29507         * gimplify.c (gimplify_omp_workshare): Use it.
29508
29509 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
29510
29511         * Makefile.in (build/genrecog.o): Depend on inchash.h.
29512         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
29513         build/inchash.o
29514         * genrecog.c: Rewrite most of the code except for the third page.
29515
29516 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
29517
29518         * inchash.h, inchash.c: Include bconfig.h for build objects.
29519         * Makefile.in (build/inchash.o): New rule.
29520
29521 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
29522
29523         PR target/65924
29524         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
29525         number in type attribute expression.
29526
29527 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
29528
29529         * loop-iv.c (canon_condition): Generalize to all types of integer
29530         constant.
29531
29532 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
29533
29534         * gimple-walk.c: Prune duplicate or unneeded includes.
29535         (walk_gimple_asm): Only call parse_input_constraint or
29536         parse_output_constraint if their findings are used.
29537         Honour parse_input_constraint and parse_output_constraint
29538         result.
29539
29540 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
29541
29542         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
29543
29544 2015-04-29  Tom de Vries  <tom@codesourcery.com>
29545
29546         PR tree-optimization/65893
29547         * passes.def (pass_all_optimizations): Move pass_stdarg to after
29548         pass_dce.
29549
29550 2015-04-29  Richard Biener  <rguenther@suse.de>
29551
29552         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
29553         compute GROUP_SIZE for basic-block SLP.
29554         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
29555         take into account gaps.
29556         (vect_get_mask_element): Properly reject references to previous
29557         vectors.
29558         (vect_transform_slp_perm_load): Likewise.
29559
29560 2015-04-29  Christian Bruel  <christian.bruel@st.com>
29561
29562         PR target/64835
29563         * config/i386/i386.c (ix86_default_align): New function.
29564         (ix86_override_options_after_change): Call ix86_default_align.
29565         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
29566         (ix86_override_options_after_change): New function.
29567
29568 2015-04-28  Jeff Law  <law@redhat.com>
29569
29570         * tree-ssa-dom.c (record_equality); Fix comment typos.
29571
29572 2015-04-28  Tom de Vries  <tom@codesourcery.com>
29573
29574         PR tree-optimization/65887
29575         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
29576
29577 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
29578
29579         * doc/extend.texi (Declaring Attributes of Functions): Split into
29580         subsections by target.  Alphabetize the table of common attributes.
29581         Rewrite some of the introductory text to reflect the new structure.
29582         Update some cross-references to point to the new subsections.
29583         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
29584         duplicate copies in the discussion of function, label, and type
29585         attributes.
29586
29587 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
29588
29589         PR bootstrap/65910
29590         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
29591
29592 2015-04-28  Jason Merrill  <jason@redhat.com>
29593
29594         PR c++/65734
29595         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
29596         (finalize_type_size): Respect TYPE_USER_ALIGN.
29597         (layout_type) [ARRAY_TYPE]: Likewise.
29598
29599 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
29600
29601         * config/arm/arm.md (*arm_movt): Fix type attribute.
29602         (*cmpsi_shiftsi): Likewise.
29603         (*cmpsi_shiftsi_swp): Likewise.
29604         (*movsicc_insn): Likewise.
29605         (*cond_move): Likewise.
29606         (*if_plus_move): Likewise.
29607         (*if_move_plus): Likewise.
29608         (*if_arith_move): Likewise.
29609         (*if_move_arith): Likewise.
29610         (*if_shift_move): Likewise.
29611         (*if_move_shift): Likewise.
29612         (*arm_movtas_ze): Likewise.
29613         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
29614         redundancy and type attribute.
29615         (*thumb2_movsi_insn): Fix type attribute.
29616         (*thumb2_addsi_short): Likewise.
29617         (thumb2_addsi3_compare0): Likewise.
29618         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
29619         attributes accordingly.
29620
29621 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
29622
29623         PR other/65911
29624         * function.c (pad_to_arg_alignment): Add parentheses.
29625
29626 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
29627
29628         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
29629         libgcc/config/frv/elf-lib.h.
29630
29631 2015-04-28  Tom de Vries  <tom@codesourcery.com>
29632
29633         * tree-call-cdce.c: Fix example in header comment.
29634
29635 2015-04-28  Richard Biener  <rguenther@suse.de>
29636
29637         PR tree-optimization/62283
29638         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
29639         fails fatally and we are vectorizing a basic-block simply
29640         cause the child to be constructed piecewise.
29641         (vect_analyze_slp_cost_1): Adjust.
29642         (vect_detect_hybrid_slp_stmts): Likewise.
29643         (vect_bb_slp_scalar_cost): Likewise.
29644         (vect_get_constant_vectors): For piecewise constructed
29645         constants place them after the last def.
29646         (vect_get_slp_defs): Adjust.
29647         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
29648         externals for basic-block vectorization.
29649
29650 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29651
29652         PR target/63503
29653         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
29654         aarch64-*-*.
29655         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
29656         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
29657         (AARCH64_TUNE_FMA_STEERING): Likewise.
29658         * config/aarch64/aarch64-cores.def: Set
29659         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
29660         FMUL/FMADD instructions.
29661         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
29662         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
29663         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
29664         * config/aarch64/cortex-a57-fma-steering.h: New file.
29665         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
29666
29667 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
29668
29669         * gensupport.c (std_preds): Add missing codes to address_operand entry.
29670
29671 2015-04-28  Richard Biener  <rguenther@suse.de>
29672
29673         PR tree-optimization/65851
29674         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
29675         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
29676         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
29677         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
29678         (ccp_visit_phi_node): Adjust.
29679         (evaluate_stmt): For simplifications to SSA names return its
29680         lattice value if that isn't VARYING.  Return immediately when
29681         simplified to a constant.
29682         (visit_assignment): Adjust.
29683         (ccp_visit_stmt): Likewise.
29684
29685 2015-04-28  Tom de Vries  <tom@codesourcery.com>
29686
29687         PR tree-optimization/65818
29688         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
29689         evaluated.
29690
29691 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29692
29693         * calls.c (save_fixed_argument_area): Don't check
29694         ARGS_GROW_DOWNWARD with the preprocessor.
29695         (restore_fixed_argument_area): Likewise.
29696         (mem_overlaps_already_clobbered_arg_p): Likewise.
29697         (check_sibcall_argument_overlap): Likewise.
29698         (expand_call): Likewise.
29699         (emit_library_call_value_1): Likewise.
29700         (store_one_arg): Likewise.
29701         * function.c (assign_parms): Likewise.
29702         (locate_and_pad_parm): Likewise.
29703         (pad_to_arg_alignment): Likewise.
29704         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
29705
29706 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29707
29708         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
29709         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
29710         * calls.c (save_fixed_argument_area): Don't chekc if
29711         ARGS_GROW_DOWNWARD is defined.
29712         (restore_fixed_argument_area): Likewise.
29713         (mem_overlaps_already_clobbered_arg_p): Likewise.
29714         (check_sibcall_argument_overlap): Likewise.
29715         (expand_call): Likewise.
29716         (emit_library_call_value_1): Likewise.
29717         (store_one_arg): Likewise.
29718         * function.c (assign_parms): Likewise.
29719         (locate_and_pad_parm): Likewise.
29720         (pad_to_arg_alignment): Likewise.
29721         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
29722
29723 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29724
29725         * defaults.h (gen_epilogue): New function.
29726         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
29727         defined.
29728         * cfgrtl.c (cfg_layout_finalize): Likewise.
29729         * df-scan.c: Likewise.
29730         * function.c (thread_prologue_and_epilogue_insns): Likewise.
29731         (reposition_prologue_and_epilogue_notes): Likewise.
29732         * reorg.c (find_end_label): Likewise.
29733         * toplev.c: Likewise.
29734
29735 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29736
29737         * bb-reorder.c (HAVE_return): Don't check if its undefined.
29738         * defaults.h (gen_simple_return): New function.
29739         (gen_simple_return): Likewise.
29740         (HAVE_return): Add default definition to false.
29741         (HAVE_simple_return): Likewise.
29742         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
29743         HAVE_return and HAVE_simple_return are defined.
29744         * function.c (gen_return_pattern): Likewise.
29745         (convert_jumps_to_returns): Likewise.
29746         (thread_prologue_and_epilogue_insns): Likewise.
29747         * reorg.c (find_end_label): Likewise.
29748         (dbr_schedule): Likewise.
29749         * shrink-wrap.c: Likewise.
29750         * shrink-wrap.h: Likewise.
29751
29752 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29753
29754         * defaults.h (EPILOGUE_USES): Add default definition of false.
29755         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
29756         * resource.c (init_resource_info): Likewise.
29757
29758 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29759
29760         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
29761         to false.
29762         * dwarf2out.c (field_byte_offset): REmove check if
29763         PCC_BITFIELD_TYPE_MATTERS is defined.
29764         * stor-layout.c (layout_decl): Likewise.
29765         (update_alignment_for_field): Likewise.
29766         (place_field): Likewise.
29767
29768 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29769
29770         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
29771         true.
29772         * regrename.c (check_new_reg_p): Remove check if
29773         HARD_REGNO_RENAME_OK is defined.
29774         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
29775
29776 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29777
29778         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
29779         * cse.c (fold_rtx): Likewise.
29780         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
29781         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
29782         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
29783         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
29784         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
29785         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
29786         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
29787         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
29788         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
29789         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
29790         * Likewise.
29791         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
29792         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
29793         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
29794         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
29795         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
29796         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
29797         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
29798         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
29799         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
29800         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
29801         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
29802         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
29803         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
29804         * doc/tm.texi: Regenerate.
29805         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
29806         either true or false.
29807
29808 2015-04-27  Jeff Law  <law@redhat.com>
29809
29810         PR tree-optimization/65217
29811         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
29812         of them has a single use, make sure it is the LHS of the implied
29813         copy.
29814
29815 2015-04-28  Alan Modra  <amodra@gmail.com>
29816
29817         PR target/65810
29818         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
29819         (offsettable_ok_by_alignment): Use minimum of decl and toc
29820         pointer alignment.  Replace dead code with assertion.
29821         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
29822         case if size exceeds toc pointer alignment.
29823         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
29824         (rs6000_emit_move): Likewise.
29825         * configure.ac: Add linker toc pointer alignment check.
29826         * configure: Regenerate.
29827         * config.in: Regenerate.
29828
29829 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
29830
29831         * config.gcc: Add h8300-*-linux.
29832         * config/h8300/linux.h: New.
29833         * config/h8300/t-linux: New.
29834         * config/h8300/h8300.c (h8300_option_override): Normal mode
29835         is not supported for h8300-*-linux.
29836         (h8300_file_start): Target priority change.
29837         (get_shift_alg): Likewise.
29838         (h8300_shift_need_scratch_p): Likewise.
29839         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
29840         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
29841
29842 2015-04-27  Caroline Tice  <cmtice@google.com>
29843
29844         * final.c (final_scan_insn):  Output cold_function_name as function
29845         type.
29846         * varasm.c (cold_function_name):  Make global.
29847         (assemble_start_function):  Re-set cold_function_name.
29848         (assemble_end_function): Output cold partition size.
29849         * varasm.h (cold_function_name):  Declare global.
29850
29851 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
29852
29853         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
29854         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
29855         constraint.
29856         (*movxi_internal_avx512f): Ditto.
29857         (define_split): Check for xmm16+, when splitting scalar float_extend.
29858         (*extendsfdf2_mixed): Use "v" constraint.
29859         (define_split): Check for xmm16+, when splitting scalar float_truncate.
29860         (*truncdfsf_fast_sse): Use "v" constraint.
29861         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
29862         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
29863         (define_peephole2): Check for xmm16+, when converting scalar
29864         float_truncate.
29865         (define_peephole2): Check for xmm16+, when converting scalar
29866         float_extend.
29867         (*fop_<mode>_comm_mixed): Use "v" constraint.
29868         (*fop_<mode>_comm_sse): Ditto.
29869         (*fop_<mode>_1_mixed): Ditto.
29870         (*sqrt<mode>2_sse): Ditto.
29871         (*ieee_s<ieee_maxmin><mode>3): Ditto.
29872
29873 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29874
29875         * combine.c (simplify_if_then_else): Use std::swap instead
29876         of manually swapping.
29877         (known_cond): Likewise.
29878         (simplify_comparison): Likewise.
29879
29880 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
29881
29882         PR target/64579
29883         * config/rs6000/htm.md: Remove all define_expands.
29884         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
29885         UNSPECV_HTM_TABORTWCI): Remove.
29886         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
29887         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
29888         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
29889         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
29890         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
29891         tabortwci_internal): Remove define_insns.
29892         (tabort<wd>c, tabort<wd>ci): New define_insns.
29893         (tabort): Use gpc_reg_operand.
29894         (tcheck): Remove operand.
29895         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
29896         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
29897         expected value.
29898         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
29899         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
29900         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
29901         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
29902         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
29903         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
29904         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
29905         (tcheck): Remove builtin argument.
29906         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
29907         not TARGET_64BIT.
29908         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
29909         tabortdc and tabortdci builtins when not in 64-bit mode.
29910         Modify code to handle the loss of the HTM define_expands.
29911         Emit code to copy the CR register to TARGET.
29912         (htm_init_builtins): Modify code to handle the loss of the HTM
29913         define_expands.
29914         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
29915         (RS6000_BTC_64BIT): Likewise.
29916         (RS6000_BTC_CR): New macro.
29917         * doc/extend.texi: Update documentation for htm builtins.
29918
29919 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29920
29921         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
29922         of manually swapping.
29923         (simplify_associative_operation): Likewise.
29924         (simplify_binary_operation): Likewise.
29925         (simplify_plus_minus): Likewise.
29926         (simplify_relational_operation): Likewise.
29927         (simplify_ternary_operation): Likewise.
29928
29929 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
29930
29931         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
29932         (xs_hi_nonmemory_operand): Remove error.
29933         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
29934         general_operand rather than xs_hi_general_operand.
29935
29936 2015-04-27  Richard Biener  <rguenther@suse.de>
29937
29938         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
29939         (record_equivalences_from_stmt): Valueize rhs.
29940         (record_equality): Canonicalize x and y order via
29941         tree_swap_operands_p.  Do not swap operands for same loop depth.
29942
29943 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
29944
29945         PR target/65296
29946         PR target/65895
29947         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
29948         Add hint how to use own spec file.
29949
29950 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
29951
29952         PR tree-optimization/65875
29953         * tree-vrp.c (update_value_range): If in is_new case setting
29954         old_vr to VR_VARYING, also set new_vr to it.  Remove
29955         old_vr->type == VR_VARYING test.
29956         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
29957         SSA_PROP_INTERESTING if update_value_range returned true,
29958         but new range is VR_VARYING.
29959
29960 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29961
29962         * combine.c (sign_extend_short_imm): New.
29963         (set_nonzero_bits_and_sign_copies): Use above new function for sign
29964         extension of src short immediate.
29965         (reg_nonzero_bits_for_combine): Likewise for tem.
29966
29967 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
29968
29969         * stor-layout.c (self_referential_component_ref_p): New predicate.
29970         (copy_self_referential_tree_r): Use it.
29971         (self_referential_size): Punt for simple operations directly involving
29972         self-referential component references.
29973         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
29974
29975 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
29976
29977         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
29978
29979 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
29980
29981         * vec.h (vec): Make splice arguments const.  Update definitions
29982         accordingly.
29983
29984 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
29985
29986         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
29987         alternatives.
29988
29989 2015-04-26  Tom de Vries  <tom@codesourcery.com>
29990
29991         PR tree-optimization/65826
29992         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
29993
29994 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
29995
29996         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
29997         (*madd3<mode>): Ditto.
29998         (*msub4<mode>): Ditto.
29999         (*msub3<mode>): Ditto.
30000         (*nmadd4<mode>): Ditto.
30001         (*nmadd3<mode>): Ditto.
30002         (*nmadd4<mode>_fastmath): Ditto.
30003         (*nmadd3<mode>_fastmath): Ditto.
30004         (*nmsub4<mode>): Ditto.
30005         (*nmsub3<mode>): Ditto.
30006         (*nmsub4<mode>_fastmath): Ditto.
30007         (*nmsub3<mode>_fastmath): Ditto.
30008
30009 2015-04-24  Jason Merrill  <jason@redhat.com>
30010
30011         PR c++/50800
30012         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
30013         down when building TYPE_CANONICAL.
30014         (build_pointer_type_for_mode): Likewise.
30015
30016 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
30017
30018         * genrecog.c (validate_pattern): Check matching constraint refers
30019         to a lower numbered operand.
30020
30021 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
30022
30023         PR target/65849
30024         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
30025         save to independent variables use the Save attribute.  This will
30026         allow these options to be modified with the #pragma/attribute
30027         target support.
30028         (-mallow-movmisalign): Likewise.
30029         (-mallow-df-permute): Likewise.
30030         (-msched-groups): Likewise.
30031         (-malways-hint): Likewise.
30032         (-malign-branch-targets): Likewise.
30033         (-mvectorize-builtins): Likewise.
30034         (-msave-toc-indirect): Likewise.
30035
30036         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
30037         can be set via the #pragma/attribute target support.
30038         (rs6000_opt_vars): Likewise.
30039         (rs6000_inner_target_options): If VSX was set, also set
30040         -mno-avoid-indexed-addresses.
30041
30042 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30043
30044         * config/arm/iterators.md (shiftable_ops): Rename to...
30045         (SHIFTABLE_OPS): ... This.  Update use in comments.
30046         (ior_xor): Rename to...
30047         (IOR_XOR): ... This.
30048         (vqh_ops): Rename to...
30049         (VQH_OPS): ... This.
30050         (vqhs_ops): Rename to...
30051         (VQHS_OPS): ... This.
30052         (rshifts): Rename to...
30053         (RSHIFTS): ... This.
30054         (returns): Rename to...
30055         (RETURNS): ... This.
30056         * config/arm/arm.md: Update uses of the above.
30057         * config/arm/neon.md: Likewise.
30058
30059 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30060
30061         * config.host (case ${host}): Add aarch64*-*-linux case.
30062         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
30063         fields to all the cores.
30064         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
30065         Add MCPU_MTUNE_NATIVE_SPECS.
30066         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
30067         field to all extensions.
30068         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
30069         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
30070         Adjust definition of AARCH64_OPT_EXTENSION.
30071         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
30072         (MCPU_MTUNE_NATIVE_SPECS): Define.
30073         * config/aarch64/driver-aarch64.c: New file.
30074         * config/aarch64/x-arch64: New file.
30075         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
30076         -mtune and -march.
30077
30078 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
30079             Wei Mi  <wmi@google.com>
30080
30081         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
30082         * config/i386/i386.c (extract_base_offset_in_addr): New function.
30083         (ix86_operands_ok_for_move_multiple): Ditto.
30084         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
30085         (movlpd/movhpd to movupd peephole2): Ditto.
30086
30087 2015-04-24  Marek Polacek  <polacek@redhat.com>
30088
30089         PR c/61534
30090         * input.h (from_macro_expansion_at): Define.
30091
30092         PR c/63357
30093         * doc/invoke.texi: Update description of -Wlogical-op.
30094
30095 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30096
30097         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
30098         ternary operator in fprintf and harmonize spacing.
30099
30100 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
30101
30102         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
30103         Mark operand1 commutative.
30104
30105 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
30106
30107         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
30108         input operands in memory.
30109         (*vec_concatv2si_sse4_1): Ditto.
30110         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
30111         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
30112         register_operand.
30113         (vec_extract_hi_v32hi): Ditto.
30114         (vec_extract_hi_v64hi): Ditto.
30115         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
30116
30117 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30118             Steven Bosscher <steven@gcc.gnu.org>
30119
30120         PR rtl-optimization/34503
30121         * cprop.c (cprop_reg_p): New.
30122         (hash_scan_set): Use above function to check if register can be
30123         propagated.
30124         (find_avail_set): Return up to two sets, one whose source is a
30125         register and one whose source is a constant.  Sets are returned in an
30126         array passed as parameter rather than as a return value.
30127         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
30128         sets returned by find_avail_set, starting with the one whose source is
30129         a constant. Use cprop_reg_p to check if register can be propagated.
30130         (do_local_cprop): Use cprop_reg_p to check if register can be
30131         propagated.
30132         (implicit_set_cond_p): Likewise.
30133
30134 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
30135
30136         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
30137         (sem_function::equals): IGNORED_NODES parameter is now unused;
30138         update call of equals_private.
30139         (sem_function::equals_private): Do not call equals_wpa; skip
30140         gimple body matching if there is no body.
30141         (sem_function::init): Add logic to hash tthunk info.
30142         (sem_function::parse): Also parse thunks.
30143         * ipa-icf.h (equals_private): Update declaration.
30144
30145 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30146
30147         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
30148         asterisk from name so this can be generated directly.
30149         (*altivec_stvx_<mode>_internal): Likewise.
30150         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
30151         that this is never called during or after reload/lra.
30152         (rs6000_frame_related): Remove split_reg
30153         argument and logic that references it.
30154         (emit_frame_save): Remove last parameter from call to
30155         rs6000_frame_related.
30156         (rs6000_emit_prologue): Remove last parameter from eight calls to
30157         rs6000_frame_related.  Force generation of stvx instruction for
30158         Altivec register saves.  Remove split_reg handling, which is no
30159         longer needed.
30160         (rs6000_emit_epilogue):  Force generation of lvx instruction for
30161         Altivec register restores.
30162
30163 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30164
30165         * config/rs6000/rs6000.opt (mcrypto): Change option description to
30166         match category changes in ISA 2.07B.
30167
30168 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30169
30170         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
30171         iterators.
30172         (cmp_op, cmp_type): New code attributes.
30173         (NEON_VCMP, NEON_VACMP): New int iterators.
30174         (cmp_op_unsp): New int attribute.
30175         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
30176         (neon_vceq<mode>): Delete.
30177         (neon_vc<cmp_op><mode>_insn): New pattern.
30178         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
30179         (neon_vcgeu<mode>): Delete.
30180         (neon_vcle<mode>): Likewise.
30181         (neon_vclt<mode>: Likewise.
30182         (neon_vcage<mode>): Likewise.
30183         (neon_vcagt<mode>): Likewise.
30184         (neon_vca<cmp_op><mode>): New define_expand.
30185         (neon_vca<cmp_op><mode>_insn): New pattern.
30186         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
30187
30188 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
30189
30190         * tree.h (attribute_value_equal): Declare.
30191         * tree.c (attribute_value_equal): Export.
30192
30193 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
30194
30195         * ipa-icf.c (sem_item::compare_attributes): New function.
30196         (sem_item::compare_referenced_symbol_properties): Compare variable
30197         attributes.
30198         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
30199         (sem_function::param_used_p): New function.
30200         (sem_function::equals_wpa): Fix attribute comparsion; match
30201         parameter type codes; do not compare paremter flags when
30202         they are not used; compare edge flags; compare indirect calls.
30203         (sem_item::update_hash_by_addr_refs): Hash reference type.
30204         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
30205         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
30206         reference use type.
30207         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
30208         * ipa-icf.h (compare_attributes, param_used_p): Declare.
30209
30210 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
30211
30212         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
30213         cleanup.
30214         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
30215         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
30216         (sem_item::compare_referenced_symbol_properties): New.
30217         (sem_item::hash_referenced_symbol_properties): New.
30218         (sem_item::compare_cgraph_references): Rename to ...
30219         (sem_item::compare_symbol_references): ... this one; use
30220         compare_referenced_symbol_properties.
30221         (sem_function::equals_wpa): Do not compare
30222         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
30223         DECL_IS_OPERATOR_NEW; compare pointer sizes.
30224         (sem_item::update_hash_by_addr_refs): Call
30225         hash_referenced_symbol_properties.
30226         (sem_item::update_hash_by_local_refs): Cleanup.
30227         (sem_function::merge): Do not mix up symbol properties.
30228         (sem_variable::equals_wpa): Use compare_symbol_references.
30229         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
30230         (sem_item::hash_referenced_symbol_properties): New.
30231         (sem_item::compare_symbol_references): New.
30232         (sem_item::compare_cgraph_references): Remove.
30233
30234 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
30235
30236         PR target/26702
30237         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
30238         Emit size of local.
30239
30240 2015-04-23  Nick Clifton  <nickc@redhat.com>
30241
30242         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
30243         ATTRIBUTE_UNUSED to x parameter.
30244         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
30245
30246 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30247
30248         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
30249         TARGET_CRYPTO to TARGET_P8_VECTOR>
30250         (crypto_vpermxor_<mode>): Likewise.
30251         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
30252         (BU_CRYPTO_3A): Likewise.
30253         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
30254         (BU_CRYPTO_OVERLOAD_3A): New #define.
30255         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
30256         (VPMSUMH): Likewise.
30257         (VPMSUMW): Likewise.
30258         (VPMSUMD): Likewise.
30259         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
30260         (VPERMXOR_V4SI): Likewise.
30261         (VPERMXOR_V8HI): Likewise.
30262         (VPERMXOR_V16QI): Likewise.
30263         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
30264         BU_CRYPTO_OVERLOAD_2A.
30265         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
30266         BU_CRYPTO_OVERLOAD_3A.
30267         * config/rs6000/rs6000.opt (mcrypto): Change description of
30268         option.
30269
30270 2015-04-23  Richard Biener  <rguenther@suse.de>
30271
30272         * passes.def: Remove copy propagation passes run directly after CCP.
30273         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
30274         SSA names.
30275         (ccp_visit_phi_node): Rework to handle first executable edge
30276         specially.
30277
30278 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
30279
30280         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
30281         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
30282         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
30283         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
30284         (thumb_legimitimize_reload_address): Remove.
30285         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
30286         Remove.
30287         (thumb_legimitimize_reload_address): Remove.
30288
30289 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30290
30291         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
30292
30293 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30294
30295         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
30296         MAX_LDM_STM_OPS.
30297         (store_multiple): Likewise.
30298
30299 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30300
30301         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
30302         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
30303         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
30304         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
30305         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
30306         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
30307         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
30308         Specify issue_rate value.
30309         (arm_issue_rate): Look up issue rate from tuning structs. Remove
30310         large switch statement.
30311         (arm_marvell_pj4_tune): New struct.
30312         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
30313         struct.
30314
30315 2015-04-23  Richard Biener  <rguenther@suse.de>
30316
30317         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
30318         (vect_find_last_store_in_slp_instance): Rename to ...
30319         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
30320         (vect_analyze_slp_cost_1): Use vector_load for constant defs
30321         and vec_construct for external defs when estimating prologue cost.
30322         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
30323         Compute costs here only when vectorizing loops.
30324         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
30325         have been determined.
30326         (vect_schedule_slp_instance): Simplify vectorized code placement
30327         and prepare for in-BB external defs.
30328         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
30329         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
30330         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
30331         guard.
30332         (vect_model_load_cost): Likewise.
30333         (vectorizable_store): Instead add it here.
30334         (vectorizable_load): Likewise.
30335         (vect_is_simple_use): Dump def type textually.
30336
30337 2015-04-23  Richard Biener  <rguenther@suse.de>
30338
30339         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
30340         * cfgloop.c (verify_loop_structure): Verify the root loop node.
30341         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
30342         instead of get_eh_region_from_lp_number.
30343         * loop-init.c (fix_loop_structure): If we removed a loop, reset
30344         the SCEV cache.
30345
30346 2015-04-23  Anton Blanchard  <anton@samba.org>
30347
30348         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
30349         need for -mprofile-kernel to save LR to stack.
30350
30351 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30352
30353         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
30354         adjustments.
30355         (insn_is_swappable_p): Return 1 for a convert from double to
30356         single precision when all of its uses are splats of BE element
30357         zero.
30358
30359 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
30360
30361         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
30362
30363 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30364
30365         PR target/65456
30366         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
30367         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
30368         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
30369         option.
30370         (rs6000_builtin_mask_for_load): Return 0 for targets with
30371         efficient unaligned VSX accesses so that the vectorizer will use
30372         direct unaligned loads.
30373         (rs6000_builtin_support_vector_misalignment): Always return true
30374         for targets with efficient unaligned VSX accesses.
30375         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
30376         stores on targets with efficient unaligned VSX accesses is almost
30377         always the same as the cost of an aligned load or store, so model
30378         it that way.
30379         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
30380         unaligned vectors if we have efficient unaligned VSX accesses.
30381         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
30382         undocumented option.
30383
30384 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30385
30386         Revert:
30387         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
30388
30389         * config.gcc (LIBC_MUSL): New tm_defines macro.
30390         * config/linux.h (OPTION_MUSL): Define.
30391         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
30392         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
30393         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
30394
30395         * config/linux.opt (mmusl): New option.
30396         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
30397         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
30398
30399         * configure: Regenerate.
30400
30401 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
30402
30403         * config.gcc (LIBC_MUSL): New tm_defines macro.
30404         * config/linux.h (OPTION_MUSL): Define.
30405         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
30406         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
30407         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
30408
30409         * config/linux.opt (mmusl): New option.
30410         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
30411         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
30412
30413         * configure: Regenerate.
30414
30415 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
30416
30417         * doc/invoke.texi (-fsanitize-sections): Update description.
30418         * asan.c (set_sanitized_sections): Parse incoming arg.
30419         (section_sanitized_p): Support wildcards.
30420
30421 2015-04-22  Tom de Vries  <tom@codesourcery.com>
30422
30423         PR tree-optimization/65823
30424         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
30425         equality between ap_copy and ap.
30426
30427 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
30428
30429         PR target/47098
30430         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
30431
30432 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
30433
30434         PR target/47122
30435         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
30436
30437 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
30438
30439         PR target/55144
30440         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
30441         remove already contained t-files.
30442
30443 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
30444
30445         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
30446         Remove unneeded forward declarations.
30447         (suitable_for_tail_call_opt_p): Commentary typo fix.
30448
30449 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
30450
30451         * varasm.c (emit_bss): Remove redundant guard.
30452
30453 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
30454
30455         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
30456
30457 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
30458
30459         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
30460
30461 2015-04-22  Hale Wang  <hale.wang@arm.com>
30462             Terry Guo  <terry.guo@arm.com>
30463
30464         PR rtl-optimization/64818
30465         * combine.c (can_combine_p): Don't combine user-specified
30466         register if it is in an asm input.
30467
30468 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
30469
30470         PR ipa/65076
30471         * passes.def (early_optimizations): Add pass_dse.
30472
30473 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30474
30475         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
30476         * reorg.c (redundant_insn): Remove ifdef
30477         INSN_REFERENCES_ARE_DELAYED.
30478         * resource.c (mark_referenced_resources): Likewise.
30479
30480 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30481
30482         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
30483         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
30484         * resource.c (mark_set_resources): Likewise.
30485
30486 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30487
30488         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
30489         * cfgcleanup.c (flow_find_cross_jump): Likewise.
30490         (flow_find_head_matching_sequence): Likewise.
30491         (try_head_merge_bb): Likewise.
30492         * combine.c (can_combine_p): Likewise.
30493         (try_combine): Likewise.
30494         (distribute_notes): Likewise.
30495         * df-problems.c (can_move_insns_across): Likewise.
30496         * final.c (final): Likewise.
30497         * gcse.c (insert_insn_end_basic_block): Likewise.
30498         * ira.c (find_moveable_pseudos): Likewise.
30499         * reorg.c (try_merge_delay_insns): Likewise.
30500         (fill_simple_delay_slots): Likewise.
30501         (fill_slots_from_thread): Likewise.
30502         * sched-deps.c (sched_analyze_2): Likewise.
30503
30504 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30505
30506         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
30507         PIC_OFFSET_TABLE_REGNUM.
30508
30509 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30510
30511         * alias.c (init_alias_target): Remove ifdef
30512         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
30513         * df-scan.c (df_insn_refs_collect): Likewise.
30514         (df_get_regular_block_artificial_uses): Likewise.
30515         (df_get_eh_block_artificial_uses): Likewise.
30516         (df_get_entry_block_def_set): Likewise.
30517         (df_get_exit_block_use_set): Likewise.
30518         * emit-rtl.c (gen_rtx_REG): Likewise.
30519         * ira.c (ira_setup_eliminable_regset): Likewise.
30520         * reginfo.c (init_reg_sets_1): Likewise.
30521         * regrename.c (rename_chains): Likewise.
30522         * reload1.c (reload): Likewise.
30523         (eliminate_regs_in_insn): Likewise.
30524         * resource.c (mark_referenced_resources): Likewise.
30525         (init_resource_info): Likewise.
30526
30527 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30528
30529         * defaults.h (MASK_RETURN_ADDR): New definition.
30530         * except.c (expand_builtin_extract_return_addr): Remove ifdef
30531         MASK_RETURN_ADDR.
30532
30533 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30534
30535         * defaults.h (RETURN_ADDR_OFFSET): New definition.
30536         * except.c (expand_builtin_extract_return_addr): Remove ifdef
30537         RETURN_ADDR_OFFSET.
30538         (expand_builtin_frob_return_addr): Likewise.
30539
30540 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30541
30542         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
30543         (try_redirect_by_replacing_jump): Likewise.
30544         (rtl_tidy_fallthru_edge): Likewise.
30545         * combine.c (insn_a_feeds_b): Likewise.
30546         (find_split_point): Likewise.
30547         (simplify_set): Likewise.
30548         * cprop.c (cprop_jump): Likewise.
30549         * cse.c (cse_extended_basic_block): Likewise.
30550         * df-problems.c (can_move_insns_across): Likewise.
30551         * function.c (emit_use_return_register_into_block): Likewise.
30552         * haifa-sched.c (sched_init): Likewise.
30553         * ira.c (find_moveable_pseudos): Likewise.
30554         * loop-invariant.c (find_invariant_insn): Likewise.
30555         * lra-constraints.c (curr_insn_transform): Likewise.
30556         * postreload.c (reload_combine_recognize_const_pattern):
30557         * Likewise.
30558         * reload.c (find_reloads): Likewise.
30559         * reorg.c (delete_scheduled_jump): Likewise.
30560         (steal_delay_list_from_target): Likewise.
30561         (steal_delay_list_from_fallthrough): Likewise.
30562         (redundant_insn): Likewise.
30563         (fill_simple_delay_slots): Likewise.
30564         (fill_slots_from_thread): Likewise.
30565         (delete_computation): Likewise.
30566         * sched-rgn.c (add_branch_dependences): Likewise.
30567
30568 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30569
30570         * genconfig.c (main): Always define HAVE_cc0.
30571         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
30572         HAVE_cc0.
30573         * cfgcleanup.c (flow_find_cross_jump): Likewise.
30574         (flow_find_head_matching_sequence): Likewise.
30575         (try_head_merge_bb): Likewise.
30576         * cfgrtl.c (rtl_merge_blocks): Likewise.
30577         (try_redirect_by_replacing_jump): Likewise.
30578         (rtl_tidy_fallthru_edge): Likewise.
30579         * combine.c (do_SUBST_MODE): Likewise.
30580         (insn_a_feeds_b): Likewise.
30581         (combine_instructions): Likewise.
30582         (can_combine_p): Likewise.
30583         (try_combine): Likewise.
30584         (find_split_point): Likewise.
30585         (subst): Likewise.
30586         (simplify_set): Likewise.
30587         (distribute_notes): Likewise.
30588         * cprop.c (cprop_jump): Likewise.
30589         * cse.c (cse_extended_basic_block): Likewise.
30590         * df-problems.c (can_move_insns_across): Likewise.
30591         * final.c (final): Likewise.
30592         (final_scan_insn): Likewise.
30593         * function.c (emit_use_return_register_into_block): Likewise.
30594         * gcse.c (insert_insn_end_basic_block): Likewise.
30595         * haifa-sched.c (sched_init): Likewise.
30596         * ira.c (find_moveable_pseudos): Likewise.
30597         * loop-invariant.c (find_invariant_insn): Likewise.
30598         * lra-constraints.c (curr_insn_transform): Likewise.
30599         * optabs.c (prepare_cmp_insn): Likewise.
30600         * postreload.c (reload_combine_recognize_const_pattern):
30601         * Likewise.
30602         * reload.c (find_reloads): Likewise.
30603         (find_reloads_address_1): Likewise.
30604         * reorg.c (delete_scheduled_jump): Likewise.
30605         (steal_delay_list_from_target): Likewise.
30606         (steal_delay_list_from_fallthrough): Likewise.
30607         (try_merge_delay_insns): Likewise.
30608         (redundant_insn): Likewise.
30609         (fill_simple_delay_slots): Likewise.
30610         (fill_slots_from_thread): Likewise.
30611         (delete_computation): Likewise.
30612         (relax_delay_slots): Likewise.
30613         * sched-deps.c (sched_analyze_2): Likewise.
30614         * sched-rgn.c (add_branch_dependences): Likewise.
30615
30616 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30617
30618         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
30619         that is trivially ded on non cc0 targets.
30620         (simplify_set): Likewise.
30621         (mark_used_regs_combine): Likewise.
30622         * cse.c (new_basic_block): Likewise.
30623         (fold_rtx): Likewise.
30624         (cse_insn): Likewise.
30625         (cse_extended_basic_block): Likewise.
30626         (set_live_p): Likewise.
30627         * rtlanal.c (canonicalize_condition): Likewise.
30628         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
30629
30630 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30631
30632         * conditions.h: Define macros even if HAVE_cc0 is undefined.
30633         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
30634         * final.c: Likewise.
30635         * jump.c: Likewise.
30636         * recog.c: Likewise.
30637         * recog.h: Declare functions even when HAVE_cc0 is undefined.
30638         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
30639
30640 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30641
30642         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
30643         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
30644         * builtins.c (expand_builtin): Remove check if
30645         EH_RETURN_DATA_REGNO is defined.
30646         * df-scan.c (df_bb_refs_collect): Likewise.
30647         (df_get_exit_block_use_set): Likewise.
30648         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
30649         * ira-lives.c (process_bb_node_lives): Likewise.
30650         * lra-lives.c (process_bb_lives): Likewise.
30651
30652 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
30653
30654         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
30655         FIRST_PSEUDO_REG): New.
30656         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
30657         (ARG_POINTER_REGNUM): Define to ARGP_REG.
30658         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
30659         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
30660         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
30661         (FIRST_INT_REG): New.
30662         (LAST_INT_REG): New.
30663         (FIRST_*_REG): Define using *_REG.
30664         (LAST_*_REG): Ditto.
30665         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
30666         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
30667         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
30668
30669 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30670
30671         * expmed.c: (synth_mult): Only assume overlapping
30672         shift with previous steps in alg_sub_t_m2 case.
30673
30674 2015-04-21  Richard Biener  <rguenther@suse.de>
30675
30676         PR tree-optimization/65650
30677         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
30678         transitions involving copies.
30679         (set_lattice_value): Adjust for copy lattice state.
30680         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
30681         if that doesn't dominate the merge point.
30682         (bit_value_unop): Adjust what we treat as varying mask.
30683         (bit_value_binop): Likewise.
30684         (bit_value_assume_aligned): Likewise.
30685         (evaluate_stmt): When we simplified to a SSA name record a copy
30686         instead of dropping to varying.
30687         (visit_assignment): Simplify.
30688
30689         * gimple-match.h (gimple_simplify): Add another callback.
30690         * gimple-fold.c (fold_stmt_1): Adjust caller.
30691         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
30692         for the 2nd callback.
30693         * gimple-match-head.c (gimple_simplify): Add a callback that is
30694         used to valueize the stmt operands and use it that way.
30695
30696 2015-04-21  Richard Biener  <rguenther@suse.de>
30697
30698         PR tree-optimization/65788
30699         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
30700
30701 2015-04-21  Richard Biener  <rguenther@suse.de>
30702
30703         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
30704         vec_construct cost by vec_stmt_cost.
30705
30706 2015-04-21  Richard Biener  <rguenther@suse.de>
30707
30708         * cfghooks.h (create_basic_block): Replace with two overloads
30709         for RTL and GIMPLE.
30710         (split_block): Likewise.
30711         * cfghooks.c (split_block): Rename to ...
30712         (split_block_1): ... this.
30713         (split_block): Add two type-safe overloads for RTL and GIMPLE.
30714         (split_block_after_labels): Call split_block_1.
30715         (create_basic_block): Rename to ...
30716         (create_basic_block_1): ... this.
30717         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
30718         (create_empty_bb): Call create_basic_block_1.
30719         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
30720         split_block_after_labels.
30721         * omp-low.c (expand_parallel_call): Likewise.
30722         (expand_omp_target): Likewise.
30723         (simd_clone_adjust): Likewise.
30724         * tree-chkp.c (chkp_get_entry_block): Likewise.
30725         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
30726         create_basic_block overload.
30727         (cgraph_node::expand_thunk): Likewise.
30728         * tree-cfg.c (make_blocks): Likewise.
30729         (handle_abnormal_edges): Likewise.
30730         * tree-inline.c (copy_bb): Likewise.
30731
30732 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30733
30734         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
30735         New pattern.
30736         (*xor_one_cmplsidi3_ze): Likewise.
30737
30738 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30739
30740         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
30741         use df_remove_problem rather than manually removing problems, leaving
30742         holes in df->problems_in_order[].
30743
30744 2015-04-21  Tom de Vries  <tom@codesourcery.com>
30745
30746         PR tree-optimization/65802
30747         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
30748
30749 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30750
30751         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
30752         Increase to 128.
30753         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
30754         at '.'.  Assert that there's enough space for everything.
30755
30756 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
30757
30758         PR tree-optimization/64950
30759         Revert:
30760         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
30761
30762         PR target/41089
30763         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
30764         as volatile.
30765
30766 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
30767
30768         PR rtl-optimization/64916
30769         * cfgcleanup.c (values_equal_p): New function.
30770         (can_replace_by): Use it.
30771
30772 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
30773
30774         PR c++/65801
30775         * doc/invoke.texi ([-Wnarrowing]): Update.
30776
30777 2015-04-20  Jeff Law  <law@redhat.com>
30778
30779         PR tree-optimization/65658
30780         * tree-ssa-threadupdate.c (redirection_block_p): Remove
30781         redundant test for GIMPLE_ASSIGN in last change.
30782
30783 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
30784
30785         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
30786         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
30787         (legitimize_tls_address): Ditto.
30788         (ix86_expand_move): Ditto.
30789         (ix86_expand_binary_operator): Remove reload_in_progress checks.
30790         (ix86_expand_unary_operator): Ditto.
30791         * config/i386/predicates.md (index_register_operand): Ditto.
30792
30793 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
30794
30795         * reorg.c (try_merge_delay_insns): Improve correctness checking
30796         for targets with multiple delay slots.
30797
30798 2015-04-20  Jeff Law  <law@redhat.com>
30799
30800         PR tree-optimization/65658
30801         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
30802         statements too.
30803
30804 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
30805
30806         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
30807         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
30808         Delete.
30809
30810 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
30811
30812         PR debug/65807
30813         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
30814
30815 2015-04-20  Richard Biener  <rguenther@suse.de>
30816
30817         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
30818         * gimple-fold.c (gimple_build_valueize): New function.
30819         (gimple_build): Always use gimple_build_valueize as valueize hook.
30820
30821 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
30822
30823         PR target/64134
30824         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
30825         and overwrite variable parts if <= 1/2 the elements are variable.
30826
30827 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
30828
30829         PR rtl-optimization/65805
30830         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
30831         Don't use difference of offset and previous offset if
30832         update_sp_offset is non-zero.
30833         (eliminate_regs_in_insn): Ditto.
30834         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
30835         lra_eliminate_regs_1 call.
30836         * lra-constraints.c (get_equiv_with_elimination): Ditto.
30837
30838 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
30839
30840         * hash-table.h: Remove version of hash_table that stored value_type *.
30841         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
30842         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
30843         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
30844         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
30845         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
30846         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
30847         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
30848         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
30849         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
30850         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
30851         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
30852         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
30853         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
30854         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
30855         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
30856         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
30857
30858 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30859             Jakub Jelinek  <jakub@redhat.com>
30860
30861         PR target/65787
30862         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
30863         subsequent SH_NONE operand does not overwrite an existing *special
30864         value.
30865         (adjust_extract): Handle case where a vec_extract operation is
30866         wrapped in a PARALLEL.
30867
30868 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
30869
30870         PR target/65780
30871         * config/i386/i386.c (ix86_binds_local_p): Define only if
30872         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
30873
30874 2015-04-17  Jeff Law  <law@redhat.com>
30875
30876         PR tree-optimization/47679
30877         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
30878         * tree-ssa-scopedtables.c: New file.
30879         * tree-ssa-scopedtables.h: New file.
30880         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
30881         (const_and_copies): Change name/type.
30882         (record_const_or_copy): Move into tree-ssa-scopedtables.c
30883         (record_const_or_copy_1): Similarly.
30884         (restore_vars_to_original_value): Similarly.
30885         (pass_dominator::execute): Create and destroy const_and_copies table.
30886         (thread_across_edge): Update passing of const_and_copies.
30887         (record_temporary_equivalence): Use method calls rather than
30888         manipulating const_and_copies directly.
30889         (record_equality, cprop_into_successor_phis): Similarly.
30890         (dom_opt_dom_walker::before_dom_children): Similarly.
30891         (dom_opt_dom_walker::after_dom_children): Similarly.
30892         (eliminate_redundant_computations): Similarly.
30893         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
30894         (record_temporary_equivalence): Likewise.
30895         (invalidate_equivalences): Likewise.
30896         (record_temporary_equivalences_from_phis): Update due to type
30897         change of const_and_copies.  Use method calls rather than
30898         manipulating the stack directly.
30899         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
30900         (thread_through_normal_block, thread_across_edge): Likewise.
30901         (thread_across_edge): Likewise.
30902         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
30903         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
30904         of equiv_stack.
30905         (identify_jump_threads): Update due to type change of equiv_stack.
30906         (finalize_jump_threads): Delete the equiv_stack when complete.
30907
30908 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
30909
30910         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
30911         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
30912         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
30913
30914 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
30915
30916         PR target/65535
30917         * config.gcc: Exit with a comment when we do not have a major version
30918         number for the FreeBSD target.
30919
30920 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
30921
30922         PR target/65689
30923         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
30924         maybe_allows_mem bitfields.
30925         (maybe_allows_none_start, maybe_allows_none_end,
30926         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
30927         maybe_allows_mem_end): New variables.
30928         (compute_maybe_allows): New function.
30929         (add_constraint): Use it to initialize maybe_allows_reg and
30930         maybe_allows_mem fields.
30931         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
30932         is_address constraints such that those that allow neither mem nor
30933         reg come first, then those that only allow reg but not mem, then
30934         those that only allow mem but not reg, then the rest.
30935         (write_allows_reg_mem_function): New function.
30936         (write_tm_preds_h): Call it.
30937         * stmt.c (parse_output_constraint, parse_input_constraint): Use
30938         the generated insn_extra_constraint_allows_reg_mem function
30939         instead of always setting *allows_reg = true; *allows_mem = true;
30940         for unknown extra constraints.
30941
30942 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
30943
30944         PR target/65780
30945         * output.h (default_binds_local_p_3): New.
30946         * varasm.c (default_binds_local_p_3): Make it public.  Take an
30947         argument to indicate if common symbol may be local.  If common
30948         symbol may be local, treat non-external variable as defined
30949         locally.
30950         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
30951         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
30952         * config/i386/i386.c (ix86_binds_local_p): New.
30953         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
30954         ix86_binds_local_p.
30955
30956 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
30957
30958         PR debug/65771
30959         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
30960         trying mem_loc_descriptor on XEXP (rtl, 0).
30961
30962 2015-04-17  Martin Liska  <mliska@suse.cz>
30963
30964         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
30965         Release symbol_compare_collection.
30966         * ipa-reference.c: Add TODO that a vector should be released.
30967
30968 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
30969
30970         PR target/65296
30971         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
30972         to new AVR-LibC file layout (bug #44574).
30973         (*avrlibc_devicelib): Same.
30974         * config/avr/avr-mcus.def: Adjust comments.
30975         * config/avr/avr.opt (nodevicelib): Adjust help.
30976
30977 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
30978
30979         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
30980
30981 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
30982
30983         PR c++/64527
30984         * gimplify.c (gimplify_init_constructor): Always emit a
30985         side-effecting constructor.
30986
30987 2015-04-17  Tom de Vries  <tom@codesourcery.com>
30988
30989         PR tree-optimization/64950
30990         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
30991         in cfun->curr_properties.
30992         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
30993         if we generate an IFN_VA_ARG.
30994         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
30995         function if PROP_gimple_lva is not set in src function.
30996
30997 2015-04-17  Tom de Vries  <tom@codesourcery.com>
30998             Michael Matz  <matz@suse.de>
30999
31000         PR tree-optimization/64950
31001         * gimple-iterator.c (update_modified_stmts): Remove static.
31002         * gimple-iterator.h (update_modified_stmts): Declare.
31003         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
31004         (gimplify_va_arg_internal): New function.
31005         (gimplify_va_arg_expr): Use IFN_VA_ARG.
31006         * gimplify.h (gimplify_va_arg_internal): Declare.
31007         * internal-fn.c (expand_VA_ARG): New unreachable function.
31008         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
31009         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
31010         (expand_ifn_va_arg): New function.
31011         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
31012         (pass_stdarg::execute): Call expand_ifn_va_arg.
31013         (pass_data_lower_vaarg): New pass_data.
31014         (pass_lower_vaarg): New gimple_opt_pass.
31015         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
31016         (make_pass_lower_vaarg): New function.
31017         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
31018         properties_required field.
31019         * passes.def (all_passes): Add pass_lower_vaarg.
31020         * tree-pass.h (PROP_gimple_lva): Add define.
31021         (make_pass_lower_vaarg): Declare.
31022
31023 2015-04-17  Tom de Vries  <tom@codesourcery.com>
31024
31025         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
31026         * calls.c (call_expr_flags): Same.
31027
31028 2015-04-17  Tom de Vries  <tom@codesourcery.com>
31029
31030         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
31031         (pass_stdarg::execute): ... here.
31032
31033 2015-04-17  Tom de Vries  <tom@codesourcery.com>
31034             Michael Matz  <matz@suse.de>
31035
31036         * tree-cfg.c (make_blocks_1): Factor out of ...
31037         (make_blocks): ... here.
31038         (make_edges_bb): Factor out of ...
31039         (make_edges): ... here.
31040         (gimple_find_sub_bbs): New function.
31041         * tree-cfg.h (gimple_find_sub_bbs): Declare.
31042
31043 2015-04-17  Tom de Vries  <tom@codesourcery.com>
31044
31045         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
31046
31047 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
31048
31049         * asan.c (set_sanitized_sections): New function.
31050         (section_sanitized_p): Ditto.
31051         (asan_protect_global): Optionally sanitize user-defined
31052         sections.
31053         * asan.h (set_sanitized_sections): Declare new function.
31054         * common.opt (fsanitize-sections): New option.
31055         * doc/invoke.texi (-fsanitize-sections): Document new option.
31056         * opts-global.c (handle_common_deferred_options): Handle new
31057         option.
31058
31059 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
31060
31061         PR debug/65771
31062         * dwarf2out.c (loc_list_from_tree): Return NULL
31063         for DEBUG_EXPR_DECL.
31064
31065 2015-04-17  Christian Bruel  <christian.bruel@st.com>
31066
31067         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
31068         same attributes.
31069
31070 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
31071
31072         * ira-color.c (setup_left_conflict_sizes_p): Do not process
31073         node itself when computing left conflict subnode size.
31074
31075 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
31076
31077         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
31078         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
31079         *fop_<mode>_1_sse using enabled attribute.  Use
31080         register_mixssei387nonimm_operand operand 1 predicate. Change
31081         alternative 3 constraints from "x" to "v".
31082
31083 2015-04-16  Richard Biener  <rguenther@suse.de>
31084
31085         PR tree-optimization/65774
31086         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
31087         bit-value tracking on.
31088
31089 2015-04-16  Richard Biener  <rguenther@suse.de>
31090
31091         PR tree-optimization/64277
31092         * tree-vrp.c (check_array_ref): Fix anti-range handling,
31093         simplify upper bound handling.
31094         (search_for_addr_array): Simplify.
31095         (check_array_bounds): Handle ADDR_EXPRs here.
31096         (check_all_array_refs): Simplify.
31097
31098 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
31099
31100         * config/i386/i386.c (print_reg): Rewrite function.
31101
31102 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31103
31104         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
31105         Invert the condition.
31106
31107 2015-04-16  Renlin Li  <renlin.li@arm.com>
31108
31109         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
31110         simplifications for UNSIGNED_FLOAT.
31111
31112 2015-04-16  Nick Clifton  <nickc@redhat.com>
31113
31114         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
31115         MUL_UNINIT.
31116         (enum rl78_cpu_type): New.
31117         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
31118         (umulhi3_shift_virt): Remove m constraint from operand 1.
31119         (umulqihi3_virt): Likewise.
31120         * config/rl78/rl78.c (rl78_option_override): Add code to process
31121         -mcpu and -mmul options.
31122         (rl78_alloc_physical_registers): Add code to handle divhi and
31123         divsi valloc attributes.
31124         (set_origin): Likewise.
31125         * config/rl78/rl78.h (RL78_MUL_G14): Define.
31126         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
31127         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
31128         __RL78_Gxx__.
31129         (ASM_SPEC): Pass -mcpu on to assembler.
31130         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
31131         (mulqi3_rl78): Likewise.
31132         (mulhi3_g13): Likewise.
31133         (mulhi3): Generate the G13 or G14 versions of the insn directly.
31134         (mulsi3): Likewise.
31135         (mulhi3_g14): Add clobbers of AX and BC.
31136         (mulsi3_g14): Likewise.
31137         (mulsi3_g13): Likewise.
31138         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
31139         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
31140         * config/rl78/rl78.opt (mmul): Initialise value to
31141         RL78_MUL_UNINIT.
31142         (mcpu): New option.
31143         (m13, m14, mrl78): New option aliases.
31144         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
31145         (MULTILIB_DIRNAMES): Add g13 and g14.
31146         * doc/invoke.texi: Document -mcpu and -mmul options.
31147
31148 2015-04-16  Richard Biener  <rguenther@suse.de>
31149
31150         * tree-ssa-ccp.c (likely_value): See if we have operands that
31151         are marked as never simulate again and return CONSTANT in this
31152         case.
31153         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
31154         not have any operands that will be simulated again as
31155         not being simulated again.
31156
31157 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
31158
31159         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
31160         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
31161         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
31162         attribute.
31163         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
31164         enabled attribute.
31165         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
31166         *float<SWI48:mode><MODEF:mode>2_sse.
31167         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
31168         enabled attribute.
31169         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
31170         enabled attribute.
31171
31172 2015-04-15  Tom de Vries  <tom@codesourcery.com>
31173
31174         PR other/65487
31175         * function.c (push_dummy_function): New function.
31176         (init_dummy_function_start): Use push_dummy_function.
31177         (pop_dummy_function): New function.  Factored out of ...
31178         (expand_dummy_function_end): ... here.
31179         * function.h (push_dummy_function, pop_dummy_function): Declare.
31180         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
31181         pop_dummy_function.
31182         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
31183
31184 2015-04-15  Jeff Law  <law@redhat.com>
31185
31186         PR tree-optimization/47679
31187         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
31188         need for forward declaration in upcoming changes.
31189         (record_conditions, record_edge_info): Likewise.
31190
31191         PR rtl-optimization/42522
31192         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
31193         SIGN_EXTRACT as a whole object rather than simplifying
31194         its operand.
31195
31196 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
31197
31198         PR ipa/65765
31199         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
31200         and GIMPLE_PREDICT use break instead of return true. For
31201         GIMPLE_EH_DISPATCH, compare dispatch region.
31202
31203 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
31204
31205         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
31206         details about the implementation.  Make clear preference for
31207         __atomic builtins.  Reduce possibility of future change.
31208
31209 2015-04-15  Nick Clifton  <nickc@redhat.com>
31210
31211         * config/rx/rx.opt (mallow-string-insns): New option.
31212         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
31213         builtin if string instructions are denied.
31214         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
31215         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
31216         appropriate.
31217         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
31218         * config/rx/rx.md (movstr): Enable pattern only if string
31219         instructions are allowed.
31220         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
31221         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
31222         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
31223         (MULTILIB_DIRNAMES): Add no-strings.
31224         * doc/invoke.texi: Document -mno-allow-string-insns.
31225
31226 2015-04-15  Alan Modra  <amodra@gmail.com>
31227
31228         PR target/65408
31229         PR target/58744
31230         PR middle-end/36043
31231         * calls.c (load_register_parameters): Don't load past end of
31232         mem unless suitably aligned.
31233
31234 2015-04-15  Nick Clifton  <nickc@redhat.com>
31235
31236         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
31237         decrement instruction as being frame related.
31238         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
31239         based addresses.
31240         If zero extending a function address enclose the operation in
31241         %code(...).
31242         (rl78_preferred_reload_class): New function.
31243         (TARGET_PREFERRED_RELOAD_CLASS): Define.
31244         * config/rl78/rl78.md: Remove useless constraints in expanders.
31245         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
31246         (mulhi3_rl78): Likewise.
31247         (mulhi3_g13): Likewise.
31248         (mulsi3_rl78): Likewise.
31249         (es_addr): Move to before the multiply patterns.
31250
31251 2015-04-15  Alan Modra  <amodra@gmail.com>
31252
31253         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
31254         and sequence_stack.  Add seq.
31255         (seq_stack): Delete.
31256         * function.c (prepare_function_start): Don't access x_last_insn.
31257         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
31258         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
31259         * emit_rtl.c (start_sequence, push_topmost_sequence,
31260         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
31261         sequence accessors.
31262         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
31263         remove_insn): Likewise.  Simplify.
31264         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
31265         and pop_topmost_sequence.
31266         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
31267         debug insns.
31268         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
31269
31270 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
31271
31272         PR target/65729
31273         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
31274         the assertiion.
31275
31276 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
31277
31278         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
31279         (LEGACY_INT_REGNO_P): Ditto.
31280         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
31281         (ANY_MASK_REG_P): Remove.
31282         (BND_REG_P): Rename from ANY_BND_REG_P.
31283         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
31284         legacy integer registers.  Do not handle MMX_REG_P in a special way.
31285         Merge 64byte and 32byte SSE handling.
31286
31287 2015-04-14  Nick Clifton  <nickc@redhat.com>
31288
31289         * expr.c (expand_assignment): Force an address offset computation
31290         into a register before changing its mode.
31291         (expand_expr_real_1): Likewise.
31292
31293 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
31294
31295         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
31296         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
31297         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
31298         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
31299         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
31300         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
31301         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
31302         and __aarch64_vget_lane_any.
31303
31304 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
31305
31306         PR rtl-optimization/65761
31307         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
31308         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
31309
31310 2015-04-14  Richard Biener  <rguenther@suse.de>
31311
31312         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
31313         (graphite_can_represent_scev): Use POINTER_TYPE_P.
31314
31315 2015-04-14  Richard Biener  <rguenther@suse.de>
31316
31317         PR tree-optimization/65758
31318         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
31319         against -1.
31320         (ccp_lattice_meet): Likewise.
31321         (bit_value_unop): Likewise.
31322         (bit_value_binop): Likewise.
31323         (bit_value_assume_aligned): Likewise.
31324
31325 2015-04-14  Christian Bruel  <christian.bruel@st.com>
31326
31327         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
31328         function.
31329
31330 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
31331
31332         PR tree-optimization/63387
31333         * match.pd ((x unord x) | (y unord y) -> (x unord y),
31334         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
31335
31336 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
31337
31338         * config/i386/predicates.md (any_QIreg_operand): Rename from
31339         q_regs_operand.  Do not process subregs.
31340         (QIreg_operand): Use QI_REGNO_P predicate.
31341         (ext_QIreg_operand): Ditto.
31342         (ext_register_operand): Ditto.
31343         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
31344         (AND splitters): Ditto.
31345         (AND with -65536 splitter): Add SWI48 mode for operand 0.
31346         (AND with -256 splitter): Use any_QIreg_operand predicate and
31347         SWI248 mode for operand 0.
31348         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
31349         mode for operand 0.
31350         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
31351
31352 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
31353
31354         * doc/plugins.texi: Rewrite first introductory paragraph.
31355
31356 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
31357
31358         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
31359         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
31360
31361 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
31362
31363         * ipa-profie.c (ipa_profile): Check number of parameters
31364         and possible polymorphic call targets before
31365         devirtualizing.
31366
31367 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
31368
31369         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
31370         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
31371
31372 2015-04-13  Richard Biener  <rguenther@suse.de>
31373
31374         PR tree-optimization/65204
31375         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
31376         takens for bit-CCP.
31377
31378 2015-04-13  Richard Biener  <rguenther@suse.de>
31379
31380         PR target/65660
31381         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
31382         and cond_not_taken_branch_cost to 4 and 2.
31383         (bdver2_cost): Likewise.
31384         (bdver3_cost): Likewise.
31385         (bdver4_cost): Likewise.
31386
31387 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
31388
31389         * hash-table.h (hash_table constructor): Add mem stats.
31390         (alloc_entries): Likewise.
31391
31392 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
31393
31394         * ipa-cp.c (ipcp_driver): Relase prev_edge.
31395         * passes.c (execute_one_pass): Only add transform if pass has one.
31396
31397 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
31398
31399         * config/i386/i386.c (ix86_option_override_internal): Don't set
31400         -fprefetch-loop-arrays if optimizing for size.
31401
31402 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
31403             Gerald Pfeifer  <gerald@pfeifer.com>
31404
31405         * doc/contrib.texi (Contributors): Add Martin Jambor and
31406         Michael Matz.
31407
31408 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
31409
31410         * BASE-VER: Set to 6.0.0.
31411
31412         PR tree-optimization/65747
31413         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
31414         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
31415
31416 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
31417
31418         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
31419         sentence.  Improve grammar.
31420
31421 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
31422
31423         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
31424
31425 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
31426
31427         PR ipa/65743
31428         * ipa-inline-transform.c (speculation_removed): Remove static var.
31429         (check_speculations): New function.
31430         (clone_inlined_nodes): Do not check spculations.
31431         (inline_call): Call check_speculations.
31432         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
31433         consider non-invariants.
31434
31435 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
31436             Martin Liska  <mliska@suse.cz>
31437
31438         PR ipa/65722
31439         * ipa-icf.c (sem_item::compare_cgraph_references): function and
31440         variable can not match.
31441         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
31442         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
31443
31444 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
31445
31446         PR tree-optimization/65735
31447         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
31448         Remove visited_phis argument, add visited_bbs, avoid recursing into the
31449         same bb rather than just into the same phi node.
31450         (thread_through_normal_block): Adjust caller.
31451
31452 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
31453
31454         * doc/contrib.texi (Contributors): Add Ira Rosen.
31455
31456 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
31457
31458         * gcov.c (find_source): Fix miswording in error message.
31459         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
31460         (ix86_expand_sse_comi_round): Fix typo in error message.
31461
31462 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
31463
31464         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
31465
31466 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
31467
31468         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
31469
31470 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
31471
31472         PR target/65710
31473         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
31474         Print bad_spills_num and insn_pseudos_num.
31475
31476 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31477
31478         PR target/65694
31479         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
31480         when creating +1 values for SImode.
31481
31482 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
31483
31484         PR target/65729
31485         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
31486         assert.
31487
31488 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
31489             Iain Sandoe  <iain@codesourcery.com>
31490
31491         PR target/65351
31492         * configure: Regenerate.
31493
31494 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
31495
31496         PR target/65671
31497         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
31498
31499 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
31500
31501         * doc/contrib.texi (Contributors): Add John Marino.
31502
31503 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
31504
31505         PR tree-optimization/65709
31506         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
31507         TREE_TYPE (TREE_TYPE (t)).
31508
31509 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
31510
31511         PR target/65710
31512         * lra-int.h (lra_bad_spill_regno_start): New.
31513         * lra.c (lra_bad_spill_regno_start): New.
31514         (lra): Set up lra_bad_spill_regno_start.  Set up
31515         lra_constraint_new_regno_start unconditionally.
31516         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
31517         spill preferences.
31518
31519 2015-04-09  Marek Polacek  <polacek@redhat.com>
31520             Jakub Jelinek  <jakub@redhat.com>
31521
31522         PR middle-end/65554
31523         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
31524         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
31525         of STRIP_NOPS.
31526
31527 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
31528
31529         PR rtl-optimization/65693
31530         * combine.c (is_parallel_of_n_reg_sets): Move outside of
31531         #ifndef HAVE_cc0.
31532
31533 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
31534
31535         PR target/65296
31536         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
31537         device specs file if "device-specs%s" didn't resolve to a path.
31538
31539 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
31540
31541         PR target/65676
31542         * config/i386/i386.c (fixup_modeless_constant): New.
31543         (ix86_expand_args_builtin): Fixup modeless constant operand.
31544         (ix86_expand_round_builtin): Ditto.
31545         (ix86_expand_special_args_builtin): Ditto.
31546         (ix86_expand_builtin): Ditto.
31547
31548 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
31549
31550         PR target/65693
31551         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
31552         any pow2 integer in between 2 and 0x80000000U inclusive.
31553
31554 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
31555
31556         PR rtl-optimization/65693
31557         * combine.c (is_parallel_of_n_reg_sets): Change first argument
31558         from an rtx_insn * to an rtx.
31559         (try_combine): Adjust both callers.  Use it once more.
31560
31561 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
31562
31563         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
31564         (chkp_make_static_const_bounds): Search existing
31565         symbol by assembler name.  Use make_decl_one_only.
31566         (chkp_get_zero_bounds_var): Remove node search which
31567         is now performed in chkp_make_static_const_bounds.
31568         (chkp_get_none_bounds_var): Likewise.
31569
31570 2015-04-08  Michael Witten  <mfwitten@gmail.com>
31571
31572         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
31573         to an example.
31574
31575 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31576
31577         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
31578
31579 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
31580
31581         * doc/extend.texi (__sync Builtins): Fix grammar.
31582
31583 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31584
31585         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
31586
31587 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31588
31589         * varasm.c (emit_local): Move definition of align.
31590
31591 2015-04-08  Julian Brown  <julian@codesourcery.com>
31592
31593         * config/nvptx/mkoffload.c (process): Support variable mapping.
31594
31595 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
31596
31597         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
31598         alpha_links **.
31599         (alpha_write_one_linkage): Correct typo.
31600
31601 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
31602
31603         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
31604
31605 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
31606
31607         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
31608
31609 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
31610
31611         * tree-chkp.h (chkp_insert_retbnd_call): New.
31612         * tree-chkp.c (chkp_insert_retbnd_call): New.
31613         * ipa-split.c (insert_bndret_call_after): Remove.
31614         (split_function): Use chkp_insert_retbnd_call.
31615         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
31616         bounds for instrumented functions.
31617
31618 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
31619
31620         PR ipa/65540
31621         * calls.c (initialize_argument_information): When producing tail
31622         call also turn SSA_NAMES passed by references to original PARM_DECLs
31623
31624 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
31625
31626         PR target/65648
31627         * lra-remat.c (do_remat): Process input and non-input insn
31628         registers separately.
31629
31630 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
31631
31632         PR debug/65678
31633         * valtrack.c (debug_lowpart_subreg): New function.
31634         (dead_debug_insert_temp): Use it.
31635
31636         PR middle-end/65680
31637         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
31638         into signed HOST_WIDE_INT the same as negative bit_offset.
31639
31640 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
31641
31642         * ipa-comdats.c (ipa_comdats): Visit all thunks
31643         to set proper comdat group.
31644
31645 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31646
31647         PR target/65489
31648         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
31649         on constants for NEON VSTRUCT modes.
31650
31651 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
31652             Iain Sandoe  <iain@codesourcery.com>
31653
31654         PR target/65351
31655         * configure: Regenerate.
31656
31657 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
31658
31659         PR target/65614
31660         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
31661         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
31662         that LFD is used to load double constants instead of LFS.  Add
31663         defaults for all costs structures.  Add comments for missing
31664         initialization fields.
31665         (size32_cost): Likewise.
31666         (size64_cost): Likewise.
31667         (rs64a_cost): Likewise.
31668         (mpccore_cost): Likewise.
31669         (ppc403_cost): Likewise.
31670         (ppc405_cost): Likewise.
31671         (ppc440_cost): Likewise.
31672         (ppc476_cost): Likewise.
31673         (ppc601_cost): Likewise.
31674         (ppc603_cost): Likewise.
31675         (ppc604_cost): Likewise.
31676         (ppc604e_cost): Likewise.
31677         (ppc620_cost): Likewise.
31678         (ppc630_cost): Likewise.
31679         (ppccell_cost): Likewise.
31680         (ppc750_cost): Likewise.
31681         (ppc7450_cost): Likewise.
31682         (ppc8540_cost): Likewise.
31683         (ppce300c2c3_cost): Likewise.
31684         (ppce500mc_cost): Likewise.
31685         (ppce500mc64_cost): Likewise.
31686         (ppce5500_cost): Likewise.
31687         (ppce6500_cost): Likewise.
31688         (titan_cost): Likewise.
31689         (power4_cost): Likewise.
31690         (power6_cost): Likewise.
31691         (power7_cost): Likewise.
31692         (power8_cost): Likewise.
31693         (ppca2_cost): Likewise.
31694         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
31695
31696         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
31697         instead of XXLOR to copy SFmode to clear out dirty bits created
31698         when SFmode denormals are generated.
31699         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
31700         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
31701
31702 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
31703
31704         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
31705         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
31706         * config/aarch64/aarch64-tune.md: Regenerate.
31707
31708 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
31709
31710         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
31711         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
31712         * config/arm/arm-cores.def (exynos-m1): New core.
31713         * config/arm/arm-tune.md: Regenerate.
31714         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
31715         * config/arm/bpabi.h: Likewise.
31716
31717 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
31718
31719         * ipa-cp (set_single_call_flag): Remove too
31720         restrictive assert.
31721
31722 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
31723
31724         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
31725         GOMP_offload_unregister from the destructor.
31726
31727 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
31728
31729         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
31730         flags for instrumentation thunk.
31731         (chkp_produce_thunks): Likewise.
31732
31733 2015-04-05  Martin Liska  <mliska@suse.cz>
31734
31735         PR ipa/65665
31736         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
31737         has computed data structure.
31738         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
31739
31740 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
31741
31742         * invoke.texi (inline-unit-growth): Increase growth to 20%
31743         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
31744
31745 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
31746
31747         PR target/65647
31748         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
31749         value checking.
31750         (lra_rematerialization_iter): New.
31751         * lra.c (lra): Initialize lra_rematerialization_iter.
31752         Stop updating lra_constraint_new_regno_start after switching of
31753         inheritance and rematerialization.
31754         * lra-remat.c (lra_rematerialization_iter): New.
31755         (lra_remat): Add printing pass iteration.  Do rematerialization
31756         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
31757
31758 2015-04-04  Richard Biener  <rguenther@suse.de>
31759
31760         PR tree-optimization/64909
31761         PR tree-optimization/65660
31762         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
31763         to take a cost vector for scalar iteration cost.
31764         (vect_get_single_scalar_iteration_cost): Likewise.
31765         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
31766         Compute the scalar iteration cost into a cost vector.
31767         (vect_get_known_peeling_cost): Use the scalar cost vector to
31768         account for the cost of the peeled iterations.
31769         (vect_estimate_min_profitable_iters): Likewise.
31770         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
31771         Likewise.
31772
31773 2015-04-04  Alan Modra  <amodra@gmail.com>
31774
31775         PR target/65576
31776         PR target/65240
31777         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
31778         0.0 constant unless TARGET_VSX.
31779         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
31780         alternative.
31781
31782 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
31783
31784         PR ipa/65654
31785         * ipa-inline-transform.c (inline_call): Skip sanity check to work
31786         around the ICE
31787
31788 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
31789
31790         PR ipa/65655
31791         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
31792         speculative indirect edges to avoid ordering issue.
31793
31794 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
31795
31796         PR ipa/65076
31797         * ipa-inline.c (edge_badness): Add combined size to the denominator.
31798
31799 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
31800
31801         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
31802         TYPE_ARTIFICIAL on the .omp_data* types.
31803
31804 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
31805
31806         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
31807         instrumentation thunks.
31808
31809 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
31810
31811         * config/i386/i386.c (ix86_expand_call): Avoid nested
31812         PARALLEL in returned call value.
31813
31814 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
31815
31816         * lto-cgraph.c (input_cgraph_1): Always link instrumented
31817         assembler name with original one.
31818
31819 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
31820
31821         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
31822
31823 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
31824
31825         Revert parts of r216820.
31826         * config/i386/i386.md (movqi_internal): Correct type calculation
31827         for alternatives 3 and 5.
31828
31829 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
31830
31831         PR preprocessor/61977
31832         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
31833         predefine __vector/__bool/__pixel macros nor context sensitive
31834         macros for CLK_ASM.
31835         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
31836
31837 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
31838
31839         * config/pa/pa.c (pa_output_move_double): Directly handle register
31840         indexed memory operand.  Simplify handling of scaled register indexed
31841         memory operands.
31842
31843 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
31844
31845         PR driver/65444
31846         * config/i386/linux-common.h (MPX_SPEC): New.
31847         (CHKP_SPEC): Add MPX_SPEC.
31848         * doc/invoke.texi (-fcheck-pointer-boudns): Document
31849         possible issues with '-z bndplt' support in linker.
31850
31851 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
31852
31853         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
31854         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
31855         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
31856         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
31857         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
31858
31859 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
31860
31861         * config/i386/sync.md (UNSPEC_MOVA): Remove.
31862         (atomic_load<mode>): Change operand 0 predicate to
31863         nonimmediate_operand and fix up the destination when needed.
31864         Use UNSPEC_LDA.
31865         (atomic_loaddi_fpu): Use UNSPEC_LDA.
31866         (atomic_store<mode>): Change operand 1 predicate to
31867         nonimmendate_operand and move the source to register when needed.
31868         Use UNSPEC_STA.
31869         (atomic_store<mode>_1): Use UNSPEC_STA.
31870         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
31871         Fix moves from memory operand.  Use UNSPEC_STA.
31872
31873 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31874
31875         * expmed.c (strict_volatile_bitfield_p): Check that the access will
31876         not cross a MODESIZE boundary.
31877         (store_bit_field, extract_bit_field): Added assertions in the
31878         strict volatile bitfields code path.
31879
31880 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
31881
31882         PR target/65624
31883         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
31884         Increase args array size by one to avoid buffer overflow.
31885
31886 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
31887
31888         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
31889         split_part.
31890         * ipa-inline.c (edge_badness): Add wrapper penalty.
31891         (sum_callers): Move up.
31892         (inline_small_functions): Set single_caller.
31893         * ipa-inline.h (inline_summary): Add single_caller.
31894         * ipa-split.c (split_function): Set split_part.
31895         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
31896         * cgraph.h (cgraph_node): Add split_part.
31897
31898 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
31899
31900         PR target/58945
31901         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
31902         Do not split operands 0 and operands 2 to halfmode.
31903         (atomic_compare_and_swap<mode>): Update for
31904         atomic_compare_and_swap<dwi>_doubleword changes.
31905
31906 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
31907
31908         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
31909         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
31910         no caching is done.
31911
31912 2015-03-31  Martin Liska  <mliska@suse.cz>
31913
31914         PR ipa/65557
31915         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
31916         has already filled up function summary.
31917         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
31918
31919 2015-03-31  Richard Biener  <rguenther@suse.de>
31920
31921         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
31922         of types.
31923
31924 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
31925
31926         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
31927         nested functions.
31928         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
31929         (s390_asm_output_function_label): Adapt to new signature of
31930         s390_function_num_hotpatch_hw
31931         Optimise the code generating assembler output.
31932         Add comments to assembler file.
31933
31934 2015-03-31  Richard Biener  <rguenther@suse.de>
31935
31936         PR middle-end/65626
31937         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
31938         of the noreturn call so it is last and cleanup_control_flow_bb
31939         can do the CFG part.
31940
31941 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
31942
31943         PR target/65531
31944         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
31945         same_comdat_group for external symbols.
31946         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
31947         infinite same_comdat_group traversal loop.
31948
31949 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
31950
31951         PR plugins/61176
31952         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
31953         automatically to $headers.
31954
31955 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
31956
31957         PR ipa/65610
31958         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
31959         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
31960         function.
31961         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
31962         Use it.
31963         * ipa-prop.c (param_type_may_change_p): Likewise.
31964         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
31965         (remove_unused_scope_block_p): Add in_ctor_dtor_block
31966         argument.  Before inlining, preserve
31967         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
31968         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
31969         recursive calls.
31970         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
31971
31972 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
31973
31974         PR ipa/65076
31975         * ipa-inline.c (edge_badness): Base denominator on callee's
31976         grwoth squared.
31977
31978 2015-03-27  Martin Jambor  <mjambor@suse.cz>
31979
31980         PR ipa/65478
31981         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
31982         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
31983         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
31984         node_calling_single_call.
31985         * ipa-cp.c (count_callers): New function.
31986         (set_single_call_flag): Likewise.
31987         (initialize_node_lattices): Count callers and set single_flag_call if
31988         necessary.
31989         (incorporate_penalties): New function.
31990         (good_cloning_opportunity_p): Use it, dump new flags.
31991         (propagate_constants_topo): Set node_within_scc flag if appropriate.
31992         * doc/invoke.texi (ipa-cp-recursion-penalty,
31993         ipa-cp-single-call-pentalty): Document.
31994
31995 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
31996
31997         PR ipa/65588
31998         * symtab.c (symtab_node::get_partitioning_class): Register vars
31999         are duplicated.
32000         * varpool.c (symbol_table::output_variables) Do not assemble unefined
32001         decls for non-symbols.
32002
32003 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
32004
32005         PR target/65248
32006         * output.h (default_binds_local_p_2): New.
32007         * varasm.c (default_binds_local_p_2): Renamed to ...
32008         (default_binds_local_p_3): This.  Don't return true on protected
32009         data symbol if protected data may be external.
32010         (default_binds_local_p): Use default_binds_local_p_3.
32011         (default_binds_local_p_1): Likewise.
32012         (default_binds_local_p_2): New.
32013         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
32014         default_binds_local_p_2 if TARGET_MACHO is undefined.
32015
32016 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
32017
32018         PR target/65593
32019         * config/i386/i386.c (legitimize_pic_address): If base
32020         is SYMBOL_REF or LABEL_REF using %rip addressing, force
32021         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
32022
32023 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
32024
32025         PR target/65531
32026         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
32027         comdat groups.
32028
32029 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
32030
32031         PR ipa/65600
32032         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
32033         of optimized out indirect call.
32034         (redirect_to_unreachable): Always build symbol table node for
32035         BUILT_IN_UNREACHABLE
32036
32037 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
32038
32039         PR target/65407
32040         * ira-costs.c (record_reg_classes): Process all constraint string
32041         containing 0-9.
32042
32043 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
32044
32045         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
32046         memory_operand.
32047
32048         PR target/65052
32049         * config/c6x/constraints.md (S3): New constraint.
32050         * config/c6x/c6x.md (real_jump): Use it.
32051
32052 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
32053
32054         PR middle-end/65595
32055         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
32056         do redirection if the call is not optimized out.
32057
32058 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
32059
32060         PR target/65495
32061         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
32062         (fchkp-check-incomplete-type): Add LTO.
32063         (fchkp-zero-input-bounds-for-main): Likewise.
32064         (fchkp-first-field-has-own-bounds): Likewise.
32065         (fchkp-narrow-bounds): Likewise.
32066         (fchkp-narrow-to-innermost-array): Likewise.
32067         (fchkp-use-static-bounds): Likewise.
32068         (fchkp-use-static-const-bounds): Likewise.
32069         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
32070
32071 2015-03-27  Marek Polacek  <polacek@redhat.com>
32072
32073         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
32074
32075 2015-03-27  Marek Polacek  <polacek@redhat.com>
32076
32077         PR sanitizer/65583
32078         * ubsan.c (ubsan_create_edge): New function.
32079         (instrument_bool_enum_load): Call it.
32080         (instrument_nonnull_arg): Likewise.
32081         (instrument_nonnull_return): Likewise.
32082         (instrument_object_size): Likewise.
32083
32084 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
32085
32086         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
32087         auto_vec.
32088
32089 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
32090
32091         PR lto/65536
32092         * lto-streamer.h (class lto_location_cache): New.
32093         (struct data_in): Add location_cache.
32094         (lto_input_location): Update prototype.
32095         (stream_input_location_now): New.
32096         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
32097         pointer to location.
32098         (stream_input_location): Update.
32099         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
32100         (warn_odr): Apply location cache before warning.
32101         (lto_input_location): Update prototype.
32102         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
32103         Use stream_input_location_now.
32104         * lto-streamer-in.c (lto_location_cache::current_cache): New static
32105         variable.
32106         (lto_location_cache::cmp_loc): New function.
32107         (lto_location_cache::apply_location_cache): New function.
32108         (lto_location_cache::accept_location_cache): New function.
32109         (lto_location_cache::revert_location_cache): New function.
32110         (lto_location_cache::input_location): New function.
32111         (lto_input_location): Do location caching.
32112         (stream_input_location_now): New function.
32113         (input_eh_region, input_struct_function_base): Use
32114         stream_input_location_now.
32115         (lto_data_in_create): use new.
32116         (lto_data_in_delete): Use delete.
32117         * tree-streamer-in.c (unpack_ts_block_value_fields,
32118         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
32119         lto_input_ts_exp_tree_pointers): Update for cached location api.
32120
32121 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
32122
32123         PR ipa/65076
32124         * passes.def: Add pass_nothrow.
32125         * ipa-pure-const.c: (pass_data_nothrow): New.
32126         (pass_nothrow): New.
32127         (pass_nothrow::execute): New.
32128         (make_pass_nothrow): New.
32129         * tree-pass.h (make_pass_nothrow): Declare.
32130
32131 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
32132
32133         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
32134         edge to change by speculation resolution or redirection.
32135         (edge_set_predicate): Likewise.
32136         (inline_summary_t::duplicate): Likewise.
32137         (remap_edge_summaries): Likewise.
32138
32139 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
32140
32141         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
32142         New macros.
32143         (can_inline_edge_p): Relax option matching for always inline functions.
32144
32145 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
32146
32147         PR target/65561
32148         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
32149         Check operand 4 and operand 0 for equality.
32150         (avx512f_vextract<shuffletype>32x4_1_maskm):
32151         Check operand 6 and operand 0 for equality.
32152         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
32153         for equality.
32154         (vec_extract_hi_<mode>_maskm): Ditto.
32155
32156 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
32157
32158         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
32159         dead calls back to live.
32160         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
32161         cross check to ...
32162         (cgraph_node::verify_node): ... here; verify only callee edges,
32163         not caller.
32164         * cif-code.def (CILK_SPAWN): New code.
32165
32166 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
32167
32168         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
32169         (edge_set_predicate): Use it to mark unreachable edges.
32170         (inline_summary_t::duplicate): Remove unnecesary code.
32171         (remap_edge_summaries): Likewise.
32172         (dump_inline_summary): Report contains_cilk_spawn.
32173         (compute_inline_parameters): Compute contains_cilk_spawn.
32174         (inline_read_section, inline_write_summary): Stream
32175         contains_cilk_spawn.
32176         * ipa-inline.c (can_inline_edge_p): Do not touch
32177         DECL_STRUCT_FUNCTION that may not be available;
32178         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
32179         remove check for callee_fun->can_throw_non_call_exceptions and
32180         replace it by optimization attribute check; check for flag_exceptions.
32181         * ipa-inline-transform.c (inline_call): Maintain
32182         DECL_FUNCTION_PERSONALITY
32183         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
32184
32185 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
32186
32187         PR tree-optimization/65551
32188         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
32189         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
32190
32191 2015-03-26  Richard Biener  <rguenther@suse.de>
32192
32193         PR middle-end/65555
32194         * tree-cfg.c (verify_gimple_call): Do not require a call to
32195         have no LHS if it wasn't recognized as control altering yet.
32196
32197 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
32198
32199         PR tree-optimization/64715
32200         * passes.def: Add another instance of pass_object_sizes before ccp1.
32201         * tree-object-size.c (pass_object_sizes::execute): In
32202         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
32203         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
32204         __bos result and the computed constant.  Remove redundant
32205         checks, obsoleted by gimple_call_builtin_p test.
32206
32207         * var-tracking.c (variable_tracking_main_1): Don't track
32208         variables for targetm.no_register_allocation targets.
32209
32210 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
32211
32212         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
32213         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
32214
32215 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
32216
32217         PR target/65569
32218         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
32219         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
32220         0.0 is correctly setup.
32221         (extenddftf2_internal): Likewise.
32222
32223 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
32224
32225         PR tree-optimization/65177
32226         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
32227         (bb_in_bbs): New.
32228         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
32229         edges not adjacent on the path to the original code.
32230
32231 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
32232
32233         PR bootstrap/65537
32234         * doc/install.texi (Building a native compiler): Document new
32235         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
32236         configuration assumes that the host supports the linker plugin.
32237
32238 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
32239
32240         PR target/65508
32241         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
32242         chain for generated call.
32243
32244 2015-03-25  Richard Biener  <rguenther@suse.de>
32245
32246         * passes.c (pass_manager::execute_early_local_passes): Guard
32247         execution of pass_chkp_instrumentation_passes with
32248         flag_check_pointer_bounds.
32249         (pass_chkp_instrumentation_passes::gate): Likewise.
32250
32251 2015-03-25  Martin Liska  <mliska@suse.cz>
32252
32253         PR tree-optimization/65538
32254         * symbol-summary.h (function_summary::~function_summary):
32255         Relese memory for allocated summaries.
32256         (function_summary::release): New function.
32257
32258 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
32259
32260         PR lto/65515
32261         * lto-streamer-out.c (DFS::worklist): New struct.
32262         (DFS::worklist_vec): New data member.
32263         (DFS::next_dfs_num): Remove.
32264         (DFS::DFS): Rewritten using worklist instead of recursion,
32265         using most of code from DFS::DFS_write_tree.
32266         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
32267         pass it to DFS_write_tree calls.
32268         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
32269         quick initial checks push it into worklist_vec and return.
32270
32271 2015-03-25  Richard Biener  <rguenther@suse.de>
32272
32273         PR middle-end/65519
32274         * genmatch.c (expr::gen_transform): Re-write to avoid
32275         using gimple_build.
32276
32277 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
32278
32279         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
32280
32281 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
32282
32283         * config/arm/arm.opt (print_tune_info): New option.
32284         * config/arm/arm.c (arm_print_tune_info): New function.
32285         (arm_file_start): Call arm_print_tune_info.
32286         * config/arm/arm-protos.h (struct tune_params): Add comment.
32287         * doc/invoke.texi (@item -mprint-tune-info): New item.
32288         (-mtune): mention it in ARM Option Summary.
32289
32290 2015-03-25  DJ Delorie  <dj@redhat.com>
32291
32292         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
32293         correct clause.
32294
32295 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
32296             Martin Liska  <mliska@suse.cz>
32297
32298         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
32299         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
32300         (sem_item::add_type): New function.
32301         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
32302         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
32303         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
32304         (sem_function::equals_wpa): Fix typo.
32305         * ipa-icf.h (sem_item::add_type): New function.
32306         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
32307         order.
32308
32309 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
32310
32311         PR tree-optimization/65533
32312         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
32313         with swapped operands, call vect_free_slp_tree on
32314         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
32315         vector.
32316
32317 2015-03-24  Richard Biener  <rguenther@suse.de>
32318
32319         PR middle-end/65517
32320         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
32321         for fixup if necessary.
32322
32323 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
32324
32325         * doc/extend.texi (Function Attributes): Add @cindex entries
32326         for all attributes and regularize their format.  Delete text
32327         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
32328         information about "eightbit_data", "tiny_data", and "model"
32329         variable attributes to the Variable Attributes section.  Fix
32330         some obvious typos and copy-editing issues.
32331         (Variable Attributes, Type Attributes): Likewise add/fix
32332         @cindex entries for all attributes.
32333
32334 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
32335
32336         PR target/65523
32337         * tree-chkp.c (chkp_build_returned_bound): Ignore
32338         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
32339
32340 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
32341
32342         PR target/65505
32343         * config/sh/predicates.md (simple_mem_operand,
32344         displacement_mem_operand): Add test for reg.
32345         (short_displacement_mem_operand): Test for displacement_mem_operand
32346         before invoking sh_disp_addr_displacement.
32347         * config/sh/constraints.md (Sdd, Sra): Simplify.
32348         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
32349         Remove redundant displacement_mem_operand tests.
32350
32351 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
32352
32353         PR target/65296
32354         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
32355         the same -mmcu=MCU more than once.
32356
32357 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
32358
32359         PR bootstrap/65522
32360         * ipa-devirt.c: Remove duplicate demangle.h include.
32361
32362         PR target/65504
32363         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
32364         on the pseudo.
32365         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
32366         REG_POINTER on *destptr after adjusting it for prologue size.
32367
32368         PR ipa/65521
32369         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
32370         ultimate_alias_target ()->order ints instead of
32371         ultimate_alias_target () pointers.
32372
32373 2015-03-23  Richard Biener  <rguenther@suse.de>
32374
32375         PR tree-optimization/65518
32376         * tree-vect-stmts.c (vectorizable_load): Reject single-element
32377         interleaving cases we generate absymal code for.
32378
32379 2015-03-23  Richard Biener  <rguenther@suse.de>
32380
32381         PR tree-optimization/65494
32382         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
32383         matches here.
32384         (vect_analyze_slp_instance): But do that here, always and once.
32385
32386 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32387
32388         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
32389         adding T or multiplying by T+1 and subracting T.
32390
32391 2015-03-22  Jeff Law  <law@redhat.com>
32392
32393         PR rtl-optimization/64317
32394         * Makefile.in (OBJS): Add gcse-common.c
32395         * gcse.c: Include gcse-common.h
32396         (struct modify_pair_s): Move structure definition to gcse-common.h
32397         (compute_transp): Move function to gcse-common.c.
32398         (canon_list_insert): Similarly.
32399         (record_last_mem_set_info): Break out some code and put it into
32400         gcse-common.c.  Call into the new common code.
32401         (compute_local_properties): Pass additional arguments to compute_transp.
32402         * postreload-gcse.c: Include gcse-common.h and df.h
32403         (modify_mem_list_set, blocks_with_calls): New variables.
32404         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
32405         (get_bb_avail_insn): Pass in the expression index too.
32406         (alloc_mem): Allocate memory for the new bitmaps and lists.
32407         (free_mem): Free memory for the new bitmaps and lists.
32408         (insert_expr_in_table): Record a bitmap index for each entry we
32409         add to the table.
32410         (record_last_mem_set_info): Call into common code in gcse-common.c.
32411         (get_bb_avail_insn): If no available insn was found in the requested
32412         BB.  If BB has a single predecessor, see if the expression is
32413         transparent in BB and available in that single predecessor.
32414         (compute_expr_transp): New wrapper for compute_transp.
32415         (eliminate_partially_redundant_load): Pass expression's bitmap_index
32416         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
32417         (gcse_after_reload_main): If there are elements in the hash table,
32418         then compute transparency for all the elements in the hash table.
32419         * gcse-common.h: New file.
32420         * gcse-common.c: New file.
32421
32422 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
32423
32424         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
32425         as an adjective.
32426         (System Headers): Likewise.
32427         (Ifdef): Likewise.
32428         (Traditional macros): Likewise.
32429         (Invocation): Likewise.
32430         (Option Index): Likewise.
32431         * doc/cppopts.texi (-M): Likewise.
32432         (-finput-charset): Likewise.
32433         (--help): Likewise.
32434         * doc.invoke.texi (AVR Options): Likewise.
32435         (V850 Options): Likewise.
32436
32437 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
32438
32439         PR ipa/65475
32440         * ipa-devirt.c: Include demangle.h
32441         (odr_type_d): Add field rtti_broken.
32442         (odr_subtypes_equivalent_p): Do not require name to match.
32443         (compare_virtual_tables): Fix typo; if type already has ODR violation,
32444         bypass the tests; be ready for function referneces in vtables that are
32445         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
32446         (warn_odr): Give up for nameless types.
32447         (warn_types_mismatch): Report mismatch in mangled names;
32448         report mismatch in anonymous namespaces; look into component types to
32449         give useful error; report when mismatch is dragged in from other ODR
32450         type.
32451         (odr_types_equivalent_p): Match types for being polymorphic; avoid
32452         duplicated diagnostics.
32453         (add_type_duplicate): Reorder checks so more informative ones come
32454         first; fix typo; do not output "the extra base is defined here" when
32455         we did not warn.
32456         (BINFO_N_BASE_BINFOS): Relax sanity check.
32457
32458 2015-03-22  Martin Liska  <mliska@suse.cz>
32459             Jakub Jelinek  <jakub@redhat.com>
32460
32461         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
32462         masks that can potentially include a builtin.
32463         (ix86_add_new_builtins): Introduce fast filter for isa values
32464         that cannot trigger builtin inclusion.
32465
32466 2015-03-22  Martin Liska  <mliska@suse.cz>
32467
32468         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
32469         (sem_item::update_hash_by_local_refs): Likewise.
32470         (sem_variable::get_hash): Empty line is fixed.
32471         (sem_item_optimizer::execute): Include adding of hash references.
32472         (sem_item_optimizer::update_hash_by_addr_refs): New function.
32473         (sem_item_optimizer::build_hash_based_classes): Use local hash.
32474         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
32475         (sem_item::update_hash_by_local_refs): Likewise.
32476
32477 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
32478
32479         PR ipa/65502
32480         * ipa-comdats.c (enqueue_references): Walk through thunks.
32481         (ipa_comdats): Likewise.
32482         (set_comdat_group_1): New function.
32483
32484 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
32485
32486         PR ipa/65475
32487         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
32488         non-polymorphic
32489
32490 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
32491             Gerald Pfeifer  <gerald@pfeifer.com>
32492
32493         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
32494
32495 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
32496             Sandra Loosemore  <sandra@codesourcery.com>
32497
32498         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
32499         function parameter declaration.
32500         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
32501         Update arguments to nios2_adjust_call_address().
32502         (sibcall_internal): Rename from *sibcall.
32503         (sibcall_value_internal): Rename from *sibcall_value.
32504         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
32505         (nios2_large_got_address): Add target temp reg parameter.
32506         (nios2_got_address): Adjust call to nios2_large_got_address, add
32507         force_reg around it.
32508         (nios2_load_pic_address): Add target temp reg parameter, replace call
32509         to nios2_got_address with corresponding code.
32510         (nios2_legitimize_constant_address): Update call to
32511         nios2_load_pic_address.
32512         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
32513         to use temp reg for PIC loading purposes.
32514         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
32515         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
32516         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
32517
32518 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
32519
32520         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
32521         usage of "the @option{...}".
32522         (-Wopenmp-simd): Likewise.
32523         (-fsanitize-recover): Likewise.
32524         (-fsanitize-undefined-trap-on-error): Likewise.
32525         (-flto): Likewise.
32526         (tracer-dynamic-coverage-feedback): Likewise.
32527         (reorder-block-duplicate-feedback): Likewise.
32528         (loop-unroll-jam-size): Likewise.
32529         (-B): Likewise.
32530         (-I-): Likewise.
32531         (-mabs=legacy): Likewise.
32532         (-mupper-regs-df): Likewise.
32533         (-mupper-regs-sf): Likewise.
32534         (-mpointers-to-nested-functions): Likewise.
32535
32536 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
32537
32538         * doc/extend.texi (Cilk Plus Builtins): Add markup.
32539
32540 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
32541
32542         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
32543         additional index entries and cross-references.
32544         (-fchkp-check-incomplete-type): Likewise.
32545         (-fchkp-first-field-has-own-bounds): Likewise.
32546         (-fchkp-narrow-to-innermost-array): Likewise.
32547         (-fchkp-use-fast-string-functions): Likewise.
32548         (-fchkp-use-nochk-string-functions): Likewise.
32549         (-fchkp-use-static-const-bounds): Likewise.
32550         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
32551         (-fchkp-instrument-marked-only): Likewise.
32552         (-fchkp-use-wrappers): Likewise.
32553         (-static-libmpx): Likewise.
32554         (-static-libmpxwrappers): Likewise.
32555         * doc/extend.texi (bnd_legacy): Likewise.
32556         (bnd_instrument): Likewise.
32557         (bnd_variable_size): Likewise.
32558         (Pointer Bounds Checker builtins): Likewise.
32559
32560 2015-03-21  Tom de Vries  <tom@codesourcery.com>
32561
32562         PR tree-optimization/65458
32563         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
32564         * cgraph.h (cgraph_node): Add parallelized_function field.
32565         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
32566         (input_overwrite_node): Read parallelized_function field.
32567         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
32568         parallelized_function on cgraph_node for child_fn.
32569         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
32570         Remove include of gt-tree-parloops.h.
32571         (parallelized_functions): Remove static variable.
32572         (parallelized_function_p): Rewrite using parallelized_function field of
32573         cgraph_node.
32574         (create_loop_fn): Remove adding to parallelized_functions.
32575         * Makefile.in (GTFILES): Remove tree-parloops.c
32576
32577 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
32578
32579         PR rtl-optimization/64366
32580         * lra.c (lra_update_insn_regno_info): Consider regs in
32581         CALL_INSN_FUNCTION_USAGE memory.
32582
32583 2015-03-20  Richard Biener  <rguenther@suse.de>
32584
32585         PR middle-end/64715
32586         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
32587         for type comparison and gcc_checking_assert.
32588         (chrec_fold_plus_poly_poly): Likewise.
32589         (chrec_fold_multiply_poly_poly): Likewise.
32590         (chrec_convert_1): Likewise.
32591         * gimplify.c (gimplify_expr): Remove premature folding of
32592         &X + CST to &MEM[&X, CST].
32593
32594 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
32595
32596         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
32597         already is final.
32598         (ipa_inline): Recompute inline_failed codes.
32599         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
32600         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
32601         CIF_FINAL_ERROR.
32602
32603 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
32604
32605         PR rtl-optimization/60851
32606         * recog.c (constrain_operands): Accept a pseudo register before reload
32607         for LRA enabled targets.
32608
32609 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
32610
32611         PR target/65240
32612         * config/rs6000/predicates.md (easy_fp_constant): Remove special
32613         -ffast-math handling that kept non-0 constants live in the RTL
32614         until reload.  Remove logic testing the number of instructions it
32615         took to create a constant in a GPR that was never used, due to a
32616         test for soft-float earlier.
32617         (memory_fp_constant): Delete, no longer used.
32618
32619         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
32620         alternatives for loading non-0 constants into GPRs for hard
32621         floating point that is no longer needed due to changes in
32622         easy_fp_constant.  Add support for loading 0.0 into GPRs.
32623         (mov<mode>_hardfloat32): Likewise.
32624         (mov<mode>_hardfloat64): Likewise.
32625         (mov<mode>_64bit_dm): Likewise.
32626         (movtd_64bit_nodm): Likewise.
32627         (pre-reload move FP constant define_split): Delete define_split,
32628         since it is no longer used.
32629         (extenddftf2_internal): Remove GHF constraints that are not valid
32630         for extenddftf2.
32631
32632 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
32633
32634         PR rtl-optimization/63491
32635         * lra-constraints.c (check_and_process_move): Use src instead of
32636         sreg.  Remove some dead code.
32637
32638 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
32639
32640         PR ipa/65380
32641         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
32642         (sem_variable::merge): Likewise.
32643
32644 2015-03-19  Martin Liska  <mliska@suse.cz>
32645
32646         PR ipa/65465
32647         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
32648         all fields of cgraph_thunk_info.
32649
32650 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
32651
32652         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
32653         clone instrumented thunks.
32654
32655 2015-03-19  Richard Biener  <rguenther@suse.de>
32656
32657         Revert
32658         2015-03-10  Richard Biener  <rguenther@suse.de>
32659
32660         PR middle-end/63155
32661         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
32662         * tree-ssa-coalesce.c: Include timevar.h.
32663         (attempt_coalesce): Handle graph being NULL.
32664         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
32665         Split out abnormal coalescing to ...
32666         (perform_abnormal_coalescing): ... this function.
32667         (coalesce_ssa_name): Perform abnormal coalescing without computing
32668         live/conflict.
32669         (verify_ssa_coalescing_worker): New function.
32670         (verify_ssa_coalescing): Likewise.
32671
32672 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32673             Jakub Jelinek  <jakub@redhat.com>
32674
32675         PR sanitizer/65400
32676         * tsan.c (instrument_gimple): Clear tail call flag on
32677         calls.
32678
32679 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
32680
32681         PR sanitizer/65400
32682         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
32683         call in the return bb.
32684         (find_split_points): Add RETURN_BB argument, don't call
32685         find_return_bb.
32686         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
32687         if true append TSAN_FUNC_EXIT internal call after the call to
32688         the split off function.
32689         (execute_split_functions): Call find_return_bb here.
32690         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
32691         Adjust find_split_points and split_function calls.
32692
32693 2015-03-18  DJ Delorie  <dj@redhat.com>
32694
32695         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
32696         (iorqi3_virt): Likewise.
32697
32698 2015-03-18  Tom de Vries  <tom@codesourcery.com>
32699
32700         * tree-parloops.c (parallelize_loops): Make static.
32701         * tree-parloops.h (parallelize_loops): Remove extern declaration.
32702
32703 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
32704
32705         PR middle-end/64491
32706         Revert:
32707         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
32708
32709         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
32710         condition would be removed due to undefined behaviour.
32711
32712 2015-03-18  Martin Liska  <mliska@suse.cz>
32713
32714         PR ipa/65432
32715         * cgraph.c (cgraph_node::get_create): Remove unnecessary
32716         xstrdup_for_dump wrapper.
32717         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
32718         sem_item::name.
32719         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
32720         with xstrdup_for_dump.
32721         (sem_variable::equals): Likewise.
32722         (sem_item_optimizer::read_section): Use symtab_node::name instead of
32723         sem_item::name.
32724         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
32725         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
32726         symtab_node::asm_name with xstrdup_for_dump.
32727         (congruence_class::dump): Use symtab_node::name instead of
32728         sem_item::name.
32729         * ipa-icf.h (symtab_node::name): Remove.
32730         (symtab_node::asm_name): Likewise.
32731
32732 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
32733
32734         PR tree-optimization/65450
32735         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
32736         function.
32737         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
32738         it instead of duplicate_ssa_name_ptr_info.
32739
32740         PR target/65222
32741         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
32742
32743 2015-03-18  Richard Biener  <rguenther@suse.de>
32744
32745         * tree-data-ref.h (struct access_matrix): Remove.
32746         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
32747         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
32748         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
32749         (am_vector_index_for_loop): Likewise.
32750         (struct data_reference): Remove access_matrix member.
32751         (DR_ACCESS_MATRIX): Remove.
32752         (lambda_vector_new): Add comment.
32753         (lambda_matrix_new): Use XOBNEWVEC.
32754
32755 2015-03-18  Richard Biener  <rguenther@suse.de>
32756
32757         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
32758         (pass_ch::execute): Cleanup the CFG only if we did sth.
32759         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
32760
32761 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32762
32763         * expmed.c (synth_mult): Use std::swap instead of manually
32764         swapping algorithms.
32765
32766 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
32767
32768         PR target/65078
32769         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
32770
32771 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
32772
32773         PR target/65296
32774         * config/avr/avr.opt (-nodevicelib): New option.
32775         * doc/invoke.texi (AVR Options): Document it.
32776         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
32777         libgcc.a, libc.a, libm.a.
32778         * config/avr/specs.h: Same.
32779         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
32780         which don't (directly) depend on the device.  Print more help.
32781         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
32782         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
32783         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
32784         case of an error.
32785         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
32786         for specs file name.
32787         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
32788         * config/avr/avr-mcus.def: Adjust initializers and comments.
32789
32790 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
32791
32792         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
32793         DECL_ONE_ONLY to check if decl is one only.
32794         * ipa-split.c (consider_split): Limit splitt of one only functions.
32795
32796 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
32797
32798         PR tree-optimization/65427
32799         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
32800         functions.
32801         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
32802
32803 2015-03-16  Marek Polacek  <polacek@redhat.com>
32804
32805         * cgraph.h (add_new_static_var): Remove declaration.
32806         * varpool.c (add_new_static_var): Remove function.
32807
32808 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
32809
32810         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
32811         instead of vec<tree> * with vec_alloc and release for args.
32812         Adjust all users.
32813
32814         PR middle-end/65431
32815         * omp-low.c (delete_omp_context): Only splay_tree_delete
32816         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
32817         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
32818
32819 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
32820
32821         PR sanitizer/64820
32822         * cfgexpand.c (align_base): New function.
32823         (alloc_stack_frame_space): Call it.
32824         (expand_stack_vars): Align prev_frame to be sure
32825         data->asan_vec elements aligned properly.
32826
32827 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
32828
32829         PR middle-end/65409
32830         * expr.c (store_field): Do not do a direct block copy if the source is
32831         a PARALLEL with BLKmode.
32832
32833 2015-03-16  Tom de Vries  <tom@codesourcery.com>
32834
32835         PR middle-end/65414
32836         Revert:
32837         2015-03-12  Tom de Vries  <tom@codesourcery.com>
32838
32839         PR rtl-optimization/64895
32840         * lra-lives.c (check_pseudos_live_through_calls): Use
32841         actual_call_used_reg_set instead of call_used_reg_set, if available.
32842
32843 2015-03-16  Alan Modra  <amodra@gmail.com>
32844
32845         PR target/63150
32846         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
32847         Modify Z->r bswapdi splitter to use dest in place of scratch.
32848         In r->Z and Z->r bswapdi splitter rename word_high, word_low
32849         to word1, word2 and rearrange logic to suit.
32850         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
32851         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
32852         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
32853         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
32854         early clobber.
32855
32856 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
32857
32858         PR tree-optimization/65369
32859         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
32860         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
32861         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
32862
32863         PR tree-optimization/65418
32864         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
32865         are casts in the first PLUS_EXPR operand, ensure tbias and
32866         *totallowp are in the inner type.
32867
32868         PR rtl-optimization/65401
32869         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
32870         argument.  If true, adjust_address_nv of x with big-endian
32871         correction for the mode widening to GET_MODE (y).
32872         (make_field_assignment): Don't do MEM mode widening here.
32873         Use MEM_P instead of GET_CODE == MEM.
32874
32875 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
32876
32877         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
32878         the external decls.
32879
32880 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32881
32882         PR target/64600
32883         * config/arm/arm.c (arm_gen_constant, AND case): Use
32884         ARM_SIGN_EXTEND when constructing AND mask.
32885
32886 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32887
32888         * graph.c (print_graph_cfg): Make function names visible and append
32889         parenthesis to it.  Also make groups of basic blocks belonging to the
32890         same function visible.
32891
32892 2015-03-12  Richard Biener  <rguenther@suse.de>
32893
32894         PR middle-end/44563
32895         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
32896         to avoid quadratic behavior with inline expansion splitting blocks.
32897         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
32898         with the successor if the predecessor will be merged with it.
32899         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
32900         entry block with its successor.
32901
32902 2015-03-13  Richard Biener  <rguenther@suse.de>
32903
32904         PR middle-end/44563
32905         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
32906         (cleanup_tree_cfg_1): Do not call it.
32907         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
32908         (fixup_noreturn_call): Mark the stmt as control altering.
32909         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
32910         here.
32911         (pass_data_fixup_cfg): Produce a dump file.
32912         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
32913         (need_noreturn_fixup): New global.
32914         (pass_dominator::execute): Fixup queued noreturn calls.
32915         (optimize_stmt): Queue calls that became noreturn for fixup.
32916         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
32917         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
32918         (el_to_fixup): New global.
32919         (eliminate_dom_walker::before_dom_childre): Queue calls that
32920         became noreturn for fixup.
32921         (eliminate): Fixup queued noreturn calls.
32922         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
32923         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
32924         (substitute_and_fold_dom_walker::before_dom_children): Queue
32925         alls that became noreturn for fixup.
32926         (substitute_and_fold): Fixup queued noreturn calls.
32927
32928 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
32929
32930         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
32931         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
32932         are building; for methods check ODR type of class they belong to if
32933         they may lead to a polymorphic call.
32934         (sem_function::compare_polymorphic_p): Be bit smarter about testing
32935         when function may lead to a polymorphic call.
32936         (sem_function::compare_type_list): Remove.
32937         (sem_variable::equals): Update use of compatible_types_p.
32938         (sem_variable::parse_tree_refs): Remove.
32939         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
32940         cdtor.
32941         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
32942         matching here.
32943         (func_checker::compatible_polymorphic_types_p): Break out from ...
32944         (unc_checker::compatible_types_p): ... here.
32945         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
32946         Declare.
32947         (unc_checker::compatible_types_p): Update.
32948         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
32949         Remove.
32950
32951 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32952
32953         PR rtl-optimization/65235
32954         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
32955         When first element of vec_concat is const_int, calculate its size
32956         using second element.
32957
32958 2015-03-12  Richard Biener  <rguenther@suse.de>
32959
32960         PR middle-end/65270
32961         * fold-const.c (operand_equal_p): Fix ordering of resetting
32962         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
32963
32964 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32965
32966         * config/s390/s390.c (s390_reorg): Move code to output nops after label
32967         to s390_reorg ().
32968         (s390_asm_output_function_label): Likewise.
32969         * config/s390/s390.c (s390_asm_output_function_label):
32970         Fix function label alignment with -mhtopatch.
32971         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
32972         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
32973         ("nop_2_byte"): New define_insn.
32974         ("nop_4_byte"): Likewise.
32975         ("nop_6_byte"): Likewise.
32976         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
32977         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
32978
32979 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
32980
32981         PR target/65103
32982         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
32983         register.
32984
32985 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
32986
32987         PR target/65044
32988         * toplev.c (process_options): Restrict Pointer Bounds Checker
32989         usage with Address Sanitizer.
32990
32991 2015-03-12  Richard Biener  <rguenther@suse.de>
32992
32993         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
32994         to split on.
32995         * omp-low.c (expand_omp_taskreg): Split block before removing
32996         the stmt.
32997         (expand_omp_target): Likewise.
32998         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
32999         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
33000         stmt to split_block.
33001
33002 2015-03-12  Tom de Vries  <tom@codesourcery.com>
33003
33004         PR rtl-optimization/64895
33005         * lra-lives.c (check_pseudos_live_through_calls): Use
33006         actual_call_used_reg_set instead of call_used_reg_set, if available.
33007
33008 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
33009
33010         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
33011         (cgraph_node::remove): Likewise.
33012         (cgraph_node::get_untransformed_body): Likewise.
33013         * varpool.c (varpool_node::remove): Likewise.
33014         (varpool_node::get_constructor): Add sanity check.
33015
33016 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
33017
33018         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
33019         old GCC versions.
33020         (-fabi-compat-version): Likewise.
33021         (-ffriend-injection): Likewise.
33022         (-Wdeclaration-after-statement): Likewise.
33023         (-fomit-frame-pointer): Likewise.
33024         (-ftree-coalesce-inlined-vars): Likewise.
33025         (-fvisibility=): Likewise.
33026         * doc/extend.texi (Typeof): Likewise.
33027         (Zero Length): Likewise.
33028         (Escaped Newlines): Likewise.
33029         (Compound Literals): Likewise.
33030         (Function Attributes): Likewise.
33031         (Label Attributes): Likewise.
33032         (Type Attributes): Likewise.
33033         (Function Names): Likewise.
33034         (Other Builtins): Likewise.
33035         (Function Specific Option Pragmas): Likewise.
33036         (C++ Interface): Likewise.
33037
33038 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
33039
33040         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
33041
33042 2015-03-11  Marek Polacek  <polacek@redhat.com>
33043
33044         PR tree-optimization/65388
33045         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
33046
33047 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
33048
33049         PR target/65296
33050         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
33051         * configure: Regenerate.
33052         * config.in: Regenerate.
33053         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
33054         [-mn-flash]: Document it.
33055         [__AVR_ARCH__]: Document avrtiny.
33056
33057         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
33058         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
33059         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
33060
33061 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33062
33063         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
33064
33065 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
33066
33067         PR target/65242
33068         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
33069         allow reloads of PLUS in floating point/VSX registers.
33070
33071 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
33072
33073         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
33074         crypto_sha256_fast.
33075         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
33076
33077 2015-03-11  Richard Biener  <rguenther@suse.de>
33078
33079         PR tree-optimization/65310
33080         * tree-sra.c (build_ref_for_offset): Also preserve larger
33081         alignment.
33082
33083 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
33084
33085         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
33086
33087 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
33088
33089         PR target/65368
33090         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
33091         new define_expand.
33092         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
33093
33094 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
33095
33096         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
33097         (sem_function::equals_wpa): ... here.
33098
33099 2015-03-10  Marek Polacek  <polacek@redhat.com>
33100             Jakub Jelinek  <jakub@redhat.com>
33101
33102         PR sanitizer/65367
33103         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
33104         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
33105         separately.
33106
33107 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
33108
33109         PR target/65286
33110         * config/rs6000/t-linux: For powerpc64* target set
33111         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
33112
33113 2015-03-10  Richard Biener  <rguenther@suse.de>
33114
33115         PR middle-end/44563
33116         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
33117         for redirect_all_calls.
33118
33119 2015-03-10  Marek Polacek  <polacek@redhat.com>
33120
33121         * gdbinit.in (pcfun): Define and document.
33122
33123 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
33124
33125         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
33126         of libgomp-plugin.h.
33127         (find_target_compiler): Support a case when the path to gcc is
33128         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
33129         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
33130         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
33131         libgomp-plugin.h.
33132         (main): Use GCC_INSTALL_NAME as target_driver_name.
33133         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
33134         define.
33135         (mkoffload.o): Remove obsolete include path and defines.
33136         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
33137
33138 2015-03-10  Richard Biener  <rguenther@suse.de>
33139
33140         PR middle-end/63155
33141         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
33142         * tree-ssa-coalesce.c: Include timevar.h.
33143         (attempt_coalesce): Handle graph being NULL.
33144         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
33145         Split out abnormal coalescing to ...
33146         (perform_abnormal_coalescing): ... this function.
33147         (coalesce_ssa_name): Perform abnormal coalescing without computing
33148         live/conflict.
33149         (verify_ssa_coalescing_worker): New function.
33150         (verify_ssa_coalescing): Likewise.
33151
33152 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
33153
33154         PR target/65296
33155         * config.gcc (extra_options) [avr]: Remove.
33156         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
33157         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
33158         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
33159
33160         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
33161         (-mmcu=): Add Var and MissingArgError properties.
33162         (-march=): Remove.
33163         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
33164         * config/avr/t-multilib: Regenerate.
33165         * config/avr/specs.h: New file.
33166         * config/avr/driver-avr.c: New file.
33167         * config/avr/genopt.sh: Remove file.
33168         * config/avr/avr-tables.opt: Remove file.
33169         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
33170         * config/avr/avr-c.c: Same.
33171         * avr-arch.h: Same.
33172         (avr_current_device): Remove proto.
33173         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
33174         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
33175         (EXTRA_SPEC_FUNCTIONS): Define.
33176         (avr_devicespecs_file): New specs function proto.
33177         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
33178         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
33179         (avr_current_device): Remove definition and usage.
33180         (avr_set_core_architecture): New static function.
33181         (avr_option_override): Use it.
33182         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
33183         (mcu_name): New static array.
33184         (comparator, avr_archs_str, avr_mcus_str): New static functions.
33185         (avr_inform_devices, avr_inform_core_architectures): New functions.
33186         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
33187         (avrlibc.h) [WITH_AVRLIBC]: Include.
33188         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
33189         (print_mcu): Rewrite from scratch.
33190         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
33191         Forward to avr-specific specs defined in device-specs file.
33192         * config/avr/t-avr (driver-avr.o): New rule.
33193         (avr-devices.o): Depend on avr-arch.h.
33194         (avr-mcus): No more depend on avr-tables.opt.
33195         (avr-tables.opt): Remove rule.
33196         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
33197
33198 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
33199
33200         * c-family/c.opt (fchkp-use-wrappers): New.
33201         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
33202         (chkp_wrap_function): New.
33203         (chkp_build_instrumented_fndecl): Support wrapped
33204         functions.
33205         * doc/invoke.texi (-fcheck-pointer-bounds): New.
33206         (-fchkp-check-incomplete-type): New.
33207         (-fchkp-first-field-has-own-bounds): New.
33208         (-fchkp-narrow-bounds): New.
33209         (-fchkp-narrow-to-innermost-array): New.
33210         (-fchkp-optimize): New.
33211         (-fchkp-use-fast-string-functions): New.
33212         (-fchkp-use-nochk-string-functions): New.
33213         (-fchkp-use-static-bounds): New.
33214         (-fchkp-use-static-const-bounds): New.
33215         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
33216         (-fchkp-check-read): New.
33217         (-fchkp-check-write): New.
33218         (-fchkp-store-bounds): New.
33219         (-fchkp-instrument-calls): New.
33220         (-fchkp-instrument-marked-only): New.
33221         (-fchkp-use-wrappers): New.
33222         (-static-libmpx): New.
33223         (-static-libmpxwrappers): New.
33224
33225 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
33226
33227         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
33228         (CHKP_SPEC): Add wrappers library.
33229         * c-family/c.opt (static-libmpxwrappers): New.
33230
33231 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
33232
33233         * config/i386/linux-common.h (LIBMPX_LIBS): New.
33234         (LIBMPX_SPEC): New.
33235         (CHKP_SPEC): New.
33236         * gcc.c (CHKP_SPEC): New.
33237         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
33238         * c-family/c.opt (static-libmpx): New.
33239
33240 2015-03-10  Richard Biener  <rguenther@suse.de>
33241
33242         PR middle-end/44563
33243         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
33244         for compare_type.
33245         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
33246         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
33247         (cgraph_add_edge_to_call_site_hash): Likewise.
33248         (cgraph_node::get_edge): Likewise.
33249         (cgraph_edge::set_call_stmt): Likewise.
33250         (cgraph_edge::remove_caller): Likewise.
33251
33252 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
33253
33254         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
33255         (callee_saved_gpr_regs_size): ... this.
33256         (callee_saved_regs_first_regno): Rename to ...
33257         (callee_saved_first_gpr_regno): ... this.
33258         (callee_saved_regs_last_regno) Rename to ...
33259         (callee_saved_last_gpr_regno): ... this.
33260         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
33261         variables.
33262         (nds32_initial_elimination_offset): Likewise.
33263         (nds32_expand_prologue): Likewise.
33264         (nds32_expand_epilogue): Likewise.
33265         (nds32_expand_prologue_v3push): Likewise.
33266         (nds32_expand_epilogue_v3pop): Likewise.
33267         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
33268         Adjust renamed variables.
33269         (nds32_output_stack_pop): Likewise.
33270
33271 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33272
33273         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
33274         code in comment.
33275
33276 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
33277
33278         PR rtl-optimization/65321
33279         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
33280         than shift mode.
33281         * var-tracking.c (use_narrower_mode): Likewise.
33282
33283 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
33284
33285         PR tree-optimization/65355
33286         * varasm.c (notice_global_symbol): Do not produce RTL.
33287         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
33288         anchor.
33289         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
33290         check for section anchors.
33291
33292 2015-03-10  Alan Modra  <amodra@gmail.com>
33293
33294         PR target/65286
33295         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
33296         to be single-arch by default.  Set cpu_is_64bit for powerpc64
33297         given --with-cpu=native.
33298         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
33299         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
33300         and powerpc64le.
33301         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
33302         rs6000_isa_flags rather than TARGET_64BIT.
33303
33304 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
33305             Kaz Kojima  <kkojima@gcc.gnu.org>
33306
33307         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
33308
33309 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
33310
33311         PR lto/65361
33312         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
33313         on a TREE_BINFO, instead use BINFO_TYPE.
33314
33315 2015-03-09  Richard Biener  <rguenther@suse.de>
33316
33317         PR middle-end/65270
33318         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
33319         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
33320         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
33321         of that.  When comparing dereferences compare alignment.
33322         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
33323
33324 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
33325
33326         * ipa-inline-analysis.c (check_callers): Check
33327         node->can_remove_if_no_direct_calls_and_refs_p.
33328         (growth_likely_positive): Reorganize to call
33329         can_remove_if_no_direct_calls_p later.
33330         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
33331         will_be_removed_from_program_if_no_direct_calls_p): Add
33332         will_inline parameter.
33333         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
33334         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
33335         Handle inliner case correctly.
33336
33337 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33338
33339         PR tree-optimization/63743
33340         * cfgexpand.c (reorder_operands): Also reorder if only second operand
33341         had its definition forwarded by TER.
33342
33343 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
33344
33345         PR lto/65316
33346         * ipa-utils.h (types_odr_comparable): Add strict argument.
33347         * ipa-devirt.c: Fix whitespace;
33348         (odr_hasher): Remove.
33349         (odr_name_hasher, odr_vtable_hasher): New hashers.
33350         (can_be_name_hashed_p): New predicate.
33351         (hash_type_name): remove.
33352         (hash_odr_name): New.
33353         (odr_name_hasher::hash): new.
33354         (can_be_vtable_hashed_p): New.
33355         (hash_odr_vtable): New.
33356         (odr_vtable_hasher::hash): New.
33357         (types_same_for_odr): Add strict parameter.
33358         (types_odr_comparable): Likewise.
33359         (odr_name_hasher::equal): New.
33360         (odr_vtable_hasher::equal): New.
33361         (odr_name_hasher::remove): New.
33362         (odr_hash_type): Change to hash_table<odr_name_hasher>.
33363         (odr_vtable_hash_type): New.
33364         (odr_vtable_hash): New.
33365         (odr_subtypes_equivalent_p): Do strict comparsion.
33366         (add_type_duplicate): Merge type names; cleanup; avoid type
33367         duplicates.
33368         (register_odr_type): Initialize vtable hash.
33369         (build_type_inheritance_graph): Likewise
33370         (get_odr_type): Reorg to use two hashes.
33371         (dump_possible_polymorphic_call_targets): Move sanity check after debug
33372         output.
33373         (ipa_devirt): Dump type_inheritance_graph.
33374         (types_same_for_odr): Add strict mode.
33375
33376 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
33377
33378         PR ipa/65334
33379         * cgraph.h (symtab_node): Add definition_alignment,
33380         can_increase_alignment_p and increase_alignment.
33381         * symtab.c (symtab_node::can_increase_alignment_p,
33382         increase_alignment_1, symtab_node::increase_alignment,
33383         symtab_node::definition_alignment): New.
33384         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
33385         can_increase_alignment_p.
33386         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
33387         * tree-vect-stmts.c (ensure_base_align): Likewise.
33388         * varasm.c (function_section_1): Use definition_alignment.
33389         (assemble_start_function): Likewise.
33390         (emit_local): likewise.
33391         (build_constant_desc): Likewsie.
33392         (output_constant_def_contents): Likewise.
33393         (place_block_symbol): Likewise.
33394         (output_object_block): Likewise.
33395
33396 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
33397
33398         PR ipa/65316
33399         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
33400         when outputting debug.
33401
33402 2015-03-07  Marek Polacek  <polacek@redhat.com>
33403             Martin Uecker  <uecker@eecs.berkeley.edu>
33404
33405         PR sanitizer/65280
33406         * doc/invoke.texi: Update description of -fsanitize=bounds.
33407
33408 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
33409
33410         * tree-ssa-phiopt.c (neg_replacement): Remove.
33411         (tree_ssa_phiopt_worker): Remove negate optimization.
33412
33413 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
33414
33415         PR ipa/65302
33416         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
33417
33418 2015-03-06  Richard Biener  <rguenther@suse.de>
33419
33420         PR middle-end/64928
33421         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
33422         and liveout_obstack members.
33423         (calculate_live_on_exit): Remove.
33424         (calculate_live_ranges): Change declaration.
33425         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
33426         (new_tree_live_info): Adjust.
33427         (calculate_live_ranges): Delete livein when not wanted.
33428         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
33429         Deal with partly deleted live info.
33430         (loe_visit_block): Remove temporary bitmap by using
33431         bitmap_ior_and_compl_into.
33432         (live_worklist): Adjust accordingly.
33433         (calculate_live_on_exit): Make static.
33434         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
33435         we do not need livein.
33436
33437 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
33438
33439         * real.c (real_from_string): Fix typo in assertion.
33440
33441 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
33442
33443         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
33444         the patch.
33445
33446 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
33447
33448         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
33449
33450 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
33451
33452         PR target/64342
33453         * lra-assigns.c (find_hard_regno_for): Rename to
33454         find_hard_regno_for_1.  Add a new parameter.
33455         (find_hard_regno_for): New function using find_hard_regno_for_1.
33456
33457 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33458
33459         PR rtl-optimization/65067
33460         * expmed.c (store_bit_field, extract_bit_field): Reworked the
33461         strict volatile bitfield handling.
33462
33463 2015-03-05  Martin Liska  <mliska@suse.cz>
33464
33465         PR ipa/65318
33466         * ipa-icf.c (sem_variable::equals): Compare variables types.
33467
33468 2015-03-05  Richard Henderson  <rth@redhat.com>
33469
33470         PR target/65121
33471         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
33472         correctly check weak symbol binding.
33473
33474 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
33475
33476         PR middle-end/65315
33477         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
33478         needed alignment.
33479
33480 2015-03-05  Martin Liska  <mliska@suse.cz>
33481
33482         * ipa-inline.c (inline_small_functions): Set default value to
33483         prevent warning during bootstrap.
33484         * tree.h: Add pragma guard that ignores false positives during
33485         bootstrap.
33486
33487 2015-03-05  Richard Biener  <rguenther@suse.de>
33488
33489         PR tree-optimization/65310
33490         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
33491         Properly preserve alignment of the base of the access.
33492
33493 2015-03-05  Richard Biener  <rguenther@suse.de>
33494
33495         PR ipa/65270
33496         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
33497         Compare dependence info.
33498
33499 2015-03-05  Richard Biener  <rguenther@suse.de>
33500
33501         PR middle-end/65233
33502         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
33503         tree-into-ssa.h.
33504         (walk_ssa_copies): Revert last chage.  Instead do not walk
33505         SSA names registered for SSA update.
33506
33507 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
33508
33509         PR ipa/65270
33510         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
33511         vtable references for their containing type.
33512         (sem_function::equals_wpa): Compare TYPE_RESTRICT
33513         and type attributes.
33514
33515 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
33516
33517         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
33518         before negating it.
33519         * stor-layout.c (finalize_record_size): Revert latest change.
33520
33521 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
33522
33523         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
33524
33525 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
33526
33527         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
33528         for correct comdat handling.
33529         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
33530         Likewise.
33531         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
33532         (used_from_object_file_p_worker): Remove.
33533         (cgraph_node::only_called_directly_or_alised): Add
33534         used_from_object_file_p.
33535         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
33536         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
33537         can_remove_if_no_direct_calls_and_refs_p.
33538
33539 2015-03-04  Nick Clifton  <nickc@redhat.com>
33540
33541         * config/rl78/rl78.h (enum reg_class): Remove real registers from
33542         General register class.
33543         * config/rl78/rl78-real.md: Replace general register constraints
33544         with real+virtual register constraints.
33545
33546 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33547
33548         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
33549         from checking for -mhtm option.
33550
33551 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
33552
33553         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
33554         (struct ipa_sra_check_caller_data): Add has_thunk field.
33555         (ipa_sra_check_caller): Check for thunk.
33556         (ipa_sra_preliminary_function_checks): Give up on function with
33557         thunks.
33558         (ipa_early_sra): Use call_for_symbol_and_aliases.
33559
33560 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
33561
33562         PR target/65249
33563         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
33564         called for __stack_chk_guard symbol.
33565
33566 2015-03-03  DJ Delorie  <dj@redhat.com>
33567
33568         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
33569         inc/dec.
33570         (*addhi3_real): Likewise.
33571         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
33572         pattern to match incrementing memory.
33573         * config/rl78/predicates.md (rl78_1_2_operand): New.
33574         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
33575         it's the same and only mem.
33576         (rl78_alloc_physical_registers_op2): If there's effectively only
33577         one MEM, transcode it into HL.
33578         (rl78_far_p): Reject addresses that aren't legitimate.
33579
33580 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
33581
33582         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
33583         negating it.
33584
33585         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
33586
33587 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
33588
33589         Implement call0 ABI for xtensa
33590         * config/xtensa/constraints.md ("a" constraint): Include stack
33591         pointer in case of call0 ABI.
33592         ("q" constraint): Make empty in case of call0 ABI.
33593         ("D" constraint): Include stack pointer in case of call0 ABI.
33594         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
33595         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
33596         prototypes.
33597         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
33598         variable.
33599         (xtensa_regno_to_class): Make it a local variable in the
33600         function xtensa_regno_to_class.
33601         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
33602         macro, function prototype and implementation.
33603         (reg_nonleaf_alloc_order): Make it a local variable in the
33604         function order_regs_for_local_alloc.
33605         (xtensa_conditional_register_usage): New function.
33606         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
33607         (xtensa_valid_move): Allow direct moves to stack pointer
33608         register in call0 ABI.
33609         (xtensa_setup_frame_addresses): Only spill register windows in
33610         windowed ABI.
33611         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
33612         call0 ABI respectively.
33613         (xtensa_function_arg_1): Only mark a7 register for copying in
33614         windowed ABI.
33615         (xtensa_call_save_reg): New function.
33616         (compute_frame_size): Add space for callee saved register
33617         storage to the frame size in call0 ABI.
33618         (xtensa_expand_prologue): Generate code to set up stack frame
33619         and save callee-saved registers in call0 ABI.
33620         (xtensa_expand_epilogue): New function.
33621         (xtensa_set_return_address): New function.
33622         (xtensa_return_addr): Calculate return address in call0 ABI.
33623         (xtensa_builtin_saveregs): Only mark a7 register for copying and
33624         emit copying code in windowed ABI.
33625         (order_regs_for_local_alloc): Add preferred register allocation
33626         order for non-leaf function in call0 ABI.
33627         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
33628         (xtensa_asm_trampoline_template): Add trampoline generation for
33629         call0 ABI.
33630         (xtensa_trampoline_init): Add trampoline initialization for
33631         call0 ABI.
33632         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
33633         functions.
33634         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
33635         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
33636         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
33637         ABI call-used registers.
33638         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
33639         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
33640         call0 ABI.
33641         (REG_CLASS_CONTENTS): Include all registers into the preferred
33642         reload registers set, adjust the set in the
33643         xtensa_conditional_register_usage.
33644         (xtensa_regno_to_class): Drop variable declaration.
33645         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
33646         function.
33647         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
33648         respectively.
33649         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
33650         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
33651         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
33652         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
33653         location in call0 ABI.
33654         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
33655         stack adjustment size when handling exception.
33656         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
33657         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
33658         definitions.
33659         ("return" pattern): Generate ret.n/ret in call0 ABI.
33660         ("epilogue" pattern): Expand epilogue.
33661         ("nonlocal_goto" pattern): Use default in call0 ABI.
33662         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
33663         emit eh_set_a0_* depending on ABI.
33664         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
33665         ("eh_set_a0_call0", "blockage"): New patterns.
33666
33667 2015-03-03  Martin Liska  <mliska@suse.cz>
33668
33669         PR ipa/65287
33670         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
33671
33672 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
33673
33674         PR 65138/target
33675         * config/rs6000/rs6000-tables.opt: Regenerate table.
33676
33677 2015-03-03  Renlin Li  <renlin.li@arm.com>
33678
33679         * doc/md.texi (@item ^): Change ? into ^.
33680
33681 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
33682
33683         * doc/tm.texi: Regenerated.
33684
33685 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
33686
33687         * builtins.c (expand_builtin_return_addr): Add
33688         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
33689         surrounding #ifdef.
33690         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
33691         definition to 1.
33692         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
33693         Likewise.
33694         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
33695         undefined.
33696         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
33697         paragraph.
33698
33699 2015-03-03  Martin Jambor  <mjambor@suse.cz>
33700             Eric Botcazou  <ebotcazou@adacore.com>
33701
33702         * tree-sra.c (ipa_sra_check_caller_data): New type.
33703         (has_caller_p): Removed.
33704         (ipa_sra_check_caller): New function.
33705         (ipa_sra_preliminary_function_checks): Use it.
33706
33707 2015-03-03  Martin Liska  <mliska@suse.cz>
33708
33709         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
33710         instead of if branch.
33711
33712 2015-03-03  Martin Liska  <mliska@suse.cz>
33713
33714         PR ipa/65282
33715         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
33716
33717 2015-03-23  Jeff Law  <law@redhat.com>
33718
33719         PR tree-optimization/65241
33720         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
33721         hash table if INSERT is true.
33722
33723 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
33724
33725         PR target/65296
33726         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
33727
33728 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
33729
33730         PR target/64331
33731         * config/avr/avr.c (context.h, tree-pass.h): Include them.
33732         (avr_pass_data_recompute_notes): New static variable.
33733         (avr_pass_recompute_notes): New class.
33734         (avr_register_passes): New static function.
33735         (avr_option_override): Call it.
33736
33737 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
33738
33739         Fix various problems with specs file generation.
33740
33741         PR target/65296
33742         * config.gcc (extra_gcc_objs) [avr]: Remove.
33743         * config/avr/driver-avr.c: Remove file.
33744         * config/avr/t-avr (driver-avr.o): Remove rule.
33745         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
33746         INCLUDES to build.  Depend on TM_H.
33747         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
33748         build warnings.  Fix non-matching types and non-existing %-codes.
33749         (tm.h): Include.
33750         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
33751         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
33752         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
33753         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
33754         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
33755         (LIBGCC_SPEC): Remove definitions.
33756
33757 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
33758
33759         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
33760         to create a register in testing mode.
33761
33762 2015-03-03  Martin Liska  <mliska@suse.cz>
33763             Jan Hubicka  <hubicka@ucw.cz>
33764
33765         PR ipa/65263
33766         * cgraph.c (cgraph_node::has_thunk_p): New function.
33767         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
33768         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
33769         (sem_function::merge): Assert is changed.
33770
33771 2015-03-03  Martin Liska  <mliska@suse.cz>
33772             Martin Jambor  <mjambor@suse.cz>
33773
33774         PR ipa/65087
33775         * ipa-icf.c (sem_item_optimizer::execute): Change function
33776         return value to boolean.
33777         (sem_item_optimizer::merge_classes): Likewise.
33778         (ipa_icf_driver): Return TODO_remove_functions in case there's
33779         a merge operation processed.
33780         * ipa-icf.h: Change function return value to boolean.
33781
33782 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
33783
33784         PR 65138/target
33785         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
33786         processor type for 64-bit little endian PowerPC.
33787
33788         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
33789         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
33790         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
33791         printing built-in mask so it does not pass NULL pointers.
33792
33793         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
33794         -mcpu=powerpc64le.
33795
33796 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
33797
33798         PR target/58158
33799         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
33800         !ISA_HAS_FP_CONDMOVE.
33801
33802 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
33803
33804         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
33805         reload_completed.
33806
33807 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
33808
33809         * doc/invoke.texi (Options for Code Generation Conventions):
33810         Fix URL of DSO paper.
33811
33812 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
33813
33814         PR ipa/65130
33815         * ipa-inline.c (check_callers): Looks for recursion.
33816         (inline_to_all_callers): Give up on uninlinable or recursive edges.
33817         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
33818         summary of inline clones.
33819         (do_estimate_growth_1): Fix recursion check.
33820
33821 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
33822
33823         PR ipa/64988
33824         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
33825         comdat groups.
33826
33827 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
33828             Aldy Hernandez  <aldyh@redhat.com>
33829
33830         PR lto/65276
33831         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
33832         when checking TYPE_BINFO.
33833
33834 2015-03-02  Richard Biener  <rguenther@suse.de>
33835
33836         PR ipa/65270
33837         * ipa-icf-gimple.c: Include builtins.h.
33838         (func_checker::compare_memory_operand): Compare base alignment.
33839
33840 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33841
33842         PR target/65184
33843         * config/i386/i386.c (ix86_pass_by_reference): Bounds are never
33844         passed by reference.
33845
33846 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
33847
33848         PR target/65183
33849         * tree-chkp.c (chkp_check_lower): Don't check against
33850         zero bounds for already instrumented functions.
33851         (chkp_check_upper): Likewise.
33852         (chkp_fini): Clean pass local data to avoid wrong reusage.
33853
33854 2015-02-28  Martin Liska  <mliska@suse.cz>
33855             Jan Hubicka  <hubicka@ucw.cz>
33856
33857         * ipa-icf.c (sem_variable::equals): Improve debug output;
33858         get variable constructor.
33859         (sem_variable::parse): Do not filter out too early; give up on
33860         volatile and register vars.
33861         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
33862         variables.
33863         * ipa-icf.h (sem_variable::init): Do not set ctor.
33864         (sem_variable::ctor): Remove.
33865
33866 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
33867
33868         PR middle-end/65233
33869         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
33870
33871 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
33872
33873         * ipa-icf.c: Include stor-layout.h
33874         (sem_function::compare_cgraph_references): Rename to ...
33875         (sem_item::compare_cgraph_references): ... this one.
33876         (sem_variable::equals_wpa): New function
33877         (sem_variable::equals): Do not check stuff already verified by
33878         equals_wpa.
33879         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
33880         * ipa-icf.h (sem_item): Add compare_cgraph_references.
33881         (sem_function): Remove compare_cgraph_references.
33882         (sem_variable): Turns equals_wpa into non-inline.
33883
33884 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
33885
33886         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
33887         (sem_item::add_expr): New function.
33888         (sem_function::hash_stmt): Handle operands of most statements.
33889         (sem_variable::get_hash): Hash the actual constructor.
33890         * ipa-icf.h (sem_item): Add add_expr.
33891         (sem_function): Update prototype of hash_stmt
33892
33893 2015-02-28  Martin Liska  <mliska@suse.cz>
33894             Jan Hubicka  <hubicka@ucw.cz>
33895
33896         PR ipa/65245
33897         * ipa-icf-gimple.c (func_checker::compare_function_decl):
33898         Remove.
33899         (func_checker::compare_variable_decl): Skip symtab vars.
33900         (func_checker::compare_cst_or_decl): Update.
33901         * ipa-icf.c (sem_function::parse): Do not consider aliases.
33902         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
33903         use correct symtab predicates.
33904         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
33905         (sem_variable::parse):  Update comment.
33906         (sem_item_optimizer::build_graph): Consider ultimate aliases
33907         for references.
33908
33909 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
33910
33911         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
33912         of OBJ_TYPE_REF.
33913
33914 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
33915
33916         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
33917         (sem_variable::merge) Likewise.
33918
33919 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
33920
33921         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
33922         target; also match flag_ipa_devirt.
33923
33924 2015-03-01  Martin Liska  <mliska@suse.cz>
33925             Jan Hubicka  <hubicka@ucw.cz>
33926
33927         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
33928         Validate variable alignment.
33929         * ipa-icf.c (sem_function::equals_private): Be more precise
33930         about non-common function attributes.
33931         (sem_variable::equals): Likewise.
33932
33933 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
33934
33935         PR ipa/65237
33936         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
33937         across COMDAT group boundary.
33938
33939 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
33940
33941         PR ipa/65232
33942         * ipa-icf.c (clear_decl_rtl): New function.
33943         (sem_function::merge): Clear RTL before forming alias.
33944         (sem_variable::merge): Clear RTL before forming alias.
33945
33946 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
33947
33948         PR ipa/65236
33949         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
33950
33951 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
33952
33953         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
33954         to neon_to_gp<q>.
33955
33956 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
33957
33958         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
33959         a typo in the description.
33960
33961 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
33962
33963         PR target/64317
33964         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
33965         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
33966         * lra-constraints.c: Include "params.h".
33967         (EBB_PROBABILITY_CUTOFF): Use
33968         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
33969         (lra_inheritance): Use '<' instead of '<=' for
33970         EBB_PROBABILITY_CUTOFF.
33971         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
33972         Document change.
33973
33974 2015-02-27  Martin Liska  <mliska@suse.cz>
33975
33976         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
33977         vector length condition.
33978
33979 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
33980
33981         * doc/extend.texi (x86 transactional memory intrinsics):
33982         Reorganize discussion of _xbegin.  Clarify that the return
33983         value is a bit mask.  Expand example and move to end of section.
33984
33985 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
33986             Aldy Hernandez  <aldyh@redhat.com>
33987
33988         PR rtl-optimization/65220
33989         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
33990
33991 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
33992
33993         PR target/65032
33994         * lra-remat.c (update_scratch_ops): New.
33995         (do_remat): Call it.
33996         * lra.c (lra_register_new_scratch_op): New. Take code from ...
33997         (remove_scratches): ... here.
33998         * lra-int.h (lra_register_new_scratch_op): New prototype.
33999
34000 2015-02-27  Marek Polacek  <polacek@redhat.com>
34001
34002         PR c/65040
34003         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
34004         -Wformat-signedness anymore.
34005
34006 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34007
34008         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
34009         function.
34010         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
34011
34012 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34013
34014         * config/s390/s390.c (enum s390_builtin):
34015         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
34016         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
34017         (s390_init_builtins): Generate new builtin functions.
34018         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
34019         (s390_sfpc, s390_efpc): New pattern definitions.
34020
34021 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34022
34023         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
34024         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
34025         (s390_builtin_decls): New array.
34026         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
34027         (s390_builtin_decl): New function.
34028         (TARGET_BUILTIN_DECL): Define macro.
34029
34030 2015-02-27  Richard Biener  <rguenther@suse.de>
34031
34032         PR middle-end/63175
34033         * builtins.c (get_object_alignment_2): Make sure to re-apply
34034         the ANDed mask after recursing to its operand gets us a new
34035         misalignment bit position.
34036
34037 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
34038             Martin Liska  <mliska@suse.cz>
34039
34040         PR bootstrap/65150
34041         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
34042         Use address_matters_p.
34043         (redirect_all_callers, set_addressable): New functions.
34044         (sem_function::merge): Reorganize and fix merging issues.
34045         (sem_variable::merge): Likewise.
34046         (sem_variable::compare_sections): Remove.
34047         * common.opt (fmerge-all-constants, fmerge-constants): Remove
34048         Optimization flag.
34049         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
34050         redirect them.
34051         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
34052         decl is used.
34053         (address_matters_1): New function.
34054         (symtab_node::address_matters_p): New function.
34055         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
34056         check for merged flag.
34057         * cgraph.h (address_matters_p): Declare.
34058         (symtab_node::address_taken_from_non_vtable_p): Remove.
34059         (symtab_node::address_can_be_compared_p): New method.
34060         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
34061         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
34062         Remove.
34063         (comdat_can_be_unshared_p_1) Use address_matters_p.
34064         (update_vtable_references): Fix formating.
34065         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
34066         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
34067         * cgraphclones.c: Preserve merged and icf_merged flags.
34068
34069 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
34070
34071         * doc/extend.texi (Function Attributes): Fix spelling and typos.
34072         (Label Attributes): Likewise.
34073         (Cilk Plus Builtins): Likewise.
34074         (ARC SIMD Built-in Functions): Likewise.
34075         (ARM C Language Extensions (ACLE)): Likewise.
34076         (PowerPC Built-in Functions): Likewise.
34077         (PowerPC Hardware Transactional Memory Built-in Functions):
34078         Likewise.
34079
34080 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
34081
34082         PR tree-optimization/65216
34083         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
34084         new stmt and new SSA_NAME for lhs whenever the arguments have
34085         changed and weren't just swapped.  Fix comment typo.
34086
34087         PR tree-optimization/65215
34088         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
34089         for PDP endian targets.
34090         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
34091         Fix up formatting issues.
34092         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
34093         size is smaller than the original, adjust MEM_REF offset by the
34094         difference of sizes.  Use is_gimple_mem_ref_addr instead of
34095         is_gimple_min_invariant test to avoid adding address temporaries.
34096
34097 2015-02-26  Martin Liska  <mliska@suse.cz>
34098             Jan Hubicka  <hubicka@ucw.cz>
34099
34100         PR ipa/64693
34101         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
34102         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
34103         (sem_item_optimizer::process_cong_reduction): Include division by
34104         sensitive references.
34105         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
34106         * ipa-ref.c (ipa_ref::address_matters_p): New function.
34107         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
34108
34109 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
34110
34111         PR target/65192
34112         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
34113         Remove.
34114         * config/avr/avr.c: Same.
34115         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
34116         Refuse any constant address not in 0..0xbf.
34117         * config/avr/avr.md (*mov<mode>, *movsf): Remove
34118         tiny_valid_direct_memory_access_range from insn conditions.
34119         (mov<mode>): Don't special-case expansion of avrtiny addresses.
34120
34121 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
34122
34123         PR target/61142
34124         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
34125         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
34126         * config/sh/predicates.md (const_logical_operand): New predicate.
34127         * config/sh/sh.md: Add new peephole2 patterns.
34128
34129 2015-02-26  Marek Polacek  <polacek@redhat.com>
34130
34131         PR ipa/65008
34132         * ipa-inline.c (early_inliner): Recompute inline parameters.
34133
34134 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34135
34136         PR target/65171
34137         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
34138         instructions with TImode operands are included in the analysis.
34139
34140 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
34141
34142         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
34143         of an EDGE_FSM_THREAD.
34144
34145 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
34146
34147         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
34148
34149 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
34150
34151         PR debug/46102
34152         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
34153
34154 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
34155
34156         PR tree-optimization/65048
34157         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
34158         (thread_through_all_blocks): Call valid_jump_thread_path.
34159         Remove invalid FSM jump-thread paths.
34160
34161 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
34162
34163         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
34164         (ipa_write_optimization_summaries): Likewise.
34165         * tree-streamer.h: Include data-streamer.h.
34166         (streamer_mode_table): Declare extern variable.
34167         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
34168         * lto-streamer-out.c (lto_output_init_mode_table,
34169         lto_write_mode_table): New functions.
34170         (produce_asm_for_decls): Call lto_write_mode_table when streaming
34171         offloading LTO.
34172         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
34173         (lto_create_simple_input_block): Add mode_table argument to the
34174         lto_input_block constructors.
34175         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
34176         Likewise.
34177         * data-streamer-in.c (string_for_index): Likewise.
34178         * ipa-inline-analysis.c (inline_read_section): Likewise.
34179         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
34180         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
34181         * lto-streamer-in.c (lto_read_body_or_constructor,
34182         lto_input_toplevel_asms): Likewise.
34183         (lto_input_mode_table): New function.
34184         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
34185         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
34186         Use bp_pack_machine_mode.
34187         * real.h (struct real_format): Add name field.
34188         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
34189         (class lto_input_block): Add mode_table member.
34190         (lto_input_block::lto_input_block): Add mode_table_ argument,
34191         initialize mode_table.
34192         (struct lto_file_decl_data): Add mode_table field.
34193         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
34194         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
34195         unpack_ts_decl_common_value_fields,
34196         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
34197         * tree-streamer.c (streamer_mode_table): New variable.
34198         * real.c (ieee_single_format, mips_single_format,
34199         motorola_single_format, spu_single_format, ieee_double_format,
34200         mips_double_format, motorola_double_format,
34201         ieee_extended_motorola_format, ieee_extended_intel_96_format,
34202         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
34203         ibm_extended_format, mips_extended_format, ieee_quad_format,
34204         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
34205         decimal_single_format, decimal_double_format, decimal_quad_format,
34206         ieee_half_format, arm_half_format, real_internal_format): Add name
34207         field.
34208         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
34209
34210 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
34211
34212         PR target/65161
34213         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
34214         reordering for selective scheduling.
34215
34216 2015-02-26  Terry Guo  <terry.guo@arm.com>
34217
34218         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
34219         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
34220         (arm_arch_no_volatile_ce): Declare new global variable.
34221         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
34222         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
34223         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
34224         (TARGET_NO_VOLATILE_CE): New macro.
34225         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
34226         volatile memory access in IT block
34227
34228 2015-02-25  Kai Tietz  <ktietz@redhat.com>
34229
34230         PR tree-optimization/61917
34231         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
34232         that reduc_def_stmt is null.
34233
34234 2015-02-25  Martin Liska  <mliska@suse.cz>
34235
34236         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
34237         hard register variables.
34238
34239 2015-02-25  Kai Tietz  <ktietz@redhat.com>
34240
34241         PR target/64212
34242         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
34243         (symtab::noninterposable_alias): Likewise.
34244
34245 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
34246
34247         PR target/65167
34248         * config/i386/i386.c (ix86_function_arg_regno_p): Support
34249         bounds registers.
34250         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
34251
34252 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
34253
34254         PR target/64997
34255         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
34256         as split condition; force split via '#' in output pattern.
34257
34258 2015-02-25  Richard Biener  <rguenther@suse.de>
34259             Kai Tietz  <ktietz@redhat.com>
34260
34261         PR tree-optimization/61917
34262         * tree-vect-loop.c (vectorizable_reduction): Allow
34263         vect_internal_def without reduction to exit graceful.
34264
34265 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
34266
34267         PR target/65196
34268         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
34269         only with NONDEBUG_INSN_P.
34270
34271 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
34272
34273         Use variadic macros with avr-log.c.
34274
34275         * config/avr/avr-protos.h (avr_vdump): New prototype.
34276         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
34277         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
34278         * config/avr/avr-log.c: Adjust comments.
34279         (avr_vdump): New function.
34280         (avr_vadump): Pass caller as 2nd argument instead of format string.
34281         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
34282         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
34283
34284 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
34285
34286         PR lto/64374
34287         * target.def (target_option_stream_in): New target hook.
34288         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
34289         targetm.target_option.post_stream_in if non-NULL.
34290         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
34291         * doc/tm.texi: Updated.
34292         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
34293         function.
34294         (TARGET_OPTION_POST_STREAM_IN): Redefine.
34295
34296 2015-02-24  Jeff Law  <law@redhat.com>
34297
34298         PR target/65117
34299         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
34300         of operand 0 and operand 2.
34301         (zero_cost_loop_end, loop_end): Similarly.
34302
34303 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
34304
34305         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
34306         CXX_MEM_STAT_INFO.
34307
34308 2015-02-24  DJ Delorie  <dj@redhat.com>
34309
34310         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
34311         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
34312         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
34313         instead of hardcoding SImode.
34314
34315 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
34316
34317         * omp-low.c (create_omp_child_function): Tag entrypoint
34318         functions with a special attribute.
34319
34320 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
34321
34322         PR target/65058
34323         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
34324
34325 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
34326
34327         PR rtl-optimization/65123
34328         * lra-remat.c (operand_to_remat): Check hard regs in insn
34329         definition too.
34330
34331 2015-02-24  Nick Clifton  <nickc@redhat.com>
34332
34333         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
34334         to the assembler.
34335
34336 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
34337
34338         PR libgomp/64625
34339         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
34340         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
34341         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
34342         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
34343         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
34344         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
34345         (BUILT_IN_GOACC_PARALLEL): Specify as
34346         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
34347         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
34348         * builtin-types.def
34349         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
34350         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
34351         Remove function types.
34352         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
34353         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
34354         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
34355         New function types.
34356
34357 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
34358
34359         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
34360
34361 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
34362
34363         PR tree-optimization/65170
34364         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
34365         if val[1] < 0, clear also val[2] and return 3.
34366
34367 2015-02-24  Alan Modra  <amodra@gmail.com>
34368
34369         PR target/65172
34370         * config/rs6000/rs6000.c (get_memref_parts): Only return true
34371         when *base is a reg.  Handle nested plus addresses.  Simplify
34372         pre_modify test.
34373
34374 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
34375
34376         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
34377         use natural alignment when optimizing for size.
34378
34379 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
34380
34381         PR target/65153
34382         * config/sh/sh.md (movsicc_true+3): Remove peephole.
34383         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
34384         * config/sh/sh.c (replace_n_hard_rtx): Remove.
34385
34386 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
34387
34388         PR fortran/63427
34389         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
34390         too big for a wide_int.  Implement missing wrapping operation.
34391
34392 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
34393
34394         PR target/65163
34395         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
34396         instead of const_int 4294901760.
34397
34398 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
34399
34400         * config/avr/t-avr: Fix typo in comment.
34401
34402 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
34403
34404         * doc/rtl.texi (fma): Clarify documentation.
34405
34406 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
34407
34408         PR debug/58123
34409         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
34410         over input_location.
34411
34412 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
34413
34414         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
34415         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
34416         restrict alignments to absolute_biggest_alignment.
34417         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
34418         Define.
34419         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
34420         * doc/tm.texi: Regenerate.
34421         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
34422
34423 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
34424
34425         PR target/64172
34426         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
34427
34428 2015-02-20  Richard Biener  <rguenther@suse.de>
34429
34430         PR tree-optimization/65136
34431         * tree-ssa-propagate.c: Include cfgloop.h.
34432         (replace_phi_args_in): Avoid replacing loop latch edge PHI
34433         arguments with constants.
34434
34435 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
34436             Martin Liska  <mliska@suse.cz>
34437
34438         PR target/63892
34439         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
34440         don't try to create_thunk if stdarg_p.  If
34441         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
34442         redirect_callers if possible.
34443         (sem_item_optimizer::execute): Call unregister_hooks here...
34444         (ipa_icf_driver): ... instead of here.
34445
34446 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34447
34448         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
34449         Mark operand 0 as earlyclobber in 2nd alternative.
34450         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
34451         Write negated shift amount into QI lowpart operand 0 and use it
34452         in the shift step.
34453         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
34454
34455 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
34456
34457         * cgraph.h (clone_function_name_1): Declare.
34458         * cgraphclones.c (clone_function_name_1): New function.
34459         (clone_function_name): Use it.
34460         * lto-partition.c: Include "stringpool.h".
34461         (must_not_rename, maybe_rewrite_identifier)
34462         (validize_symbol_for_target): New static functions.
34463         (privatize_symbol_name): Use must_not_rename.
34464         (promote_symbol): Call validize_symbol_for_target.
34465         (lto_promote_cross_file_statics): Likewise.
34466         (lto_promote_statics_nonwpa): Likewise.
34467
34468 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
34469
34470         PR target/64452
34471         * config/avr/avr.md (pushhi_insn): New insn.
34472         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
34473
34474 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
34475             Jakub Jelinek  <jakub@redhat.com>
34476
34477         * tree-streamer.c (preload_common_nodes): Don't preload
34478         TI_VA_LIST* for offloading.
34479         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
34480         in_lto_p.
34481
34482 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
34483
34484         * config/pa/pa.c (pa_emit_move_sequence): Always force
34485         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
34486         note on insn.
34487
34488         * config/pa/pa.c (pa_reloc_rw_mask): New function.
34489         (TARGET_ASM_RELOC_RW_MASK): Define.
34490         (pa_cannot_force_const_mem): Revert previous change.
34491
34492 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
34493             Jan Hubicka  <hubicka@ucw.cz>
34494
34495         PR ipa/65028
34496         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
34497         across jump functions.
34498
34499 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
34500
34501         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
34502
34503 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
34504
34505         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
34506
34507 2015-02-19  Richard Henderson  <rth@redhat.com>
34508
34509         PR middle-end/65074
34510         * varasm.c (default_binds_local_p_2): Don't test node->definition;
34511         test DECL_EXTERNAL independent of symtab_node.
34512
34513 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
34514
34515         PR lto/65012
34516         * varpool.c (varpool_node::get_constructor): Return early
34517         if this->lto_file_data is NULL.
34518
34519 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
34520
34521         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
34522         (rank_for_schedule_debug): Update.
34523         (ready_sort): Make static.  Move sorting logic to ...
34524         (ready_sort_debug, ready_sort_real): New static functions.
34525         (schedule_block): Sort both debug insns and real insns in preparation
34526         for ready list trimming.  Improve debug output.
34527         * sched-int.h (ready_sort): Remove global declaration.
34528
34529 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
34530
34531         * ipa-icf.c (sem_function::equals_private): Adjust.
34532         (sem_function::bb_dict_test): Take a vec<int> * instead of
34533         auto_vec<int>.
34534         * ipa-icf.h (bb_dict_test): Likewise.
34535
34536 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
34537
34538         PR gcov-profile/64634
34539         * tree-eh.c (frob_into_branch_around): Fix up typos
34540         in function comment.
34541         (lower_catch): Put eh_seq resulting from EH lowering of
34542         the cleanup sequence after the cleanup rather than before it.
34543
34544 2015-02-18  Tom de Vries  <tom@codesourcery.com>
34545
34546         * common.opt (fstdarg-opt): New option.
34547         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
34548         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
34549         (@item -fstdarg-opt): New item.
34550
34551 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
34552
34553         PR target/65064
34554         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
34555         for common symbols.
34556
34557 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
34558
34559         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
34560         insn-modes.h.
34561         (ALL_HOST_OBJS): Add mkoffload.o.
34562         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
34563
34564 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
34565
34566         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
34567         (compare_virtual_tables): Be smarter about skipping typeinfos;
34568         do sane output on virtual table table mismatch.
34569         (warn_odr): Be ready for forward declarations of enums;
34570         output sane info on base mismatch and virtual table mismatch.
34571         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
34572         when only one type is polymorphic.
34573         (get_odr_type): Fix hashtable corruption.
34574         (dump_odr_type): Dump mangled names.
34575
34576 2015-02-18  Richard Biener  <rguenther@suse.de>
34577
34578         PR tree-optimization/65063
34579         * tree-predcom.c (determine_unroll_factor): Return 1 if we
34580         have replaced looparound PHIs.
34581
34582 2015-02-18  Martin Liska  <mliska@suse.cz>
34583
34584         * lto-streamer.c (lto_streamer_init): Encapsulate
34585         streamer_check_handled_ts_structures with checking macro.
34586
34587 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
34588
34589         PR ipa/65087
34590         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
34591         section if !implicit_section.
34592         (cgraph_node::create_version_clone_with_body): Likewise.
34593         * trans-mem.c (ipa_tm_create_version): Likewise.
34594
34595 2015-02-18  Richard Biener  <rguenther@suse.de>
34596
34597         PR tree-optimization/62217
34598         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
34599         into BIVs.
34600
34601 2015-02-18  Marek Polacek  <polacek@redhat.com>
34602
34603         PR sanitizer/65081
34604         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
34605         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
34606         is in range [-16K, -1].  Don't issue run-time error if
34607         (ptr > ptr + offset).
34608
34609 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
34610
34611         * doc/install.texi (nvptx-*-none): New section.
34612         * doc/invoke.texi (Nvidia PTX Options): Likewise.
34613         * config/nvptx/nvptx.opt: Update.
34614
34615         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
34616         (access_check): New functions, copied from
34617         config/i386/intelmic-mkoffload.c.
34618         (main): For non-installed testing, look in all COMPILER_PATHs for
34619         GCC_INSTALL_NAME.
34620
34621         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
34622
34623 2015-02-18  Andrew Pinski  <apinski@cavium.com>
34624             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
34625
34626         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
34627         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
34628
34629 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
34630
34631         * ipa-visibility.c (function_and_variable_visibility): Only
34632         check locality if node is not already local.
34633         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
34634         call_for_symbol_and_aliases instead of
34635         call_for_symbol_thunks_and_aliases.
34636         (ipa_inline): Likewise.
34637         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
34638         first walk aliases.
34639         * ipa.c (symbol_table::remove_unreachable_nodes): Use
34640         call_for_symbol_and_aliases.
34641         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
34642         (ipa_propagate_frequency_1): Use it; use opt_for_fn
34643         (ipa_propagate_frequency): Update.
34644         (ipa_profile): Add opt_for_fn gueards.
34645
34646 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
34647
34648         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
34649         * doc/invoke.texi (SH options): Document it.
34650         * config/sh/sh.c (sh_insn_length_adjustment): Check
34651         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
34652
34653 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
34654
34655         * common.opt (fipa-cp-alignment): New.
34656         * ipa-cp.c (ipcp_store_alignment_results): Check
34657         flag_ipa_cp_alignment.
34658         * opts.c (default_options_table): Enable -fipa-cp-alignment for
34659         -O2.
34660         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
34661         * doc/invoke.texi: Document -fipa-cp-alignment.
34662
34663 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
34664
34665         PR target/64793
34666         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
34667         to nil.  Adjust comments.
34668
34669 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
34670
34671         * ipa-visibility.c (function_and_variable_visibility): Only
34672         check locality if node is not already local.
34673         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
34674         call_for_symbol_and_aliases instead of
34675         call_for_symbol_thunks_and_aliases.
34676         (ipa_inline): Likewise.
34677         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
34678         first walk aliases.
34679         * ipa.c (symbol_table::remove_unreachable_nodes): Use
34680         call_for_symbol_and_aliases.
34681         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
34682         (ipa_propagate_frequency_1): Use it; use opt_for_fn
34683         (ipa_propagate_frequency): Update.
34684         (ipa_profile): Add opt_for_fn guards.
34685
34686 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
34687
34688         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
34689         skipping of "strange" tokens.
34690
34691 2015-02-17  Jeff Law  <law@redhat.com>
34692
34693         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
34694         obsolete comment.
34695
34696 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
34697
34698         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
34699         as forcing a HARD_DEP between instructions, thereby
34700         disallowing rewriting to break dependencies.
34701
34702 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
34703
34704         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
34705         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
34706         variables in boundary that have no inlitalizer encoded and are
34707         not aliases.
34708         * varasm.c (default_binds_local_p_2): External definitions do not
34709         count as definitions here.
34710
34711 2015-02-16  Jeff Law  <law@redhat.com>
34712
34713         PR tree-optimization/64823
34714         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
34715         statements.
34716         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
34717         threading through blocks with PHIs, but no statements.
34718         (thread_through_normal_block): Distinguish between blocks where
34719         we did not process all the statements and blocks with no statements.
34720
34721 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
34722             James Greenhalgh  <james.greenhalgh@arm.com>
34723
34724         PR ipa/64963
34725         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
34726         section if not linkonce.  Fix up formatting.
34727         (cgraph_node::create_version_clone_with_body): Copy section.
34728         * trans-mem.c (ipa_tm_create_version): Likewise.
34729
34730 2015-02-16  Richard Biener  <rguenther@suse.de>
34731
34732         PR tree-optimization/65077
34733         * tree-ssa-structalias.c (get_constraint_for_1): Handle
34734         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
34735         (find_func_aliases): Allow float values to carry pointers again.
34736
34737 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
34738
34739         * doc/install.texi (Specific): Reorder targets list to put
34740         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
34741         from the top menu.
34742
34743 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
34744             David Edelsohn  <dje.gcc@gmail.com>
34745
34746         PR target/65058
34747         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
34748         mapping class to external variable or function reference.
34749         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
34750         mapping class.
34751
34752 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
34753
34754         PR target/53348
34755         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
34756         ASM_WEAKEN_DECL if defined.
34757
34758 2015-02-16  Richard Biener  <rguenther@suse.de>
34759
34760         PR lto/65015
34761         * varasm.c (default_file_start): For LTO produced units
34762         emit <artificial> as file directive.
34763
34764 2015-02-16  Richard Biener  <rguenther@suse.de>
34765
34766         PR tree-optimization/63593
34767         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
34768         stmts and releasing SSA names until...
34769         (execute_pred_commoning): ... after processing all chains.
34770
34771 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
34772
34773         PR ipa/65059
34774         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
34775         external functions.
34776
34777 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
34778
34779         * doc/bugreport.texi: Adjust section titles throughout the file
34780         to use "Title Case".
34781         * doc/extend.texi: Likewise.
34782         * doc/gcov.texi: Likewise.
34783         * doc/implement-c.texi: Likewise.
34784         * doc/implement-cxx.texi: Likewise.
34785         * doc/invoke.texi: Likewise.
34786         * doc/objc.texi: Likewise.
34787         * doc/standards.texi: Likewise.
34788         * doc/trouble.texi: Likewise.
34789
34790 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
34791
34792         * cgraph.h (symtab_node::has_aliases_p): Simplify.
34793         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
34794         * tree.c (lookup_binfo_at_offset): Make static.
34795         (get_binfo_at_offset): Do not shadow offset; add explanatory
34796         comment.
34797
34798 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
34799
34800         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
34801         for all floading point loads and stores except those using a register
34802         index address.
34803         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
34804         to a register.
34805
34806 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
34807
34808         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
34809         (do_estimate_growth_1): Record if any uninlinable edge was seen.
34810         (estimate_growth): Handle uninlinable edges correctly.
34811         (check_callers): New.
34812         (growth_likely_positive): Handle aliases correctly.
34813
34814 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
34815
34816         * ipa-chkp.c: Use iterate_direct_aliases.
34817         * symtab.c (resolution_used_from_other_file_p): Move inline.
34818         (symtab_node::create_reference): Fix formating.
34819         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
34820         (symtab_node::iterate_reference): Move inline.
34821         (symtab_node::iterate_referring): Move inline.
34822         (symtab_node::iterate_direct_aliases): Move inline.
34823         (symtab_node::used_from_object_file_p_worker): Inline into ...
34824         (symtab_node::used_from_object_file_p): ... this one; move inline.
34825         (symtab_node::call_for_symbol_and_aliases): Move inline;
34826         use iterate_direct_aliases.
34827         (symtab_node::call_for_symbol_and_aliases_1): New method.
34828         (cgraph_node::call_for_symbol_and_aliases): Move inline;
34829         use iterate_direct_aliases.
34830         (cgraph_node::call_for_symbol_and_aliases_1): New method.
34831         (varpool_node::call_for_node_and_aliases): Rename to ...
34832         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
34833         use iterate_direct_aliases.
34834         (varpool_node::call_for_symbol_and_aliases_1): New method.
34835         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
34836         (ipa_discover_readonly_nonaddressable_var): Update.
34837         * ipa-devirt.c: Fix formating.
34838         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
34839         Move inline.
34840         (cgraph_node::call_for_symbol_and_aliases): Move inline.
34841         (cgraph_node::call_for_symbol_and_aliases_1): New function..
34842         * cgraph.h (used_from_object_file_p_worker): Remove.
34843         (resolution_used_from_other_file_p): Move inline.
34844         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
34845         (symtab_node::iterate_reference): Move inline.
34846         (symtab_node::iterate_referring): Move inline.
34847         (symtab_node::iterate_direct_aliases): Move inline.
34848         (symtab_node::used_from_object_file_p_worker): Inline into ...
34849         (symtab_node::used_from_object_file_p): Move inline.
34850         * tree-emutls.c (ipa_lower_emutls): Update.
34851         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
34852         (varpool_node::call_for_node_and_aliases): Remove.
34853
34854 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
34855
34856         PR tree-optimization/62209
34857         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
34858         op == range->exp, insert seq and gimplified code after labels
34859         instead of after the phi.
34860
34861 2015-02-13  Jeff Law  <law@redhat.com>
34862
34863         PR bootstrap/65060
34864         Revert my change for tree-optimization/64823.
34865
34866 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
34867
34868         PR tree-optimization/65053
34869         * tree-ssa-phiopt.c (value_replacement): When moving assign before
34870         cond, either reset VR on lhs or set it to phi result VR.
34871
34872 2015-02-13  Jeff Law  <law@redhat.com>
34873
34874         PR tree-optimization/64823
34875         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
34876         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
34877         threading through blocks with PHIs, but no statements.
34878         (thread_through_normal_block): Distinguish between blocks where
34879         we did not process all the statements and blocks with no statements.
34880
34881         PR rtl-optimization/47477
34882         * match.pd (convert (plus/minus (convert @0) (convert @1): New
34883         simplifier to narrow arithmetic.
34884
34885 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
34886
34887         PR ipa/65028
34888         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
34889         polymorphic call info when type is not known to be preserved.
34890
34891 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
34892
34893         PR ipa/65028
34894         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
34895         (inline_call): Use it.
34896
34897 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
34898
34899         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
34900         GOMP_DEVICE_NVIDIA_PTX.
34901
34902 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
34903
34904         PR ipa/65034
34905         * stmt.c (emit_case_nodes): Use void_type_node instead of
34906         NULL_TREE as LABEL_DECL type.
34907
34908 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
34909
34910         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
34911         constraints.
34912         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
34913         symbolic references to data to be forced to constant memory on the
34914         SOM target.
34915
34916 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
34917
34918         PR tree-optimization/65002
34919         * tree-cfg.c (pass_data_fixup_cfg): Don't update
34920         SSA on start.
34921         * tree-sra.c (some_callers_have_no_vuse_p): New.
34922         (ipa_early_sra): Reject functions whose callers
34923         assume function is read only.
34924
34925 2015-02-13  Richard Biener  <rguenther@suse.de>
34926
34927         PR lto/65015
34928         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
34929         for LTO produced CUs.
34930
34931 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
34932
34933         PR tree-optimization/64705
34934         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
34935         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
34936         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
34937         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
34938         expand_simple_operations.
34939
34940 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
34941             Richard Henderson  <rth@redhat.com>
34942
34943         PR rtl/32219
34944         * cgraphunit.c (cgraph_node::finalize_function): Set definition
34945         before notice_global_symbol.
34946         (varpool_node::finalize_decl): Likewise.
34947         * varasm.c (default_binds_local_p_2): Rename from
34948         default_binds_local_p_1, add weak_dominate argument.  Use direct
34949         returns instead of assigning to local variable.  Unify varpool and
34950         cgraph paths via symtab_node.  Reject undef weak variables before
34951         testing visibility.  Reorder tests for simplicity.
34952         (default_binds_local_p): Use default_binds_local_p_2.
34953         (default_binds_local_p_1): Likewise.
34954         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
34955         via symtab_node.
34956         (default_elf_asm_output_external): Emit visibility when specified.
34957
34958 2015-02-13  Alan Modra  <amodra@gmail.com>
34959
34960         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
34961         code setting up r11 for out-of-line fp restore.
34962
34963 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
34964
34965         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
34966         (muser-mode): Likewise.
34967
34968 2015-02-13  Alan Modra  <amodra@gmail.com>
34969
34970         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
34971         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
34972
34973 2015-02-12  David Howells  <dhowells@redhat.com>
34974
34975         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
34976         warning.
34977         * tree-ssa-uninit.c (dump_predicates): Likewise.
34978         * opts.c (print_filtered_help): Likewise.
34979
34980 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
34981
34982         * dwarf2out.c (output_die): Use "%s", name instead of name to
34983         avoid -Wformat-security warning.
34984
34985         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
34986         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
34987         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
34988         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
34989
34990 2015-02-12  Jason Merrill  <jason@redhat.com>
34991
34992         * common.opt (-flifetime-dse): New.
34993
34994 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
34995
34996         PR sanitizer/65019
34997         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
34998
34999         PR tree-optimization/65014
35000         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
35001         use original second operand of arg0 or arg1 instead of
35002         that adjusted by STRIP_NOPS.
35003
35004 2015-02-11  Jeff Law  <law@redhat.com>
35005
35006         PR target/63347
35007         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
35008         that needs to be queued, just queue it for a single cycle.
35009
35010 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
35011
35012         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
35013         bodies of thunks; comment on why.
35014         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
35015         symbols are extern.
35016
35017 2015-02-11  Richard Henderson  <rth@redhat.com>
35018
35019         PR sanitize/65000
35020         * tree-eh.c (mark_reachable_handlers): Mark source and destination
35021         regions of __builtin_eh_copy_values.
35022
35023 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
35024
35025         PR middle-end/65003
35026         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
35027         ultimate alias is MEM with SYMBOL_REF satisfying
35028         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
35029         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
35030
35031 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
35032
35033         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
35034         "diagnostic-core.h".
35035         (main): Initialize progname, and call diagnostic_initialize.
35036
35037         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
35038         instead of __OPENMP_TARGET__.
35039
35040         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
35041         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
35042         hard-coding PTX_ID.
35043
35044 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
35045
35046         * doc/sourcebuild.texi (pie_enabled): Document.
35047
35048 2015-02-11  Martin Liska  <mliska@suse.cz>
35049
35050         PR ipa/64813
35051         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
35052         a return value for call to a function that is noreturn.
35053
35054 2015-02-11  Richard Biener  <rguenther@suse.de>
35055
35056         PR lto/65015
35057         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
35058         and -fresolution.
35059
35060 2015-02-11  Andrew Pinski  <apinski@cavium.com>
35061
35062         PR target/64893
35063         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
35064         Change the first argument type to size_type_node and add another
35065         size_type_node.
35066         (aarch64_simd_expand_builtin): Handle the new argument to
35067         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
35068         print an out when the first two arguments are not
35069         nonzero integer constants.
35070         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
35071         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
35072
35073 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
35074
35075         PR target/61925
35076         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
35077         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
35078         (ix86_set_current_function): Rewritten.
35079         (ix86_add_new_builtins): Temporarily clear current_target_pragma
35080         when creating builtin fndecls.
35081
35082 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
35083
35084         PR ipa/65005
35085         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
35086         function.
35087         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
35088         have no comdat group.
35089         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
35090         (lto_output_varpool_node): Always output alias info.
35091         (output_refs): Output refs of boundary aliases, too.
35092         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
35093         (output_symtab): Output call eges in thunks in boundary.
35094         (get_alias_symbol): Remove.
35095         (input_node, input_varpool_node): Do not special case weakrefs.
35096         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
35097         alias and thunks targets in the boundary; do not take removed symbols
35098         from their comdat groups.
35099         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
35100         (cgraph_node::global_info): Remove.
35101         (cgraph_node::rtl_info): Look through aliases and thunks.
35102         * cgrpah.h (global_info): Remove.
35103         (non_local_p): Remove.
35104
35105 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
35106             Sandra Loosemore  <sandra@codesourcery.com>
35107
35108         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
35109         to inline asm.  List dialects in proper order.
35110
35111 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
35112             Sandra Loosemore  <sandra@codesourcery.com>
35113
35114         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
35115
35116 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
35117
35118         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
35119         modified) reference to Solaris.
35120
35121 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
35122
35123         * doc/extend.texi (Extended Asm): Fix typos.
35124
35125 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
35126
35127         PR sanitizer/65004
35128         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
35129
35130 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
35131
35132         PR target/64661
35133         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
35134         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
35135         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
35136         * config/sh/constraints.md (Ara, Add): New constraints.
35137         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
35138         predicates.
35139         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
35140         atomic_mem_operand_0.  Don't use force_reg on the memory address.
35141         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
35142         Sra constraint.  Convert to insn_and_split.  Add workaround for
35143         PR 64974.
35144         (atomic_compare_and_swap<mode>_hard): Copy to
35145         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
35146         Use atomic_mem_operand_0 predicate.
35147         (atomic_compare_and_swap<mode>_soft_gusa,
35148         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
35149         AraAdd constraints.
35150         (atomic_compare_and_swap<mode>_soft_tcb,
35151         atomic_compare_and_swap<mode>_soft_imask,
35152         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
35153         atomic_mem_operand_0 predicate and SraSdd constraints.
35154         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
35155         constraint.
35156         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
35157         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
35158         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
35159         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
35160         force_reg on the memory address.
35161         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
35162         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
35163         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
35164         atomic_mem_operand_1 predicate and Sra constraint.
35165         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
35166         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
35167         Use atomic_mem_operand_1 predicate.
35168         (atomic_<fetchop_name><mode>_hard): Copy to
35169         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
35170         Use atomic_mem_operand_1 predicate.
35171         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
35172         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
35173         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
35174         insn_and_split.  Use atomic_mem_operand_1 predicate.
35175         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
35176         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
35177         Use atomic_mem_operand_1 predicate.
35178         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
35179         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
35180         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
35181         in generated insn with original mem operand before emitting the insn.
35182         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
35183         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
35184         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
35185         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
35186         Use atomic_mem_operand_1 predicate and AraAdd constraints.
35187         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
35188         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
35189         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
35190         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
35191         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
35192         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
35193         atomic_not_fetch<mode>_soft_tcb,
35194         atomic_<fetchop_name>_fetch<mode>_soft_imask,
35195         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
35196         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
35197         Use atomic_mem_operand_1 predicate and SraSdd constraints.
35198
35199 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
35200
35201         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
35202         and 3 earlyclobber operands.
35203
35204 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
35205
35206         * common.opt (fstack-reuse): Mark as optimization.
35207
35208 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
35209
35210         PR ipa/64982
35211         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
35212
35213 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
35214
35215         PR tree-optimization/64326
35216         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
35217
35218 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
35219
35220         PR gcov-profile/61889
35221         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
35222
35223 2015-02-10  Richard Biener  <rguenther@suse.de>
35224
35225         PR tree-optimization/64995
35226         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
35227         value we use is final.
35228         (visit_reference_op_store): Always valueize op.
35229         (visit_use): Properly valueize vuses.
35230
35231 2015-02-10  Richard Biener  <rguenther@suse.de>
35232
35233         PR tree-optimization/64909
35234         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
35235         pass a scalar-stmt count estimate to the cost model.
35236         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
35237
35238 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
35239
35240         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
35241         enabled by default together with var-tracking.
35242
35243 2015-02-10  Nick Clifton  <nickc@redhat.com>
35244
35245         * config/rl78/rl78.c: Remove DIV attribute code accidentally
35246         included in previous rl78 commit.
35247
35248 2015-02-10  Richard Biener  <rguenther@suse.de>
35249
35250         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
35251         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
35252         return the bitpack.
35253
35254 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
35255
35256         PR gcov-profile/61889
35257         * config.in: regenerate.
35258         * configure.in: Likewise.
35259         * configure.ac: Check for ftw.h.
35260         * gcov-tool.c: Check for ftw.h before using nftw.
35261
35262 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
35263
35264         PR lto/64076
35265         * ipa-visibility.c (update_visibility_by_resolution_info): Only
35266         assert when not in lto mode.
35267
35268 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
35269
35270         * ira-color.c (setup_left_conflict_sizes_p): Simplify
35271         initialization/assignment of conflict_size.
35272
35273 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
35274
35275         PR ipa/64978
35276         * ipa-cp.c (gather_caller_stats): Skip thunks.
35277         (propagate_constants_topo): Skip aliases.
35278
35279 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
35280
35281         PR target/64761
35282         * config/sh/sh.c (sh_option_override): Don't change
35283         -freorder-blocks-and-partition to -freorder-blocks even when
35284         unwinding is enabled.
35285         (sh_can_follow_jump): Return false if the followee jump is
35286         a crossing jump when -freorder-blocks-and-partition is specified.
35287         * config/sh/sh.md (*jump_compact_crossing): New insn.
35288
35289 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
35290             Kaz Kojima  <kkojima@gcc.gnu.org>
35291
35292         PR target/64761
35293         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
35294         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
35295         (sh_can_redirect_branch): Rename to ...
35296         (sh_can_follow_jump): ... this.  Constify argument types.
35297         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
35298         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
35299         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
35300         * doc/tm.texi: Regenerate.
35301
35302 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
35303
35304         PR sanitizer/64981
35305         * builtins.c (expand_builtin): Call targetm.expand_builtin
35306         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
35307
35308 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
35309
35310         PR ipa/61548
35311         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
35312
35313 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
35314
35315         PR ipa/63566
35316         * ipa-icf.c (set_local): New function.
35317         (sem_function::merge): Use it.
35318
35319 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
35320
35321         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
35322         (add_type_duplicate): Fix comparison of BINFOs.
35323
35324 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
35325
35326         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
35327         on getting VOID pointer.
35328
35329 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
35330
35331         PR target/64979
35332         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
35333         va_list escapes.
35334
35335 2015-02-09  Richard Biener  <rguenther@suse.de>
35336
35337         * genmatch.c (replace_id): Copy expr_type.
35338
35339 2015-02-09  Richard Biener  <rguenther@suse.de>
35340
35341         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
35342         (streamer_write_tree_bitfields): Declare.
35343         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
35344         properly unpack padding.
35345         (unpack_value_fields): Inline ...
35346         (streamer_read_tree_bitfields): ... here.
35347         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
35348         and properly add padding bits.
35349         (streamer_pack_tree_bitfields): Fold into ...
35350         (streamer_write_tree_bitfields): ... this new function,
35351         exposing the bitpack object.
35352         * lto-streamer-out.c (lto_write_tree_1): Call
35353         streamer_write_tree_bitfields.
35354
35355 2015-02-09  Richard Biener  <rguenther@suse.de>
35356
35357         PR tree-optimization/54000
35358         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
35359         (struct ivopts_data): Add loop_loc member.
35360         (tree_ssa_iv_optimize_loop): Dump loop location.
35361         (create_new_ivs): Likewise, also dump number of IVs generated.
35362
35363 2015-02-09  Martin Liska  <mliska@suse.cz>
35364
35365         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
35366         just if not yet registered.
35367         (ipa_icf_generate_summary): Register callgraph hooks.
35368
35369 2015-02-08  Andrew Pinski  <apinski@cavium.com>
35370
35371         * config/aarch64/aarch64.c (gty_dummy): Delete.
35372
35373 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
35374
35375         PR ipa/63566
35376         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
35377         (cgraph_node::local_p): Remove thunk related FIXME.
35378
35379 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
35380
35381         PR ipa/63566
35382         * i386.c (ix86_function_regparm): Look through aliases to see if callee
35383         is local and optimized.
35384         (ix86_function_sseregparm): Likewise; also use target's SSE math
35385         settings; error out instead of silently generating wrong code
35386         on mismatches.
35387         (init_cumulative_args): Look through aliases.
35388
35389 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
35390
35391         PR ipa/63566
35392         * ipa-split.c (execute_split_functions): Split if function has aliases.
35393
35394 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
35395
35396         PR ipa/63566
35397         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
35398         aliases before trying to expand it.
35399         (cgraph_node::expand_thunk): Fix formating.
35400
35401 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
35402
35403         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
35404         (Using Assembly Language with C): Expand introduction.
35405         (Basic Asm): Copy-edit.  Add more information about uses of
35406         basic asm.
35407         (Extended Asm): Copy-edit.  Document new escape syntax and
35408         %l[label] syntax.
35409         (Global Reg Vars): Copy-edit.
35410         (Local Reg Vars): Likewise.
35411
35412 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
35413
35414         PR debug/2714
35415         PR bootstrap/64256
35416         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
35417         (DBX_CONTIN_CHAR): Define.
35418
35419 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
35420             Brian Rzycki  <b.rzycki@samsung.com>
35421
35422         PR tree-optimization/64878
35423         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
35424         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
35425         Stop recursion at loop phi nodes after having visited a loop phi node.
35426
35427 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
35428
35429         * toplev.c (process_options): Change flag_ipa_ra before creating
35430         optimization_{default,current}_node.
35431
35432         PR ipa/64896
35433         * cgraphunit.c (cgraph_node::expand_thunk): If
35434         restype is not is_gimple_reg_type nor the thunk_fndecl
35435         returns aggregate_value_p, set restmp to a temporary variable
35436         instead of resdecl.
35437
35438 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
35439
35440         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
35441
35442 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
35443
35444         PR target/64205
35445         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
35446         add a general secondary reload handler for SDmode, unless we have
35447         both read/write support for SDmode.
35448
35449 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
35450
35451         PR middle-end/64937
35452         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
35453         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
35454         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
35455         1 before, push it to abstract_vec.
35456         (dwarf2out_abstract_function): Adjust caller.  Don't call
35457         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
35458         DECL_ABSTRACT_P flags for all abstract_vec elts.
35459
35460 2015-02-06  Renlin Li  <renlin.li@arm.com>
35461
35462         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
35463         complex gimple.
35464         * tree-ssa.c (execute_update_addresses_taken): Likewise.
35465
35466 2015-02-06  Jeff Law  <law@redhat.com>
35467
35468         PR target/64889
35469         * config/h8300/h8300.c (push): New argument "in_prologue".
35470         Pass "in_prologue" along to "F".
35471         (h8300_push_pop): Corresponding changes.
35472         (h8300_expand_prologue): Likewise.
35473         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
35474
35475 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
35476
35477         PR rtl-optimization/64957
35478         PR debug/64817
35479         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
35480         IOR rather than for AND.
35481
35482 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
35483
35484         PR target/62631
35485         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
35486         of shift-add and (add + shift) operations.  Rename local variable.
35487
35488 2015-02-05  Jeff Law  <law@redhat.com>
35489
35490         PR target/17306
35491         * config/h8300/constraints.md (U): Correctly dectect
35492         "eightbit_data" memory addresses.
35493         * config/h8300/h8300.c (eightbit_constant_address_p): Also
35494         handle (const (plus (symbol_ref (x)))) where x is declared
35495         as an 8-bit data memory address.
35496         * config/h8300/h8300.md (call, call_value): Correctly detect
35497         "funcvec" functions.
35498
35499         PR target/43264
35500         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
35501         24 to 28 bits for the H8/300.
35502
35503 2015-02-06  Alan Modra  <amodra@gmail.com>
35504
35505         PR target/64876
35506         * config/rs6000/rs6000.c (chain_already_loaded): New function.
35507         (rs6000_call_aix): Use it.
35508
35509 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
35510
35511         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
35512         check.
35513
35514 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
35515
35516         * config/h8300/constraints.md ("U" constraint): Use strict
35517         variant of REG_OK_FOR_BASE_P after reload has started.
35518
35519 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
35520
35521         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
35522         define to zero if !TARGET_NEON.
35523         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
35524
35525 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
35526             Trevor Saunders  <tsaunders@mozilla.com>
35527
35528         PR ipa/61548
35529         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
35530
35531 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
35532
35533         PR ipa/61548
35534         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
35535         when removing varpool nodes.
35536
35537 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
35538
35539         PR ipa/61548
35540         * varpool.c (varpool_node::remove): Fix order of variables.
35541
35542 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
35543
35544         PR ipa/64686
35545         * ipa-inline.c (inline_small_functions): Fix ordering issue between
35546         speculation resolution and key updates.
35547
35548 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
35549
35550         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
35551         about not letting any speculative edges unupdated.
35552
35553 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
35554
35555         PR gcov/64123
35556         * gcov-io.c (gcov_var): Export.
35557
35558 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
35559
35560         PR middle-end/64922
35561         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
35562         edges that become speculative.
35563
35564 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
35565
35566         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
35567         or DW_LANG_Fortran08.
35568         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
35569         DW_LANG_Fortran08.
35570         (gen_compile_unit_die): Handle "GNU Fortran2003" and
35571         "GNU Fortran2008" language strings.
35572         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
35573         * langhooks.h (lang_GNU_Fortran): New prototype.
35574         * langhooks.c (lang_GNU_Fortran): New function.
35575         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
35576         lang_GNU_Fortran.
35577
35578 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
35579
35580         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
35581         (RTX_OK_FOR_OLO10_P): Likewise.
35582
35583 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
35584
35585         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
35586
35587 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
35588
35589         PR middle-end/64922
35590         * gimple.c: Include gimple-ssa.h.
35591         (maybe_remove_unused_call_args): New function.
35592         * gimple.h (maybe_remove_unused_call_args): Declare.
35593         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
35594         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
35595         * gimple-fold.c (gimple_fold_call): Likewise.
35596
35597 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
35598
35599         PR rtl-optimization/64905
35600         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
35601         pointer alignment if it isn't needed.
35602
35603 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
35604
35605         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
35606         cortex-a72.cortex-a53.
35607         * config/aarch64/aarch64-tune.md: Regenerate.
35608         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
35609
35610 2015-02-04  Nick Clifton  <nickc@redhat.com>
35611
35612         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
35613         inside a MEM.
35614
35615 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
35616
35617         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
35618         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
35619         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
35620         of DEF_BUILTIN.
35621         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
35622         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
35623         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
35624         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
35625         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
35626         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
35627         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
35628         * tree-core.h (enum built_in_function): In between
35629         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
35630         for builtins that use DEF_BUILTIN_CHKP macro.
35631
35632 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
35633
35634         PR debug/64817
35635         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
35636         operands for tcc_comparison exprs.  Fix typos.
35637
35638         PR debug/64817
35639         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
35640         of two XORs that have an intervening AND or IOR.
35641
35642         PR debug/64817
35643         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
35644         simplification of XOR of AND to not allocate new rtx before
35645         committing to a simplification.
35646
35647 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35648
35649         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
35650         manual swaps in all peepholes.
35651
35652 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35653
35654         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
35655         of manual swapping implementation.
35656         (aarch64_expand_vec_perm_const_1): Likewise.
35657
35658 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
35659
35660         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
35661         (generic_addrcost_table): Remove NAMED_PARAM.
35662         (cortexa57_addrcost_table): Likewise.
35663         (xgene1_addrcost_table): Likewise.
35664         (generic_regmove_table): Likewise.
35665         (cortexa53_regmove_table): Likewise.
35666         (xgene1_regmove_table): Likewise.
35667         (generic_vector_table): Likewise.
35668         (cortexa57_vector_table): Likewise.
35669         (xgene1_vector_table): Likewise.
35670         (generic_tunings): Likewise.
35671         (cortexa53_tunings): Likewise.
35672         (cortexa57_tunings): Likewise.
35673         (xgene1_tunings): Likewise.
35674
35675 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
35676
35677         * config/arm/arm-cores.def: Add cortex-a72 and
35678         cortex-a72.cortex-a53.
35679         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
35680         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
35681         * config/arm/arm-tune.md: Regenerate.
35682         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
35683         "cortex-a72.cortex-a53".
35684         * doc/invoke.texi (ARM Options/-mtune): Likewise.
35685
35686 2015-02-04  Nick Clifton  <nickc@redhat.com>
35687
35688         PR target/64408
35689         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
35690         of accepted codes.
35691         (nonimmediate_di_operand): Likewise.
35692
35693         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
35694         prefixes of known F5 using MSP430 MCUs.
35695
35696 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35697
35698         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
35699         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
35700         instead of __builtin_sqrt.
35701
35702 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
35703
35704         * varasm.c (do_assemble_alias): Follow transparent alias
35705         chain for target.
35706         (default_assemble_visibility): Follow transparent alias
35707         chain for decl name.
35708
35709 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35710
35711         PR middle-end/62103
35712         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
35713         to compute size of referenced value in the constant case.
35714
35715 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
35716
35717         PR rtl-optimization/64756
35718         * cse.c (invalidate_dest): New function.
35719         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
35720         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
35721         invalidate and do not record it.
35722
35723 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
35724
35725         PR target/64660
35726         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
35727         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
35728         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
35729         atomic_nand<mode>_soft_tcb): New insns.
35730         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
35731         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
35732         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
35733         Split into atomic_not_fetchsi_hard if operands[0] is unused.
35734         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
35735         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
35736         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
35737         atomic_not<mode>_hard if operands[0] is unused.
35738         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
35739         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
35740         if operands[0] is unused.
35741         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
35742         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
35743         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
35744         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
35745         unused.
35746         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
35747         into atomic_not<mode>_soft_tcb if operands[0] is unused.
35748         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
35749         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
35750         if operands[0] is unused.
35751         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
35752         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
35753         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
35754         atomic_nand_fetchsi_hard if operands[0] is unused.
35755         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
35756         atomic_nand<mode>_hard if operands[0] is unused.
35757         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
35758         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
35759         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
35760         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
35761         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
35762         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
35763         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
35764         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
35765         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
35766         atomic_not<mode>_hard if operands[0] is unused.
35767         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
35768         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
35769         unused.
35770         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
35771         into atomic_not<mode>_soft_tcb if operands[0] is unused.
35772         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
35773         atomic_nand<mode>_hard if operands[0] is unused.
35774         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
35775         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
35776
35777 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
35778
35779         PR jit/64810
35780         * Makefile.in (GCC_OBJS): Add gcc-main.o.
35781         * gcc-main.c: New file, containing "main" taken from gcc.c.
35782         * gcc.c (do_self_spec): Free decoded_options.
35783         (class driver): Move declaration to gcc.h.
35784         (main): Move declaration and implementation to new file
35785         gcc-main.c.
35786         (driver_get_configure_time_options): New function.
35787         * gcc.h (class driver): Move this declaration here, from
35788         gcc.c.
35789         (driver_get_configure_time_options): New declaration.
35790
35791 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
35792
35793         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
35794         cross-module inlining.
35795         * cgraph.h (cgraph_node): Add flag merged.
35796         * ipa-icf.c (sem_function::merge): Maintain it.
35797
35798 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
35799
35800         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
35801         instead of OBJECT_P.
35802
35803 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
35804
35805         PR target/62631
35806         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
35807         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
35808         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
35809         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
35810
35811 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
35812
35813         PR other/63504
35814         * combine.c (reg_n_sets_max): New variable.
35815         (can_change_dest_mode, reg_nonzero_bits_for_combine,
35816         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
35817         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
35818         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
35819         (rest_of_handle_combine): Initialize reg_n_sets_max.
35820
35821 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
35822
35823         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
35824         if some always_inline was inlined, apply changes before inlining
35825         heuristically.
35826
35827 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
35828
35829         PR jit/64810
35830         * config/arm/arm.c (arm_option_override): Set
35831         arm_selected_arch/cpu/tune to NULL on entry.
35832
35833 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
35834             Andrew Pinski  <pinskia@gcc.gnu.org>
35835             Jakub Jelinek  <jakub@gcc.gnu.org>
35836
35837         PR target/64231
35838         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
35839         integer typing for small model. Use IN_RANGE.
35840
35841 2015-02-02  Richard Biener  <rguenther@suse.de>
35842
35843         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
35844         * tree-vrp.c (vrp_valueize_1): Likewise.
35845
35846 2015-02-02  Alan Modra  <amodra@gmail.com>
35847
35848         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
35849         than mem for toc_restore.
35850         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
35851         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
35852         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
35853
35854 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
35855
35856         PR target/64047
35857         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
35858         explicit default options.
35859
35860 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
35861
35862         PR ipa/64872
35863         * ipa-utils.c (ipa_merge_profiles): Add release argument.
35864         * ipa-icf.c (sem_function::merge): Do not release body when merging.
35865         * ipa-utils.h (ipa_merge_profiles): Update prototype.
35866
35867 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
35868
35869         PR debug/64817
35870         * cfgexpand.c (deep_ter_debug_map): New variable.
35871         (avoid_deep_ter_for_debug): New function.
35872         (expand_debug_expr): If TERed SSA_NAME is in
35873         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
35874         instead of trying to expand SSA_NAME's def stmt.
35875         (expand_debug_locations): When expanding debug bind
35876         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
35877         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
35878         value.
35879         (pass_expand::execute): Call avoid_deep_ter_for_debug on
35880         all debug bind stmts.  Delete deep_ter_debug_map after
35881         expand_debug_location if non-NULL and clear it.
35882
35883 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
35884
35885         PR target/64851
35886         * config/sh/sync.md (atomic_fetch_notsi_hard,
35887         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
35888         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
35889         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
35890         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
35891         atomic_not_fetch<mode>_soft_imask): New insns.
35892
35893 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
35894
35895         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
35896         (rank_for_schedule_debug): Split from ...
35897         (rank_for_schedule): ... this.
35898         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
35899         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
35900
35901 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
35902
35903         * doc/md.texi (Machine Constraints): Alphabetize table by target.
35904         * doc/extend.texi (x86 Variable Attributes): Move section to
35905         correct alphabetization after renaming.
35906         (x86 Type Attributes): Likewise.
35907         (Target Builtins): Re-alphabetize menu.
35908         (x86 Built-in Functions): Move section to correct alphabetization
35909         after renaming.
35910         (x86 transactional memory intrinsics): Likewise.
35911         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
35912         and x86 Windows Options in table and menu.
35913         (x86 Options): Move section to correct alphabetization after
35914         renaming.
35915         (x86 Windows Options): Likewise.
35916
35917 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
35918
35919         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
35920         preferred names of the architecture and its 32- and 64-bit
35921         variants.
35922         * doc/invoke.texi: Likewise.
35923         * doc/md.texi: Likewise.
35924
35925 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
35926
35927         PR target/64882
35928         * config/i386/predicates.md (address_no_seg_operand): Reject
35929         non-CONST_INT_P operands in invalid mode.
35930
35931 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
35932
35933         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
35934         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
35935         * config/i386/predicates.md (address_no_seg_operand): Call
35936         address_operand with VOIDmode.
35937         (vsib_address_operand): Ditto.
35938         (address_mpx_no_base_operand): Ditto.
35939         (address_mpx_no_index_operand): Ditto.
35940
35941 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
35942
35943         PR target/64688
35944         * lra-constraints.c (original_subreg_reg_mode): New.
35945         (simplify_operand_subreg): Try to simplify subreg of const.  Use
35946         original_subreg_reg_mode for it.
35947         (swap_operands): Update original_subreg_reg_mode.
35948         (curr_insn_transform): Set up original_subreg_reg_mode.
35949
35950 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
35951
35952         PR target/64617
35953         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
35954         function.
35955         (process_alt_operands): Use it.
35956         (curr_insn_transform): Check the optional reload pseudo class is
35957         ok for the mode.
35958
35959 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
35960
35961         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
35962         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
35963         prototype.
35964         * toplev.h (init_asm_output): Update comment on use of
35965         UNKNOWN_LOCATION with fatal_error.
35966         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
35967         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
35968         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
35969         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
35970         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
35971         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
35972         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
35973         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
35974         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
35975         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
35976         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
35977         fatal_error changed to pass input_location as first argument.
35978
35979 2015-01-30  Martin Liska  <mliska@suse.cz>
35980
35981         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
35982         in #pragma GCC diagnostic guards.
35983
35984 2015-01-30  Richard Biener  <rguenther@suse.de>
35985
35986         PR tree-optimization/64829
35987         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
35988         not add a widening conversion pattern but hand off extra
35989         widenings to callers.
35990         (vect_recog_widen_mult_pattern): Handle extra widening produced
35991         by vect_handle_widen_op_by_const.
35992         (vect_recog_widen_shift_pattern): Likewise.
35993         (vect_pattern_recog_1): Remove excess vertical space in dumping.
35994         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
35995         (vect_init_vector_1): Likewise.
35996         (vect_get_vec_def_for_operand): Likewise.
35997         (vect_finish_stmt_generation): Likewise.
35998         (vectorizable_load): Likewise.
35999         (vect_analyze_stmt): Likewise.
36000         (vect_is_simple_use): Likewise.
36001
36002 2015-01-29  Jeff Law  <law@redhat.com>
36003
36004         * combine.c (try_combine): Fix typo in comment.
36005
36006 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
36007
36008         PR target/64580
36009         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
36010         (rs6000_stack_info): Add assert.
36011         (rs6000_output_savres_externs): New function, split off from...
36012         (rs6000_output_function_prologue): ... here.  Do not call it for
36013         thunks.
36014
36015 2015-01-29  Jeff Law  <law@redhat.com>
36016
36017         PR target/15184
36018         * combine.c (try_combine): If I0 is a memory load and I3 a store
36019         to a related address, increase the "goodness" of doing a 4-insn
36020         combination with I0-I3.
36021         (make_field_assignment): Handle SUBREGs in the ior+and case.
36022
36023 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
36024
36025         PR tree-optimization/64746
36026         * tree-if-conv.c (mask_exists): New function.
36027         (predicate_mem_writes): Save created mask with given size for further
36028         use.
36029         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
36030         (ifcvt_repair_bool_pattern): Collect all statements that are root
36031         of bool pattern and use iterative algorithm to remove multiple uses
36032         of predicates, display number of required iterations.
36033
36034 2015-01-29  Richard Biener  <rguenther@suse.de>
36035
36036         PR tree-optimization/64853
36037         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
36038         stmt will get simulated again.
36039         * tree-ssa-ccp.c (valueize_op_1): Likewise.
36040
36041 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36042
36043         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
36044         return_in_pc.  Remove redundant assignments.
36045         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
36046         (arm_expand_epilogue): Don't compare boolean with true in if condition.
36047
36048 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
36049
36050         * config/i386/i386.c (ix86_mode_after): Make static.
36051
36052 2015-01-29  Richard Biener  <rguenther@suse.de>
36053
36054         PR tree-optimization/64844
36055         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
36056         dump cost model analysis.
36057         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
36058         Do not register adjusted load/store costs here.
36059
36060 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
36061             Uros Bizjak  <ubizjak@gmail.com>
36062
36063         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
36064         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
36065         using x86_use_pseudo_pic_reg.
36066         * config/i386/i386.c (ix86_conditional_register_usage): Remove
36067         support for fixed PIC register.
36068         (ix86_use_pseudo_pic_reg): Not static any more.
36069
36070 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
36071
36072         PR middle-end/64805
36073         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
36074         to avoid error in cgraph node verification.
36075
36076 2015-01-29  Marek Polacek  <polacek@redhat.com>
36077
36078         * doc/standards.texi: Reflect that the default for C is gnu11.
36079
36080 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
36081
36082         PR target/64761
36083         * reorg.c (switch_text_sections_between_p): New function.
36084         (relax_delay_slots): Call it when testing if the jump insn
36085         is removable.  Use targetm.can_follow_jump when testing if
36086         the conditional branch can follow an unconditional jump.
36087
36088 2015-01-27  Caroline Tice  <cmtice@google.com>
36089
36090         Committing VTV Cywin/Ming patch for Patrick Wollgast
36091         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
36092         if -fvtable-verify=preinit/std is used.
36093         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
36094         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
36095         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
36096         if -fvtable-verify=preinit/std is used.
36097         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
36098         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
36099         if -fvtable-verify=preinit/std is used.
36100         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
36101         * config/i386/mingw32.h (LIB_SPEC): Likewise.
36102         * varasm.c (assemble_variable): Add code to properly set the comdat
36103         section and name for the .vtable_map_vars section in case the
36104         target is PE or COFF.
36105
36106 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
36107
36108         PR ipa/64801
36109         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
36110         make sane BB profile.
36111         (cgraph_node::expand_thunk): Make sane BB profile.
36112         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
36113         * cgraph.h (init_lowered_empty_function): Update prototype.
36114         * config/i386/i386.c (make_resolver_func): Update call.
36115         * predict.c (gate): Disable branch prediction pass if
36116         profile is already there.
36117
36118 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
36119
36120         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
36121         * opth-gen.awk: Likewise.
36122         * common.opt: Mark flag_fp_contract_mode as Optimization.
36123
36124 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36125
36126         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
36127         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
36128
36129 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
36130
36131         PR target/64659
36132         * config/sh/predicates.md (atomic_arith_operand,
36133         atomic_logical_operand): Remove.
36134         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
36135         (atomic_arith_operand_0): New predicate.
36136         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
36137         Use atomic_arith_operand_0 for input values.
36138         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
36139         atomic_compare_and_swap<mode>_soft_gusa,
36140         atomic_compare_and_swap<mode>_soft_tcb,
36141         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
36142         arith_reg_operand instead of register_operand.
36143         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
36144         atomic_arith_operand_0 for newval input.
36145         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
36146         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
36147         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
36148         arith_reg_operand instead of register_operand.
36149         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
36150         fetchop_predicate_1, fetchop_constraint_1_llcs,
36151         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
36152         fetchop_constraint_1_imask): New code iterator attributes.
36153         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
36154         register_operand.  Use fetchop_predicate_1.
36155         (atomic_fetch_<fetchop_name>si_hard,
36156         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
36157         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
36158         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
36159         and arith_reg_operand instead of register_operand.  Use
36160         fetchop_predicate_1, fetchop_constraint_1_gusa.
36161         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
36162         and arith_reg_operand instead of register_operand.  Use
36163         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
36164         to allow R0 usage.
36165         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
36166         and arith_reg_operand instead of register_operand.  Use
36167         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
36168         to allow R0 usage.
36169         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
36170         register_operand.  Use atomic_logical_operand_1.
36171         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
36172         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
36173         arith_reg_operand instead of register_operand.
36174         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
36175         Use arith_reg_dest and arith_reg_operand instead of register_operand.
36176         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
36177         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
36178         register_operand.  Use fetchop_predicate_1.
36179         (atomic_<fetchop_name>_fetchsi_hard,
36180         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
36181         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
36182         fetchop_constraint_1_llcs.
36183         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
36184         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
36185         fetchop_constraint_1_gusa.
36186         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
36187         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
36188         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
36189         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
36190         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
36191         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
36192         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
36193         register_operand.  Use atomic_logical_operand_1.
36194         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
36195         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
36196         arith_reg_operand instead of register_operand.
36197         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
36198         arith_reg_operand instead of register_operand.  Use logical_operand
36199         and K08.  Adjust asm sequence to allow R0 usage.
36200         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
36201         arith_reg_operand instead of register_operand.  Use logical_operand
36202         and K08.
36203
36204 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
36205
36206         PR other/63504
36207         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
36208         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
36209         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
36210         only get_full_len HOST_WIDE_INTs from get_val () array rather than
36211         all bits in *val_wide.
36212
36213 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
36214
36215         * varpool.c (tls_model_names): Fix names.
36216         (varpool_node::dump): Dump tls- prefix for tls models.
36217
36218 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
36219             Bernd Schmidt  <bernds@codesourcery.com>
36220             Nathan Sidwell  <nathan@codesourcery.com>
36221
36222         * config/nvptx/mkoffload.c: New file.
36223         * config/nvptx/t-nvptx: Add build rules for it.
36224         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
36225         (extra_programs): Add mkoffload.
36226         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
36227         function.
36228         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
36229
36230 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
36231
36232         PR middle-end/64809
36233         * cfgexpand.c (reorder_operands): Skip debug gimples.
36234
36235 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
36236
36237         PR tree-optimization/64277
36238         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
36239         range info when possible to refine estimation.
36240
36241 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
36242
36243         PR tree-optimization/64718
36244         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
36245         be a 16bit unsigned integer when n->range is 16.
36246         (bswap_replace): Convert src to that type if necessary for all bswap
36247         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
36248         set in pass_optimize_bswap::execute ().
36249
36250 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
36251
36252         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
36253         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
36254         integer and floating point variants.
36255         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
36256
36257 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
36258
36259         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
36260         for all vector modes.
36261
36262 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
36263
36264         PR bootstrap/64612
36265         * doc/sourcebuild.texi (comdat_group): Document.
36266
36267 2015-01-28  Terry Guo  <terry.guo@arm.com>
36268
36269         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
36270
36271 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
36272
36273         * toplev.c (print_version): Add param "show_global_state", and
36274         only print GGC and plugin information if it is true.
36275         (init_asm_output): Pass in "true" for the new param when calling
36276         print_version.
36277         (process_options): Likewise.
36278         (toplev::main): Likewise.
36279         * toplev.h (print_version): Add new param to decl.
36280
36281 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
36282
36283         PR ipa/60871
36284         PR ipa/64139
36285         * tree.c (lookup_binfo_at_offset): New function.
36286         (get_binfo_at_offset): Use it.
36287
36288 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
36289
36290         PR ipa/64282
36291         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
36292         on vtable being vtable.
36293
36294 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
36295
36296         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
36297         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
36298         -mhotpatch= option.
36299         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
36300         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
36301         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
36302         Renamed.
36303         (s390_hotpatch_trampoline_halfwords_max): Renamed.
36304         (s390_hotpatch_hw_max): New name.
36305         (s390_hotpatch_trampoline_halfwords): Renamed.
36306         (s390_hotpatch_hw_before_label): New name.
36307         (get_hotpatch_attribute): Removed.
36308         (s390_hotpatch_hw_after_label): New name.
36309         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
36310         attribute.
36311         (s390_attribute_table): Ditto.
36312         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
36313         (s390_function_num_hotpatch_hw): New name.
36314         Remove special handling of inline functions and hotpatching.
36315         Return number of nops before and after the function label.
36316         (s390_can_inline_p): Removed.
36317         (s390_asm_output_function_label): Emit a configurable number of nops
36318         after the function label.
36319         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
36320         (TARGET_CAN_INLINE_P) Removed.
36321         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
36322
36323 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36324             Jiong Wang  <jiong.wang@arm.com>
36325
36326         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
36327         of scratch reg.
36328         (cb<optab><mode>1): Likewise.
36329         * config/aarch64/iterators.md (bcond): New define_code_attr.
36330
36331 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36332
36333         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
36334         memory accesses.
36335
36336 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36337
36338         * config/s390/s390.c (s390_register_move_cost): Increase costs for
36339         FPR->GPR moves.
36340
36341 2015-01-27  Richard Biener  <rguenther@suse.de>
36342
36343         * tree-vrp.c (update_value_range): Intersect the range with
36344         old recorded SSA name range information.
36345
36346 2015-01-27  Nick Clifton  <nickc@redhat.com>
36347
36348         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
36349         BC, DE and HL registers directly, not via AX.
36350         When decrementing the stack pointer by a large amount, transfer SP
36351         into AX and perform the subtraction there.
36352         (rl78_expand_epilogue): Perform the inverse of the above
36353         enhancements.
36354
36355 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36356
36357         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
36358
36359 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
36360             Yury Gribov  <y.gribov@samsung.com>
36361
36362         PR ubsan/64741
36363         * ubsan.c (ubsan_source_location): Refactor code.
36364         (ubsan_type_descriptor): Update type size. Refactor code.
36365
36366 2015-01-27  Richard Biener  <rguenther@suse.de>
36367
36368         PR tree-optimization/56273
36369         PR tree-optimization/59124
36370         PR tree-optimization/64277
36371         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
36372         from the first VRP pass.
36373
36374 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
36375
36376         PR ipa/64776
36377         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
36378         handle the first argument in the same loop as all the other arguments.
36379
36380         PR rtl-optimization/61058
36381         * jump.c (cleanup_barriers): Update basic block boundaries
36382         if BLOCK_FOR_INSN is non-NULL on PREV.
36383
36384 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
36385
36386         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
36387         bounds narrowing, already instrumented calls and calls to
36388         not instrumentable functions.
36389
36390 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
36391
36392         PR tree-optimization/64807
36393         * wide-int.cc (wi::divmod_internal): Clear
36394         b_dividend[dividend_blocks_needed].
36395
36396 2015-01-26  DJ Delorie  <dj@redhat.com>
36397
36398         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
36399         volatile memory references.
36400
36401 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
36402
36403         PR target/49263
36404         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
36405         remove_insn.
36406         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
36407         shifts if it already fits into K08.
36408
36409 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
36410
36411         PR ipa/64730
36412         * ipa-inline.c (inline_small_functions): Print "unknown" even
36413         if edge->call_stmt is non-NULL, but has builtins or unknown
36414         location.
36415
36416         PR middle-end/64421
36417         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
36418         with asterisk, skip the first character.
36419
36420 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
36421
36422         PR target/64806
36423         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
36424         order change.
36425
36426 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
36427
36428         PR target/64795
36429         * config/i386/i386.md (*movdi_internal): Also check operand 0
36430         to determine TYPE_LEA operand.
36431         (*movsi_internal): Ditto.
36432
36433 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
36434
36435         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
36436         OPTION_MASK_QUAD_MEMORY_ATOMIC.
36437
36438 2015-01-26  Renlin Li  <renlin.li@arm.com>
36439
36440         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
36441         the comment.
36442         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
36443         for higher part.
36444
36445 2015-01-26  Richard Biener  <rguenther@suse.de>
36446
36447         PR middle-end/64764
36448         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
36449         combining two BIT_AND_EXPR predicates.
36450
36451 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
36452
36453         PR bootstrap/64754
36454         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
36455
36456 2015-01-26  Terry Guo  <terry.guo@arm.com>
36457
36458         * config/arm/arm.c (arm_file_start): Update the assignment of
36459         Tag_ABI_HardFP_use.
36460
36461 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
36462
36463         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
36464         pipeline model.
36465         config/arm/arm.md: Include the new Cortex-A57 model.
36466         (generic_sched): Don't use generic_sched when tuning for
36467         Cortex-A57.
36468
36469 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
36470             Uros Bizjak  <ubizjak@gmail.com>
36471
36472         * config/i386/i386.c (get_builtin_code_for_version): Add
36473         support for BMI and BMI2 multiversion functions.
36474
36475 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
36476
36477         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
36478         (extract_bit_field): Likewise.
36479         (extract_low_bits): Likewise.
36480         (expand_mult): Likewise.
36481         (expand_mult_highpart_adjust): Likewise.
36482
36483 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
36484
36485         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
36486         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
36487         * config/i386/i386.c (processor_model): Add
36488         M_INTEL_COREI7_BROADWELL.
36489         (arch_names_table): Add "broadwell".
36490
36491 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
36492
36493         PR target/49263
36494         PR target/53987
36495         PR target/64345
36496         PR target/59533
36497         PR target/52933
36498         PR target/54236
36499         PR target/51244
36500         * config/sh/sh-protos.h
36501         (sh_extending_set_of_reg::can_use_as_unextended_reg,
36502         sh_extending_set_of_reg::use_as_unextended_reg,
36503         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
36504         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
36505         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
36506         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
36507         (sh_treg_insns): New class.
36508         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
36509         (scope_counter): New class.
36510         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
36511         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
36512         sh_extending_set_of_reg::can_use_as_unextended_reg,
36513         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
36514         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
36515         sh_split_treg_set_expr): New functions.
36516         (addsubcosts): Handle treg_set_expr.
36517         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
36518         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
36519         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
36520         (sh_insn_operands_modified_between_p): Make non-static.
36521         * config/sh/predicates.md (zero_extend_movu_operand): Allow
36522         simple_mem_operand in addition to displacement_mem_operand.
36523         (zero_extend_operand): Don't allow zero_extend_movu_operand.
36524         (treg_set_expr, treg_set_expr_not_const01,
36525         arith_reg_or_treg_set_expr): New predicates.
36526         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
36527         arith_or_int_operand instead of logical_operand.  Convert to
36528         insn_and_split.  Try to optimize constant operand in splitter.
36529         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
36530         (*tstqi_t_zero): Delete.
36531         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
36532         (tstsi_t_and_not): Delete.
36533         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
36534         Convert to insn_and_split.
36535         (unnamed split, tstsi_t_zero_extract_xor,
36536         tstsi_t_zero_extract_subreg_xor_little,
36537         tstsi_t_zero_extract_subreg_xor_big): Delete.
36538         (*tstsi_t_shift_mask): New insn_and_split.
36539         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
36540         to recombine with surrounding insns when splitting.
36541         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
36542         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
36543         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
36544         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
36545         (*cbranch_div0s: Delete.
36546         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
36547         Try to recombine with surrounding insns when splitting.  Add operand
36548         order variants.
36549         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
36550         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
36551         *addc_r_r_msb, *addc_2r_msb): Delete.
36552         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
36553         order variant.
36554         (*addc_negreg_t): New insn_and_split.
36555         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
36556         Try to recombine with surrounding insns when splitting.
36557         Add operand order variants.
36558         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
36559         insn_and_split patterns.
36560         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
36561         surrounding insns when splitting.
36562         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
36563         (*rotcl): Likewise.  Add zero_extract variant.
36564         (*ashrsi2_31): New insn_and_split.
36565         (*negc): Convert to insn_and_split.  Use treg_set_expr.
36566         (*zero_extend<mode>si2_disp_mem): Update comment.
36567         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
36568         condition.
36569         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
36570         with surrounding insns when splitting.
36571         (any_treg_expr_to_reg): New insn_and_split.
36572         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
36573         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
36574         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
36575         *zero_extract_2): New single bit zero extract patterns.
36576         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
36577         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
36578         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
36579         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
36580         set destination.
36581         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
36582         register_operand for set source.
36583
36584 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
36585
36586         * i386.opt (prefetch_sse): New targetsave.
36587         * i386.c (ix86_function_specific_save): Save prefetch_sse.
36588         (ix86_function_specific_restore): Restore prefetch_sse and initialize
36589         ix86_cost/ix86_tune_cost.
36590
36591 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
36592
36593         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
36594         Support the JIT by using 0 as the language type.
36595
36596 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
36597
36598         PR target/64317
36599         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
36600         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
36601         (mark_regno_live, process_bb_lives): Pass new parameter value to
36602         make_hard_regno_born.
36603
36604 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
36605
36606         PR rtl-optimization/63637
36607         PR rtl-optimization/60663
36608         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
36609         if elt->cost is MAX_COST for ASM_OPERANDS.
36610         (find_sets_in_insn): Fix up comment typo.
36611         (cse_insn): Don't set src_volatile for all non-volatile
36612         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
36613         or with "memory" clobber.  Set elt->cost to MAX_COST
36614         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
36615         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
36616
36617 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
36618
36619         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
36620         alternative 1.
36621
36622 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
36623
36624         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
36625         libgcc/config/i386/elf-lib.h.
36626
36627 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
36628
36629         PR driver/64737
36630         * gcc.c (print_configuration): Don't print a blank line at the end
36631         here...
36632         (run_attempt): ... but here unstead.
36633
36634         PR middle-end/64734
36635         * omp-low.c (scan_sharing_clauses): Don't ignore
36636         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
36637         on target data/update constructs.
36638
36639 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36640
36641         PR target/50928
36642         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
36643         (DEBUG_RELOAD): Removed define.
36644         (m32c_limit_reload_class): Enable traces with if DEBUG0.
36645         (m32c_function_arg): Added a type cast.
36646         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
36647         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
36648         * config/m32c/bitops.md (andqi3_16): Likewise.
36649         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
36650         (push_a01_l): Likewise.
36651
36652 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
36653
36654         PR jit/64721
36655         * main.c (main): Construct toplev instances with init_signals=true.
36656         * toplev.c (general_init): Add param "init_signals", and use it to
36657         conditionalize the calls to signal and host_hooks.extra_signals.
36658         (toplev::toplev): Add param "init_signals".
36659         (toplev::main): When invoking general_init, pass m_init_signals
36660         to control whether signal-handlers are installed.
36661         * toplev.h (toplev::toplev): Add param "init_signals".
36662         (toplev::m_init_signals): New field.
36663
36664 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
36665
36666         PR jit/64722
36667         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
36668         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
36669         latter may be affected by the former (e.g. on i686).
36670
36671 2015-01-23  Martin Liska  <mliska@suse.cz>
36672
36673         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
36674         false positive during profiledbootstrap.
36675
36676 2015-01-23  Tom de Vries  <tom@codesourcery.com>
36677
36678         PR libgomp/64672
36679         * lto-opts.c (lto_write_options): Output non-explicit conservative
36680         -fno-openacc.
36681         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
36682         (append_compiler_options): Pass -fopenacc through.
36683
36684 2015-01-23  Tom de Vries  <tom@codesourcery.com>
36685
36686         PR libgomp/64707
36687         * lto-opts.c (lto_write_options): Output non-explicit conservative
36688         -fno-openmp.
36689         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
36690         (append_compiler_options): Pass -fopenmp through.
36691
36692 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
36693
36694         PR debug/64511
36695         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
36696         GTY markup.
36697
36698         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
36699         * diagnostic.def (DK_ICE_NOBT): New kind.
36700         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
36701         like DK_ICE, but never print backtrace.
36702         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
36703         (internal_error_no_backtrace): New function.
36704         * gcc.c (execute): Use internal_error_no_backtrace instead of
36705         internal_error.
36706
36707 2015-01-22  Jeff Law  <law@redhat.com>
36708
36709         PR target/52076
36710         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
36711         improve code density for small immediate to memory case.
36712         (insv): Better handle bitfield assignments when the field is
36713         being set to all ones.
36714         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
36715         operand predicate.
36716
36717 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36718             Jakub Jelinek  <jakub@redhat.com>
36719
36720         PR middle-end/64729
36721         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
36722         for !TARGET_LIBC_PROVIDES_SSP version and
36723         -fstack-protector-{all,strong,explicit} otherwise.
36724         * config/freebsd.h (LINK_SSP_SPEC): Handle
36725         -fstack-protector-{strong,explicit}.
36726
36727 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
36728             H.J. Lu  <hongjiu.lu@intel.com>
36729
36730         PR ipa/64694
36731         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
36732         heap.
36733
36734 2015-01-22  Wei Mi  <wmi@google.com>
36735
36736         PR rtl-optimization/64557
36737         * dse.c (record_store): Call get_addr for mem_addr.
36738         (check_mem_read_rtx): Likewise.
36739
36740 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
36741
36742         * fold-const.c (const_binop): Add early return for non-tcc_binary.
36743
36744 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
36745
36746         * toplev.c (init_local_tick): Process the failure when read
36747         fails for random_seed.
36748
36749         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
36750         'pretty_name' to avoid memory overflow.
36751
36752 2015-01-22  Richard Biener  <rguenther@suse.de>
36753
36754         PR middle-end/64728
36755         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
36756         abnormal coalescing on undefined SSA names.
36757
36758 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
36759
36760         PR target/64688
36761         PR target/64477
36762         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
36763         for alternative 3.
36764         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
36765
36766 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
36767
36768         PR middle-end/63325
36769         * fold-const.c (fold_checksum_tree): Don't include value of
36770         expr->decl_with_vis.symtab_node in the checksum.
36771
36772 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36773
36774         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
36775
36776 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
36777
36778         PR driver/64690
36779         * gcc.c (insert_comments): New function.
36780         (try_generate_repro): Call it.
36781         (append_text): Removed.
36782
36783 2015-01-22  Richard Biener  <rguenther@suse.de>
36784
36785         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
36786         with IL incompatible options.  Properly honor user optimize
36787         attributes.
36788
36789 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
36790
36791         PR rtl-optimization/64682
36792         * combine.c (distribute_notes): When moving a death note for
36793         a register that is set in the new I2, make sure to put it
36794         before that new I2.
36795
36796 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
36797
36798         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
36799         not TARGET_DEFAULT.
36800
36801 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
36802
36803         PR debug/64511
36804         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
36805         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
36806         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
36807
36808         PR sanitizer/64706
36809         * doc/invoke.texi (-fsanitize=vptr): Document.
36810
36811         PR rtl-optimization/62078
36812         * dse.c: Include cfgcleanup.h.
36813         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
36814         anything call purge_all_dead_edges and cleanup_cfg at the end
36815         of the pass.
36816
36817 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
36818
36819         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
36820         edges.
36821
36822 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36823
36824         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
36825         decl attribute.
36826
36827 2015-01-21  David Sherwood  <david.sherwood@arm.com>
36828             Tejas Belagod <Tejas.Belagod@arm.com>
36829
36830         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
36831         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
36832         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
36833         Removed.
36834
36835 2015-01-21  David Sherwood  <david.sherwood@arm.com>
36836             Tejas Belagod <Tejas.Belagod@arm.com>
36837
36838         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
36839         (aarch64_reverse_mask): New decls.
36840         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
36841         (insn_count): New mode_attr.
36842         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
36843         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
36844         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
36845         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
36846         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
36847         (aarch64_simd_st4): New patterns.
36848         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
36849         (aarch64_reverse_mask): New functions.
36850
36851 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
36852
36853         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
36854         Declare.
36855         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
36856         addressing modes for BE.
36857         (aarch64_print_operand): Add 'R' specifier.
36858         (aarch64_simd_disambiguate_copy): Delete.
36859         (aarch64_simd_emit_reg_reg_move): New function.
36860         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
36861         in define_splits for structural moves.
36862         (mov<mode>): Use less restrictive predicates.
36863         (*aarch64_mov<mode>): Simplify and only allow for LE.
36864         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
36865
36866 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
36867
36868         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
36869
36870 2015-01-21  Richard Henderson  <rth@redhat.com>
36871
36872         PR target/64669
36873         * ccmp.c (used_in_cond_stmt_p): Remove.
36874         (expand_ccmp_expr): Don't use it.
36875
36876 2015-01-21  Nick Clifton  <nickc@redhat.com>
36877
36878         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
36879         PARALLELs.
36880
36881 2015-01-21  Richard Biener  <rguenther@suse.de>
36882
36883         PR middle-end/64313
36884         * tree-core.h (builtin_info, builtin_info_type): Turn from
36885         an object with two arrays into an array of an object with
36886         decl and two flags, implicit_p and declared_p.
36887         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
36888         set_builtin_decl, set_builtin_decl_implicit_p,
36889         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
36890         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
36891         * builtins.c (builtin_info): Adjust.
36892         * gimplify.c (gimplify_addr_expr): References to builtins
36893         that have been declared by the user makes them eligible for
36894         use by the compiler.  Call set_builtin_decl_implicit_p on them.
36895
36896 2015-01-20  Jeff Law  <law@redhat.com>
36897
36898         PR target/59946
36899         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
36900         allow pc-relative addresses in operand predicates or constraints.
36901
36902 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
36903
36904         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
36905         neon on aarch32 processors for stringops.
36906
36907 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
36908
36909         PR ipa/63576
36910         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
36911
36912 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
36913
36914         PR lto/45375
36915         * ipa-inline.c: Include lto-streamer.h
36916         (report_inline_failed_reason): Output source file differences and
36917         flags on optimization/target node mismatch.
36918         (can_inline_edge_p): Consider caller to be the outer inline function;
36919         be less restrictive about matching opimize and optimize_size attributes.
36920         (inline_account_function_p): Break out from ...
36921         (inline_small_functions): ... here.
36922         * ipa-inline-transform.c (clone_inlined_nodes): Use
36923         inline_account_function_p.
36924         (inline_call): Use optimize attribution; use inline_account_function_p.
36925         (inline_transform): Use opt_for_fn.
36926         * ipa-inline.h (inline_account_function_p): Declare.
36927
36928 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
36929
36930         PR debug/64663
36931         * dwarf2out.c (decl_piece_node): Don't put bitsize into
36932         mode if bitsize <= 0.
36933         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
36934         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
36935         sizes and positions.
36936
36937 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
36938
36939         * config/nios2/nios2.c (nios2_asm_file_end): Implement
36940         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
36941         needed.
36942         (TARGET_ASM_FILE_END): Define.
36943
36944 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36945
36946         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
36947         (struct tune_params): Use the enum.
36948         * arm.c (arm_*_tune): Update.
36949         (arm_option_override): Update.
36950
36951 2015-01-20  Richard Biener  <rguenther@suse.de>
36952
36953         PR ipa/64684
36954         * ipa-reference.c (add_static_var): Inline ...
36955         (analyze_function): ... here after splitting out from ...
36956         (is_proper_for_analysis): ... this.
36957
36958 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
36959
36960         PR target/64149
36961         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
36962         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
36963         replace the conditional with it's true branch.
36964         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
36965         (arm_lra_p): Remove.
36966
36967 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
36968
36969         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
36970
36971 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
36972
36973         * config/tilegx/mul-tables.c: Move symtab.h include after
36974         coretypes.h include.
36975         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
36976         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
36977         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
36978         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
36979         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
36980
36981 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
36982
36983         PR bootstrap/64676
36984         Revert:
36985         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
36986
36987         PR rtl-optimization/64081
36988         * loop-iv.c (def_pred_latch_p): New function.
36989         (latch_dominating_def): Allow specific cases with non-single
36990         definitions.
36991         (iv_get_reaching_def): Likewise.
36992         (check_complex_exit_p): New function.
36993         (check_simple_exit): Use check_complex_exit_p to allow certain cases
36994         with exits not executing on any iteration.
36995
36996 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
36997
36998         PR lto/45375
36999         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
37000         to set branch cost.
37001
37002 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
37003
37004         PR lto/45375
37005         * i386.c (gate): Check flag_expensive_optimizations and
37006         optimize_size.
37007         (ix86_option_override_internal): Drop optimize_size condition
37008         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
37009         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
37010         MASK_PREFER_AVX128.
37011         (ix86_avx256_split_vector_move_misalign,
37012         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
37013         * sse.md (all uses of TARGET_PREFER_AVX128): Add
37014         optimize_insn_for_speed_p check.
37015
37016 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
37017
37018         * config/mips/mips.h (FP_ASM_SPEC): New define.
37019         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
37020         instead.
37021
37022 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
37023
37024         PR target/53988
37025         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
37026         nullptr for insn when reaching the first insn.
37027         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
37028         (sh_insn_operands_modified_between_p): Add nullptr check.
37029         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
37030         sign extending mem load if the insn contains any UNSPEC or
37031         UNSPEC_VOLATILE.
37032
37033 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
37034
37035         * params.def (inline-unit-growth): Drop to 15%.
37036         * invoke.texi (inline-unit-growth): Document change.
37037
37038 2015-01-19  Martin Liska  <mliska@suse.cz>
37039
37040         PR ipa/64668
37041         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
37042         function for second argument of OBJ_TYPE_REF.
37043
37044 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
37045
37046         PR ipa/64218
37047         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
37048         whether function is an alias.
37049
37050 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
37051
37052         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
37053         cases.
37054
37055 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
37056
37057         PR rtl-optimization/64671
37058         * lra-remat.c (operand_to_remat): Don't consider jump and call
37059         insns.
37060
37061 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
37062
37063         PR target/59828
37064         * config/rs6000/default64.h: Include rs6000-cpus.def.
37065         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
37066         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
37067         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
37068         and POWER8.
37069         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
37070         POWER8.
37071         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
37072         pseudo-op to specify assembler dialect.
37073
37074 2015-01-19  Martin Liska  <mliska@suse.cz>
37075
37076         PR ipa/64664
37077         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
37078         Handle safe potentially removed nodes during filtering.
37079
37080 2015-01-19  Martin Liska  <mliska@suse.cz>
37081
37082         * doc/extend.texi (no_icf): Add new attribute description.
37083         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
37084         where the pass attempts to merge a function with no_icf attribute.
37085
37086 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37087
37088         PR target/64532
37089         * doc/md.texi (ARM Options): Document register constraints.
37090
37091 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
37092             Andrew Pinski  <apinski@cavium.com>
37093
37094         PR target/64304
37095         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
37096         (ashl<mode>3): Don't expand if operands[2] is not constant.
37097
37098 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37099
37100         PR target/64448
37101         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
37102         Match xor-and-xor RTL pattern.
37103
37104 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
37105
37106         PR rtl-optimization/64081
37107         * loop-iv.c (def_pred_latch_p): New function.
37108         (latch_dominating_def): Allow specific cases with non-single
37109         definitions.
37110         (iv_get_reaching_def): Likewise.
37111         (check_complex_exit_p): New function.
37112         (check_simple_exit): Use check_complex_exit_p to allow certain cases
37113         with exits not executing on any iteration.
37114
37115 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
37116
37117         * common.opt (fgraphite): Fix a typo.
37118
37119 2015-01-19  Felix Yang  <felix.yang@huawei.com>
37120
37121         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
37122         pattern.
37123         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
37124         uminp, smax_nanp, smin_nanp): New builtins.
37125         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
37126         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
37127         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
37128         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
37129         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
37130         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
37131         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
37132         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
37133         vpminnms_f32): Rewrite using builtin functions.
37134
37135 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
37136
37137         PR libgomp/64625
37138         * omp-low.c (offload_symbol_decl): Remove variable.
37139         (get_offload_symbol_decl): Remove function.
37140         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
37141         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
37142         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
37143         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
37144         BUILT_IN_GOACC_UPDATE don't pass it at all.
37145
37146 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
37147
37148         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
37149         callers.
37150
37151 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
37152
37153         * ipa-chkp.c (chkp_produce_thunks): Add early param
37154         to split thunks production into two passes.  Keep
37155         'always_inline' function bodies after the first pass.
37156         (pass_data_ipa_chkp_early_produce_thunks): New.
37157         (pass_ipa_chkp_early_produce_thunks): New.
37158         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
37159         chkp_produce_thunks signature.
37160         (make_pass_ipa_chkp_early_produce_thunks): New.
37161         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
37162         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
37163         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
37164
37165 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
37166
37167         * cgraph.c (cgraph_node::dump): Dump profile flags.
37168
37169 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
37170
37171         PR target/64652
37172         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
37173         reg appear first in the parallel.
37174
37175 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
37176
37177         * ipa-reference.c (set_reference_optimization_summary,
37178         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
37179         disabled.
37180         (ignore_module_statics): New static var.
37181         (propagate_bits): If ipa-reference is disabled, do not look into local
37182         properties.
37183         (analyze_function): Disable analysis when ipa_reference is disabled.
37184         (generate_summary): Do not dump when reference is disabled;
37185         collect vars accessed from functions with ipa-reference disabled.
37186         (get_read_write_all_from_node): When ipa-reference is disabled, use the
37187         node flags.
37188         (gate): Enable for LTO.
37189         (ignore_edge_p): New function.
37190         (propagate): Skip functions w/o ipa-reference analysis.
37191         * optc-save-gen.awk: Handle optimize_debug correctly.
37192         * opth-gen.awk: Likewise.
37193         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
37194         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
37195         fira-share-save-slots, fira-share-spill-slots,
37196         fmodulo-sched-allow-regmoves, fpartial-inlining,
37197         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
37198         ftracer, ftree-parallelize-loops, fassociative-math,
37199         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
37200         Optimization
37201         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
37202         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
37203         Optimization.
37204         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
37205         Fix for IPA.
37206
37207 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
37208
37209         PR ipa/64378
37210         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
37211         flag correctly.
37212         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
37213
37214 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
37215
37216         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
37217         Remove duplicate option listings.
37218
37219 2015-01-18  Felix Yang  <felix.yang@huawei.com>
37220
37221         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
37222         (autofdo_source_profile::get_callsite_total_count,
37223         function_instance::get_function_instance_by_decl,
37224         string_table::get_index, string_table::get_index_by_decl,
37225         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
37226         Fix comment typos. Reformatting and minor code rearrangement.
37227
37228 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
37229
37230         * config/rs6000/rs6000.md (probe_stack): Delete.
37231         (probe_stack_address): New.
37232
37233 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
37234
37235         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
37236         to test for 32-bit ABIs, not !TARGET_POWERPC64.
37237
37238 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
37239
37240         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
37241         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
37242         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
37243         snafu.
37244         (rs6000_libcall_value): Use the new function.
37245
37246 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
37247
37248         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
37249
37250 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
37251
37252         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
37253         implement a more precise life analysis for it during backward scan.
37254
37255 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
37256
37257         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
37258
37259 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
37260
37261         PR rtl-optimization/52773
37262         * calls.c (emit_library_call_value): When pushing arguments use
37263         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
37264         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
37265         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
37266
37267 2015-01-17  Jeff Law  <law@redhat.com>
37268
37269         PR rtl-optimization/32790
37270         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
37271         not ZERO_EXTEND in SET_DESTs.
37272
37273 2015-01-17  Alan Modra  <amodra@gmail.com>
37274
37275         * cprop.c (do_local_cprop): Revert last change.
37276
37277 2015-01-16  DJ Delorie  <dj@redhat.com>
37278             Nick Clifton  <nickc@redhat.com>
37279
37280         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
37281         (addhi3_real): Likewise.  Fix [HL+0] syntax.
37282         (subqi3_real): Likewise.
37283         (subhi3_real): Likewise.
37284         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
37285         (cbranchhi4_real): Likewise.
37286         (cbranchhi4_real_inverted): Likewise.
37287         (cbranchsi4_real_lt): Likewise.
37288         (cbranchsi4_real_ge): Likewise.
37289         (cbranchsi4_real_ge): Likewise.
37290         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
37291         (sub<mode>3_virt): Likewise.
37292         (cbranchqi4_virt): Likewise.
37293         (cbranchhi4_virt): Likewise.
37294         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
37295         always use '[reg+imm]' even when imm is zero.
37296         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
37297         (rl78_general_operand): New.
37298         (rl78_nonimmediate_operand): New.
37299         (rl78_nonfar_operand): Use them.
37300         (rl78_nonfar_nonimm_operand): Likewise.
37301         (rl78_stack_based_mem): Fix.
37302         * config/rl78/constraints.md (Ibqi): New.
37303         (IBqi): New.
37304         (Wsa): New.
37305         (Wsf): New.
37306         (Cs1): Fix.
37307         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
37308         (iorqi3): Likewise.
37309         (xorqi3): Likewise.
37310         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
37311
37312         * config/rl78/constrains (Qs8): New constraint.
37313         * config/rl78/rl78.c (rl78_flags_already_set): New function.
37314         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
37315         * config/rl78/rl78-real.md (update_Z): New attribute.
37316         Update patterns to set it.
37317         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
37318         shorter compare and branch sequence can be used.
37319         (cbranchhi4_real): Likewise.
37320         (cbranchhi4_real_inverted): Likewise.
37321
37322         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
37323         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
37324         address space.
37325         * config/rl78/rl78.c (rl78_get_name_encoding): New.
37326         (rl78_option_override): Allow -mes0 only if C.
37327         (characterize_address): Support subregs of symbol_refs.
37328         (rl78_addr_space_address_mode): Move.  Add __near.
37329         (rl78_far_p): Likewise.
37330         (rl78_addr_space_pointer_mode): Likewise.
37331         (rl78_as_legitimate_address): Likewise.
37332         (rl78_addr_space_subset_p): Likewise.
37333         (rl78_addr_space_convert): Likewise.
37334         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
37335         symbols with -mes0.
37336         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
37337         addressing.
37338         (rl78_alloc_physical_registers_op1): Change logic to prefer
37339         symbol[BC] addressing.
37340         (frodata_section): New.
37341         (rl78_asm_init_sections): Initialize it.
37342         (rl78_select_section): Put __far readonly symbols in .frodata.
37343         (rl78_make_type_far): New.
37344         (rl78_insert_attributes): Force all readonly symbols to be
37345         __far when -mes0.
37346         (rl78_asm_out_integer): New.
37347         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
37348         * config/rl78/rl78.opt (-mes0): New.
37349
37350         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
37351         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
37352         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
37353         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
37354         (rl78_saddr_p): New.
37355         (rl78_output_aligned_common): New.
37356         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
37357         (rl78_handle_saddr_attribute): New.
37358         (rl78_handle_naked_attribute): New.
37359         (rl78_attribute_table): Add saddr.
37360         (rl78_print_operand_1): Don't print '!' on saddr operands.
37361         (rl78_print_operand_1): Strip encodings.
37362         (rl78_sfr_p): New.
37363         (rl78_strip_name_encoding): New.
37364         (rl78_attrlist_to_encoding): New.
37365         (rl78_encode_section_info): New.
37366         (rl78_asm_init_sections): New.
37367         (rl78_select_section): New.
37368         (rl78_output_labelref): New.
37369         (rl78_output_aligned_common): New.
37370         (rl78_asm_out_integer): New.
37371         (rl78_asm_ctor_dtor): New.
37372         (rl78_asm_constructor): New.
37373         (rl78_asm_destructor): New.
37374
37375         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
37376         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
37377         (transcode_memory_rtx): Update.
37378         (rl78_expand_epilogue): Use A_REG instead of 0.
37379
37380 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37381
37382         * config/arm/arm-protos.h (struct tune_params): New field
37383         sched_autopref_queue_depth.
37384         * config/arm/arm.c (sched-int.h): Include header.
37385         (arm_first_cycle_multipass_dfa_lookahead_guard,)
37386         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
37387         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
37388         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
37389         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
37390         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
37391         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
37392         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
37393         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
37394         * config/arm/t-arm (arm.o): Update.
37395         * haifa-sched.c (update_insn_after_change): Update.
37396         (rank_for_schedule): Use auto-prefetcher model, if requested.
37397         (autopref_multipass_init): New static function.
37398         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
37399         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
37400         variable for debug dumps.
37401         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
37402         (autopref_multipass_dfa_lookahead_guard): New global function that
37403         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
37404         (init_h_i_d): Update.
37405         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
37406         * sched-int.h (enum autopref_multipass_data_status): New const enum.
37407         (autopref_multipass_data_): Structure for auto-prefetcher data.
37408         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
37409         (struct _haifa_insn_data:autopref_multipass_data): New field.
37410         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
37411         (autopref_multipass_dfa_lookahead_guard): Declare.
37412
37413 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37414
37415         * rtlanal.c (get_base_term): Handle SCRATCH.
37416
37417 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37418
37419         * config/aarch64/aarch64.c
37420         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
37421         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
37422         * config/arm/arm.c
37423         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
37424         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
37425
37426 2015-01-17  Alan Modra  <amodra@gmail.com>
37427
37428         * cprop.c (do_local_cprop): Disallow replacement of fixed
37429         hard registers.
37430
37431 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37432
37433         PR target/62066
37434         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
37435         early return 0.
37436
37437 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
37438
37439         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
37440         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
37441
37442 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37443
37444         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
37445         * config/arm/thumb1.md: ... Here.
37446
37447 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
37448
37449         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
37450         TImode for TARGET_32BIT.
37451
37452 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
37453
37454         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
37455         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
37456         as ...
37457         (rs6000_abi_word_mode): New function.
37458
37459 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
37460
37461         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
37462         instead of UNITS_PER_WORD to describe the size of stack slots.
37463
37464 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
37465
37466         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
37467         as rs6000_promote_function_mode.  Move comment to there.
37468         (rs6000_promote_function_mode): New function.
37469
37470 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
37471
37472         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
37473         -mpowerpc64 is active.
37474
37475 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
37476
37477         PR middle-end/64353
37478         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
37479         virtuals on start.
37480
37481 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
37482
37483         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
37484         introduced in revision 219724.
37485
37486 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37487             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
37488
37489         PR target/64263
37490         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
37491         destination is not a GP reg.
37492         (*movdi_aarch64): Likewise.
37493
37494 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
37495
37496         PR target/64623
37497         * config/rs6000/default64.h: Revert ISA change.
37498
37499 2015-01-16  Richard Biener  <rguenther@suse.de>
37500
37501         PR middle-end/64614
37502         * tree-ssa-uninit.c: Include tree-cfg.h.
37503         (MAX_SWITCH_CASES): New define.
37504         (convert_control_dep_chain_into_preds): Handle switch statements.
37505         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
37506         (normalize_one_pred_1): Do not split bit-manipulations.
37507         Record (x & CST).
37508
37509 2015-01-16  Richard Biener  <rguenther@suse.de>
37510
37511         PR tree-optimization/64568
37512         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
37513         complex load rewriting for TARGET_MEM_REFs.
37514
37515 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
37516
37517         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
37518
37519 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
37520
37521         PR target/64149
37522         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
37523         variable.
37524         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
37525         (aarch64_lra_p): Remove.
37526
37527 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
37528
37529         PR target/64363
37530         * ipa-chkp.h (chkp_instrumentable_p): New.
37531         * ipa-chkp.c: Include tree-inline.h.
37532         (chkp_instrumentable_p): New.
37533         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
37534         Fix processing of not instrumentable functions.
37535         (chkp_versioning): Use chkp_instrumentable_p. Warn about
37536         not instrumentable functions.
37537         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
37538         chkp_instrumentable_p.
37539         * tree-inline.h (copy_forbidden): New.
37540         * tree-inline.c (copy_forbidden): Not static anymore.
37541
37542 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37543
37544         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
37545         ptr1, ptr2 unused.
37546
37547 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
37548
37549         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
37550         type OP_OUT to OP_INOUT.
37551
37552 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
37553
37554         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
37555         (high x) y) to y if x and y have the same base.
37556
37557 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
37558
37559         * config/arm/cortex-a57.md: New.
37560         * config/aarch64/aarch64.md: Include it.
37561         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
37562         * config/aarch64/aarch64-tune.md: Regenerate.
37563
37564 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
37565
37566         PR target/64015
37567         * ccmp.c (expand_ccmp_next): New function.
37568         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
37569         and compare insn sequence.
37570         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
37571         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
37572         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
37573         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
37574         (*ccmp_ior): Changed to ccmp_ior<mode>.
37575         (cmp<mode>): New pattern.
37576         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
37577         parameters.
37578         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
37579
37580 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
37581
37582         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
37583         _mm256_bsrli_epi128): New.
37584         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
37585
37586 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
37587
37588         * expmed.c (store_bit_field_using_insv): Improve warning message.
37589         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
37590
37591 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
37592
37593         PR rtl-optimization/64011
37594         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
37595         there is partial overflow.
37596
37597 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
37598
37599         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
37600         prototype.
37601         (nds32_expand_epilogue_v3pop): Likewise.
37602         * config/nds32/nds32.md (sibcall): Define this for sibling call
37603         optimization.
37604         (sibcall_register): Likewise.
37605         (sibcall_immediate): Likewise.
37606         (sibcall_value): Likewise.
37607         (sibcall_value_register): Likewise.
37608         (sibcall_value_immediate): Likewise.
37609         (sibcall_epilogue): Likewise.
37610         (epilogue): Pass false to indicate this is not a sibcall epilogue.
37611         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
37612         (nds32_expand_epilogue_v3pop): Likewise.
37613
37614 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
37615
37616         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
37617         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
37618         (return_internal): New.
37619         (return): Define this named pattern.
37620         (simple_return): Define this named pattern.
37621         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
37622         pattern instead of unspec_volatile_func_return.
37623         (nds32_expand_epilogue_v3pop): Likewise.
37624         (nds32_can_use_return_insn): New function.
37625
37626 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
37627
37628         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
37629         * config/nds32/nds32.md (pop25return): New.
37630         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
37631         pop25return pattern.
37632
37633 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
37634
37635         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
37636         -mforbid-fp-as-gp, and -mex9 options.
37637
37638 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
37639
37640         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
37641         remove -mgp-direct option.
37642
37643 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
37644
37645         * doc/invoke.texi (--param early-inlining-insns): Update default value.
37646         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
37647
37648 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
37649
37650         * ipa-inline.c (inline_small_functions): Work around hints
37651         cache issue.
37652
37653 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
37654
37655         PR target/59710
37656         * doc/invoke.texi (Option Summary): Document new Nios II
37657         -mgpopt= syntax.
37658         (Nios II Options): Likewise.
37659         * config/nios2/nios2.opt: Add -mgpopt= option support.
37660         Modify existing -mgpopt and -mno-gpopt options to be aliases.
37661         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
37662         * config/nios2/nios2.c (nios2_option_override): Adjust
37663         -mgpopt defaulting.
37664         (nios2_in_small_data_p): Return true for explicit small data
37665         sections even with -G0.
37666         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
37667         option choices.
37668
37669 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
37670
37671         PR ipa/64612
37672         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
37673         of comdat locals.
37674         (inline_call): Fix removal of aliases.
37675
37676 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
37677
37678         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
37679         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
37680         * opts.c (common_handle_option): Add -fsanitize=vptr.
37681         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
37682         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
37683         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
37684         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
37685         (ubsan_expand_vptr_ifn): New prototype.
37686         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
37687         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
37688         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
37689         expand_LOOP_VECTORIZED): Make argument nameless, remove
37690         ATTRIBUTE_UNUSED.
37691         (expand_UBSAN_VPTR): New function.
37692         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
37693         in fn spec.
37694         (UBSAN_VPTR): New internal function.
37695         * sanopt.c (tree_map_traits): Renamed to ...
37696         (sanopt_tree_map_traits): ... this.
37697         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
37698         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
37699         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
37700         (maybe_optimize_ubsan_vptr_ifn): New function.
37701         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
37702         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
37703         -fsanitize=vptr.
37704         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
37705         internal calls like pure functions for aliasing, even when they
37706         have other side-effects that prevent making them ECF_PURE.
37707         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
37708         (ubsan_expand_vptr_ifn): New function.
37709
37710 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
37711
37712         PR rtl-optimization/64110
37713         * stmt.c (parse_output_constraint): Process '^' and '$'.
37714         (parse_input_constraint): Ditto.
37715         * lra-constraints.c (process_alt_operands): Process the new
37716         constraints.
37717         * ira-costs.c (record_reg_classes): Process the new constraint
37718         '^'.
37719         * genoutput.c (indep_constraints): Add '^' and '$'.
37720         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
37721         * doc/md.texi: Add description of the new constraints.
37722
37723 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
37724             Bernd Schmidt  <bernds@codesourcery.com>
37725             Cesar Philippidis  <cesar@codesourcery.com>
37726             James Norris  <jnorris@codesourcery.com>
37727             Tom de Vries  <tom@codesourcery.com>
37728             Ilmir Usmanov  <i.usmanov@samsung.com>
37729             Dmitry Bocharnikov  <dmitry.b@samsung.com>
37730             Evgeny Gavrin  <e.gavrin@samsung.com>
37731             Jakub Jelinek  <jakub@redhat.com>
37732
37733         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
37734         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
37735         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
37736         New function types.
37737         * builtins.c: Include "gomp-constants.h".
37738         (expand_builtin_acc_on_device): New function.
37739         (expand_builtin, is_inexpensive_builtin): Handle
37740         BUILT_IN_ACC_ON_DEVICE.
37741         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
37742         New macros.
37743         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
37744         flag_openmp.
37745         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
37746         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
37747         i386/intelmic-offload.h.
37748         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
37749         to libgomp and its dependencies.
37750         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
37751         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
37752         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
37753         * config/ia64/hpux.h (LIB_SPEC): Likewise.
37754         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
37755         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
37756         * doc/generic.texi: Update for OpenACC changes.
37757         * doc/gimple.texi: Likewise.
37758         * doc/invoke.texi: Likewise.
37759         * doc/sourcebuild.texi: Likewise.
37760         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
37761         GF_OMP_FOR_KIND_OACC_LOOP.
37762         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
37763         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
37764         GF_OMP_TARGET_KIND_OACC_UPDATE,
37765         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
37766         Dump more data.
37767         * gimple.c: Update comments for OpenACC changes.
37768         * gimple.def: Likewise.
37769         * gimple.h: Likewise.
37770         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
37771         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
37772         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
37773         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
37774         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
37775         appropriate place.
37776         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
37777         * gimplify.c: Include "gomp-constants.h".
37778         Update comments for OpenACC changes.
37779         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
37780         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
37781         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
37782         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
37783         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
37784         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
37785         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
37786         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
37787         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
37788         OMP_CLAUSE_SEQ.
37789         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
37790         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
37791         OMP_CLAUSE_SET_MAP_KIND.
37792         (gimplify_oacc_cache): New function.
37793         (gimplify_omp_for): Handle OACC_LOOP.
37794         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
37795         OACC_DATA.
37796         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
37797         OACC_EXIT_DATA, OACC_UPDATE.
37798         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
37799         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
37800         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
37801         (gimplify_body): Consider flag_openacc next to flag_openmp.
37802         * lto-streamer-out.c: Include "gomp-constants.h".
37803         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
37804         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
37805         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
37806         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
37807         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
37808         (BUILT_IN_ACC_ON_DEVICE): New builtins.
37809         * omp-low.c: Include "gomp-constants.h".
37810         Update comments for OpenACC changes.
37811         (struct omp_context): Add reduction_map, gwv_below, gwv_this
37812         members.
37813         (extract_omp_for_data, use_pointer_for_field, install_var_field)
37814         (new_omp_context, delete_omp_context, scan_sharing_clauses)
37815         (create_omp_child_function, scan_omp_for, scan_omp_target)
37816         (check_omp_nesting_restrictions, lower_reduction_clauses)
37817         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
37818         Update for OpenACC changes.
37819         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
37820         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
37821         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
37822         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
37823         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
37824         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
37825         OMP_CLAUSE_MAP_*.
37826         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
37827         Handle GF_OMP_FOR_KIND_OACC_LOOP.
37828         (expand_omp_target, lower_omp_target): Handle
37829         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
37830         GF_OMP_TARGET_KIND_OACC_UPDATE,
37831         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
37832         GF_OMP_TARGET_KIND_OACC_DATA.
37833         (pass_expand_omp::execute, execute_lower_omp)
37834         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
37835         flag_openmp.
37836         (offload_symbol_decl): New variable.
37837         (oacc_get_reduction_array_id, oacc_max_threads)
37838         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
37839         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
37840         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
37841         (oacc_gimple_assign, oacc_initialize_reduction_data)
37842         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
37843         functions.
37844         (is_targetreg_ctx): Remove function.
37845         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
37846         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
37847         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
37848         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
37849         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
37850         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
37851         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
37852         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
37853         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
37854         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
37855         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
37856         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
37857         * tree-core.h: Update comments for OpenACC changes.
37858         (enum omp_clause_map_kind): Remove.
37859         (struct tree_omp_clause): Change type of map_kind member from enum
37860         omp_clause_map_kind to unsigned char.
37861         * tree-inline.c: Update comments for OpenACC changes.
37862         * tree-nested.c: Likewise.  Include "gomp-constants.h".
37863         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
37864         (convert_tramp_reference_stmt, convert_gimple_call): Update for
37865         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
37866         OMP_CLAUSE_SET_MAP_KIND.
37867         * tree-pretty-print.c: Include "gomp-constants.h".
37868         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
37869         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
37870         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
37871         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
37872         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
37873         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
37874         instead of OMP_CLAUSE_MAP_*.
37875         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
37876         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
37877         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
37878         * tree-streamer-in.c: Include "gomp-constants.h".
37879         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
37880         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
37881         * tree-streamer-out.c: Include "gomp-constants.h".
37882         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
37883         OMP_CLAUSE_MAP_*.
37884         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
37885         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
37886         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
37887         * tree.c (omp_clause_num_ops): Update accordingly.
37888         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
37889         Likewise.
37890         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
37891         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
37892         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
37893         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
37894         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
37895         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
37896         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
37897         (OMP_CLAUSE_SET_MAP_KIND): New macro.
37898         * varpool.c (varpool_node::get_create): Consider flag_openacc next
37899         to flag_openmp.
37900         * config/i386/intelmic-offload.h: New file.
37901         * config/nvptx/offload.h: Likewise.
37902
37903 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
37904
37905         * explow.h: Remove duplicate contents.
37906         * dojump.h: Likewise.
37907
37908 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
37909
37910         * arm.c (arm_xgene_tune): Add default initializer for instruction
37911         fusion.
37912
37913 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
37914
37915         PR ipa/64068
37916         PR ipa/64559
37917         * ipa.c (symbol_table::remove_unreachable_nodes):
37918         Do not put abstract origins into boundary.
37919
37920 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
37921
37922         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
37923         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
37924
37925 2015-01-15  Steve Ellcey  <sellcey@mips.com>
37926
37927         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
37928         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
37929         builtins.def, and chkp-builtins.def.
37930
37931 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
37932
37933         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
37934         ISA 2.7 (POWER8).
37935
37936 2015-01-15  Richard Biener  <rguenther@suse.de>
37937
37938         PR tree-optimization/61743
37939         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
37940         information on PHIs for some simple cases.
37941
37942 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37943
37944         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
37945         Include xgene1.md.
37946         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
37947         * config/arm/arm-cores.def (xgene1): New entry.
37948         * config/arm/arm-tables.opt: Regenerate.
37949         * config/arm/arm-tune.md: Regenerate.
37950         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
37951
37952 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
37953
37954         * tree-if-conv.c: Include hash-map.h.
37955         (aggressive_if_conv): New variable.
37956         (fold_build_cond_expr): Add simplification of non-zero condition.
37957         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
37958         destination block is not always executed.
37959         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
37960         than two predecessors if AGGRESSIVE_IF_CONV is true.
37961         (if_convertible_stmt_p): Fix commentary.
37962         (all_preds_critical_p): New function.
37963         (has_pred_critical_p): New function.
37964         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
37965         BB can have more than two predecessors and all incoming edges can be
37966         critical.
37967         (predicate_bbs): Skip predication for loop exit block, use build2_loc
37968         to compute predicate for true edge.
37969         (find_phi_replacement_condition): Delete this function.
37970         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
37971         Allow interchange PHI arguments if EXTENDED is false.
37972         Change check that block containing reduction statement candidate
37973         is predecessor of phi-block since phi may have more than two arguments.
37974         (phi_args_hash_traits): New helper structure.
37975         (struct phi_args_hash_traits): New type.
37976         (phi_args_hash_traits::hash): New function.
37977         (phi_args_hash_traits::equal_keys): New function.
37978         (gen_phi_arg_condition): New function.
37979         (predicate_scalar_phi): Add handling of phi nodes with more than two
37980         arguments, delete COND and TRUE_BB arguments, insert body of
37981         find_phi_replacement_condition to predicate ordinary phi nodes.
37982         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
37983         delete call of find_phi_replacement_condition and invoke
37984         predicate_scalar_phi with two arguments.
37985         (insert_gimplified_predicates): Add assert that non-predicated block
37986         don't have statements to insert.
37987         (ifcvt_split_critical_edges): New function.
37988         (ifcvt_split_def_stmt): Likewise.
37989         (ifcvt_walk_pattern_tree): Likewise.
37990         (stmt_is_root_of_bool_pattern): Likewise.
37991         (ifcvt_repair_bool_pattern): Likewise.
37992         (ifcvt_local_dce): Likewise.
37993         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
37994         is copy of inner or outer loop force_vectorize field, invoke
37995         ifcvt_split_critical_edges, ifcvt_local_dce and
37996         ifcvt_repair_bool_pattern for aggressive if-conversion.
37997
37998 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
37999
38000         * config/aarch64/aarch64.md: Include xgene1.md.
38001         * config/aarch64/xgene1.md: New file.
38002
38003 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38004
38005         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
38006         xgene1 (APM XGene-1) core definition.
38007         * config/aarch64/aarch64.c: Add cost tables for APM XGene-1
38008         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
38009         * doc/invoke.texi: Document -mcpu=xgene1.
38010
38011 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
38012
38013         * dojump.h: New header file.
38014         * explow.h: Likewise.
38015         * expr.h: Remove includes.
38016         Move expmed.c prototypes to expmed.h.
38017         Move dojump.c prototypes to dojump.h.
38018         Move alias.c prototypes to alias.h.
38019         Move explow.c prototypes to explow.h.
38020         Move calls.c prototypes to calls.h.
38021         Move emit-rtl.c prototypes to emit-rtl.h.
38022         Move varasm.c prototypes to varasm.h.
38023         Move stmt.c prototypes to stmt.h.
38024         (saved_pending_stack_adjust): Move to dojump.h.
38025         (adjust_address): Move to explow.h.
38026         (adjust_address_nv): Move to emit-rtl.h.
38027         (adjust_bitfield_address): Likewise.
38028         (adjust_bitfield_address_size): Likewise.
38029         (adjust_bitfield_address_nv): Likewise.
38030         (adjust_automodify_address_nv): Likewise.
38031         * explow.c (expr_size): Move to expr.c.
38032         (int_expr_size): Likewise.
38033         (tree_expr_size): Likewise.
38034         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38035         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
38036         * genemit.c (main): Generate includes statistics.h, real.h,
38037         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
38038         stmt.h.
38039         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
38040         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
38041         explow.h, emit-rtl.h, stmt.h.
38042         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
38043         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
38044         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
38045         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
38046         emit-rtl.h, varasm.h, stmt.h.
38047         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
38048         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
38049         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
38050         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
38051         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
38052         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
38053         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
38054         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
38055         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
38056         tm.h tree.h varasm.h vec.h wide-int.h.
38057         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
38058         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
38059         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
38060         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
38061         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
38062         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
38063         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
38064         * loop-iv.c: Likewise.
38065         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
38066         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
38067         statistics.h stmt.h tree.h varasm.h wide-int.h.
38068         * lra-constraints.c: Likewise.
38069         * lra-eliminations.c: Likewise.
38070         * lra-lives.c: Likewise.
38071         * lra-remat.c: Likewise.
38072         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
38073         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
38074         statistics.h stmt.h tree.h varasm.h wide-int.h.
38075         * hw-doloop.c: Likewise.
38076         * ira-color.c: Likewise.
38077         * ira-emit.c: Likewise.
38078         * loop-doloop.c: Likewise.
38079         * loop-invariant.c: Likewise.
38080         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
38081         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
38082         statistics.h stmt.h tree.h varasm.h wide-int.h.
38083         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
38084         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
38085         statistics.h stmt.h tree.h varasm.h wide-int.h.
38086         * combine-stack-adj.c: Likewise.
38087         * cse.c: Likewise.
38088         * ddg.c: Likewise.
38089         * ifcvt.c: Likewise.
38090         * ira-costs.c: Likewise.
38091         * jump.c: Likewise.
38092         * lra-coalesce.c: Likewise.
38093         * lra-spills.c: Likewise.
38094         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
38095         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
38096         stmt.h varasm.h wide-int.h.
38097         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
38098         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
38099         varasm.h.
38100         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
38101         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
38102         statistics.h stmt.h varasm.h wide-int.h.
38103         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
38104         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
38105         varasm.h wide-int.h.
38106         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
38107         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
38108         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
38109         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
38110         statistics.h stmt.h.
38111         * config/tilepro/tilepro.c: Likewise.
38112         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
38113         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
38114         * config/pdp11/pdp11.c: Likewise.
38115         * config/xtensa/xtensa.c: Likewise.
38116         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
38117         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
38118         varasm.h.
38119         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38120         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
38121         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
38122         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38123         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
38124         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
38125         * rtl-chkp.c: Likewise.
38126         * tree-chkp-opt.c: Likewise.
38127         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
38128         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
38129         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
38130         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38131         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
38132         statistics.h stmt.h.
38133         * tree-vect-data-refs.c: Likewise.
38134         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
38135         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
38136         rtl.h statistics.h stmt.h varasm.h.
38137         * internal-fn.c: Likewise.
38138         * ipa-icf-gimple.c: Likewise.
38139         * lto-section-out.c: Likewise.
38140         * tree-data-ref.c: Likewise.
38141         * tree-nested.c: Likewise.
38142         * tree-outof-ssa.c: Likewise.
38143         * tree-predcom.c: Likewise.
38144         * tree-pretty-print.c: Likewise.
38145         * tree-scalar-evolution.c: Likewise.
38146         * tree-ssa-strlen.c: Likewise.
38147         * tree-vect-loop.c: Likewise.
38148         * tree-vect-patterns.c: Likewise.
38149         * tree-vect-slp.c: Likewise.
38150         * tree-vect-stmts.c: Likewise.
38151         * tsan.c: Likewise.
38152         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38153         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
38154         stmt.h.
38155         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
38156         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
38157         statistics.h stmt.h varasm.h.
38158         * loop-unroll.c: Likewise.
38159         * ubsan.c: Likewise.
38160         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
38161         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
38162         stmt.h varasm.h.
38163         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38164         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
38165         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
38166         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
38167         statistics.h stmt.h.
38168         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
38169         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
38170         statistics.h stmt.h varasm.h.
38171         * gimple-match-head.c: Likewise.
38172         * lto-cgraph.c: Likewise.
38173         * lto-section-in.c: Likewise.
38174         * lto-streamer-in.c: Likewise.
38175         * lto-streamer-out.c: Likewise.
38176         * tree-affine.c: Likewise.
38177         * tree-cfg.c: Likewise.
38178         * tree-cfgcleanup.c: Likewise.
38179         * tree-if-conv.c: Likewise.
38180         * tree-into-ssa.c: Likewise.
38181         * tree-ssa-alias.c: Likewise.
38182         * tree-ssa-copyrename.c: Likewise.
38183         * tree-ssa-dse.c: Likewise.
38184         * tree-ssa-forwprop.c: Likewise.
38185         * tree-ssa-live.c: Likewise.
38186         * tree-ssa-math-opts.c: Likewise.
38187         * tree-ssa-pre.c: Likewise.
38188         * tree-ssa-sccvn.c: Likewise.
38189         * tree-tailcall.c: Likewise.
38190         * tree-vect-generic.c: Likewise.
38191         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38192         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
38193         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38194         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
38195         * varasm.c: Likewise.
38196         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38197         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
38198         varasm.h.
38199         * init-regs.c: Likewise.
38200         * ira.c: Likewise.
38201         * omp-low.c: Likewise.
38202         * stack-ptr-mod.c: Likewise.
38203         * tree-ssa-reassoc.c: Likewise.
38204         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38205         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
38206         varasm.h.
38207         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38208         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
38209         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38210         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
38211         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38212         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
38213         * tree-ssa-phiopt.c: Likewise.
38214         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38215         fixed-value.h hashtab.h real.h statistics.h stmt.h.
38216         * config/fr30/fr30.c: Likewise.
38217         * config/frv/frv.c: Likewise.
38218         * expr.c: Likewise.
38219         * final.c: Likewise.
38220         * optabs.c: Likewise.
38221         * passes.c: Likewise.
38222         * simplify-rtx.c: Likewise.
38223         * stmt.c: Likewise.
38224         * toplev.c: Likewise.
38225         * var-tracking.c: Likewise.
38226         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38227         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
38228         * lower-subreg.c: Likewise.
38229         * postreload-gcse.c: Likewise.
38230         * ree.c: Likewise.
38231         * reginfo.c: Likewise.
38232         * store-motion.c: Likewise.
38233         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38234         fixed-value.h hashtab.h real.h stmt.h varasm.h.
38235         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38236         fixed-value.h hashtab.h statistics.h stmt.h.
38237         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38238         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
38239         * except.c: Likewise.
38240         * explow.c: Likewise.
38241         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38242         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
38243         varasm.h.
38244         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38245         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
38246         * tree-ssa-structalias.c: Likewise.
38247         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38248         fixed-value.h insn-config.h real.h statistics.h.
38249         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38250         fixed-value.h insn-config.h real.h statistics.h stmt.h.
38251         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38252         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
38253         * cfgbuild.c: Likewise.
38254         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38255         fixed-value.h real.h rtl.h statistics.h stmt.h.
38256         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38257         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
38258         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38259         fixed-value.h real.h statistics.h stmt.h.
38260         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38261         fixed-value.h real.h statistics.h stmt.h varasm.h.
38262         * cprop.c: Likewise.
38263         * modulo-sched.c: Likewise.
38264         * postreload.c: Likewise.
38265         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
38266         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
38267         statistics.h stmt.h varasm.h.
38268         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
38269         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
38270         rtl.h statistics.h stmt.h varasm.h.
38271         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
38272         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
38273         varasm.h.
38274         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
38275         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
38276         varasm.h.
38277         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
38278         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
38279         varasm.h.
38280         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
38281         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
38282         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
38283         function.h real.h statistics.h stmt.h varasm.h.
38284         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
38285         insn-config.h real.h statistics.h stmt.h.
38286         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
38287         statistics.h stmt.h.
38288         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
38289         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
38290         statistics.h stmt.h varasm.h.
38291         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
38292         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
38293         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
38294         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
38295         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
38296         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
38297         statistics.h stmt.h varasm.h.
38298         * ipa-polymorphic-call.c: Likewise.
38299         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
38300         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
38301         statistics.h stmt.h.
38302         * config/c6x/c6x.c: Likewise.
38303         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
38304         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
38305         statistics.h stmt.h varasm.h.
38306         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
38307         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
38308         stmt.h varasm.h.
38309         * ipa-split.c: Likewise.
38310         * tree-eh.c: Likewise.
38311         * tree-ssa-dce.c: Likewise.
38312         * tree-ssa-loop-niter.c: Likewise.
38313         * tree-vrp.c: Likewise.
38314         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
38315         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
38316         stmt.h.
38317         * config/nds32/nds32-fp-as-gp.c: Likewise.
38318         * config/nds32/nds32-intrinsic.c: Likewise.
38319         * config/nds32/nds32-isr.c: Likewise.
38320         * config/nds32/nds32-md-auxiliary.c: Likewise.
38321         * config/nds32/nds32-memory-manipulation.c: Likewise.
38322         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
38323         * config/nds32/nds32-predicates.c: Likewise.
38324         * config/nds32/nds32.c: Likewise.
38325         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
38326         fixed-value.h hashtab.h real.h statistics.h.
38327         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
38328         fixed-value.h hashtab.h real.h statistics.h stmt.h.
38329         * config/arm/arm.c: Likewise.
38330         * config/avr/avr.c: Likewise.
38331         * config/bfin/bfin.c: Likewise.
38332         * config/h8300/h8300.c: Likewise.
38333         * config/i386/i386.c: Likewise.
38334         * config/ia64/ia64.c: Likewise.
38335         * config/iq2000/iq2000.c: Likewise.
38336         * config/m32c/m32c.c: Likewise.
38337         * config/m32r/m32r.c: Likewise.
38338         * config/m68k/m68k.c: Likewise.
38339         * config/mcore/mcore.c: Likewise.
38340         * config/mep/mep.c: Likewise.
38341         * config/mips/mips.c: Likewise.
38342         * config/mn10300/mn10300.c: Likewise.
38343         * config/moxie/moxie.c: Likewise.
38344         * config/pa/pa.c: Likewise.
38345         * config/rl78/rl78.c: Likewise.
38346         * config/rx/rx.c: Likewise.
38347         * config/s390/s390.c: Likewise.
38348         * config/sh/sh.c: Likewise.
38349         * config/sparc/sparc.c: Likewise.
38350         * config/spu/spu.c: Likewise.
38351         * config/stormy16/stormy16.c: Likewise.
38352         * config/v850/v850.c: Likewise.
38353         * config/vax/vax.c: Likewise.
38354         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
38355         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
38356         * config/msp430/msp430.c: Likewise.
38357         * predict.c: Likewise.
38358         * value-prof.c: Likewise.
38359         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
38360         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
38361         * config/microblaze/microblaze.c: Likewise.
38362         * config/nios2/nios2.c: Likewise.
38363         * config/rs6000/rs6000.c: Likewise.
38364         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
38365         insn-config.h real.h rtl.h statistics.h stmt.h.
38366         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
38367         insn-config.h real.h statistics.h stmt.h.
38368         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
38369         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
38370         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
38371         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
38372         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
38373         fixed-value.h real.h statistics.h stmt.h.
38374         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
38375         fixed-value.h statistics.h stmt.h.
38376         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
38377         stmt.h.
38378
38379 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
38380
38381         * gengtype.c (create_user_defined_type): Workaround
38382         -Wmaybe-uninitialized false positives.
38383         * cse.c (fold_rtx): Likewise.
38384         * loop-invariant.c (gain_for_invariant): Likewise.
38385
38386 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
38387
38388         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
38389         set the memory attributes in all cases but clear MEM_EXPR if need be.
38390
38391 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
38392
38393         PR tree-optimization/64434
38394         * cfgexpand.c (reorder_operands): New function.
38395         (expand_gimple_basic_block): Insert call of reorder_operands if
38396         optimized is true.
38397
38398 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
38399
38400         * config/mips/micromips.md (*swp): Remove explicit parallel.
38401         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
38402         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
38403         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
38404         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
38405         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
38406         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
38407         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
38408         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
38409         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
38410         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
38411         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
38412         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
38413         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
38414         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
38415         (mips_wrdsp): Likewise.
38416         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
38417         parallel.
38418         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
38419         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
38420         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
38421         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
38422         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
38423         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
38424         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
38425         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
38426         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
38427
38428 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
38429
38430         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
38431         (mips_print_operand): Support 'y' to print exact log2 in decimal
38432         of a const_int.
38433         * config/mips/mips.h (ISA_HAS_LSA): New define.
38434         (ISA_HAS_DLSA): Likewise.
38435         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
38436         * config/mips/predicates.md (const_immlsa_operand): New predicate.
38437
38438 2015-01-15  Martin Liska  <mliska@suse.cz>
38439
38440         PR target/64377
38441         * optc-save-gen.awk: Add support for array types.
38442
38443 2015-01-15  Richard Biener  <rguenther@suse.de>
38444
38445         PR middle-end/64365
38446         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
38447         for MEM_REF access functions with the same base can never partially
38448         overlap.
38449
38450 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
38451
38452         * common.opt: New option -fstack-protector-explicit.
38453         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
38454         (stack_protect_decl_phase): Handle stack_protect attribute for
38455         explicit stack protection requests.
38456         (expand_used_vars): Similarly.
38457         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
38458         * doc/extend.texi: Add documentation for "stack_protect" attribute.
38459         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
38460
38461 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
38462
38463         PR target/53988
38464         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
38465         reg-reg copies.
38466         (sh_extending_set_of_reg): New struct.
38467         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
38468         sh_remove_reg_dead_or_unused_notes): New Declarations.
38469         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
38470         sh_find_extending_set_of_reg, sh_split_tst_subregs,
38471         sh_extending_set_of_reg::use_as_extended_reg): New functions.
38472         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
38473         convert to insn_and_split and use new function sh_split_tst_subregs.
38474
38475 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
38476
38477         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
38478         option.
38479         (Optimization Options): Move -fuse-ld documentation to...
38480         (Link Options): ...here.
38481
38482 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
38483
38484         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
38485         offsets.
38486         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
38487         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
38488         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
38489         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
38490         instead of ZR for the memory operand of LL/SC.
38491         (compare_and_swap_12, sync_add<mode>): Likewise.
38492         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
38493         (sync_new_<optab>_12, sync_nand_12): Likewise.
38494         (sync_old_nand_12, sync_new_nand_12): Likewise.
38495         (sync_sub<mode>, sync_old_add<mode>): Likewise.
38496         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
38497         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
38498         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
38499         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
38500         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
38501         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
38502         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
38503         * doc/md.texi (ZC): Update description.
38504
38505 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
38506
38507         * builtins.c (expand_builtin_atomic_exchange): Remove error when
38508         memory model is CONSUME.
38509         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
38510         expand_builtin_atomic_store): Change invalid memory model errors to
38511         warnings.
38512         (expand_builtin_atomic_clear): Change invalid model errors to warnings
38513         and issue warning for CONSUME.
38514
38515 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
38516
38517         * lto-cgraph: Update function comments for
38518         lto_symtab_encoder_encode_*.
38519
38520 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
38521
38522         * Makefile.in (site.exp): Do not set ENABLE_LTO.
38523
38524 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
38525
38526         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
38527         * lto-cgraph.c (select_what_to_stream): Remove argument, use
38528         lto_stream_offload_p instead.
38529         * lto-streamer.h (select_what_to_stream): Remove argument.
38530         * passes.c (ipa_write_summaries): Likewise.
38531         * tree-pass.h (ipa_write_summaries): Likewise.
38532
38533 2015-01-14  Richard Biener  <rguenther@suse.de>
38534
38535         PR tree-optimization/59354
38536         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
38537         groups larger than the slp group size as having gaps.
38538
38539 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
38540
38541         PR middle-end/59448
38542         * builtins.c (get_memmodel): Promote consume to acquire always.
38543
38544 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
38545
38546         PR target/64386
38547         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
38548         V32HImode.
38549
38550 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
38551
38552         PR target/64393
38553         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
38554         Enable AVX512BW.
38555         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
38556         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
38557         AVX512VBMI, as it implies AVX512BW.
38558
38559 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
38560
38561         PR target/64387
38562         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
38563         (vec_unpacks_hi_v16sf): Ditto.
38564
38565 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38566
38567         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
38568         is not available.
38569
38570 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38571
38572         * doc/invoke.texi (mapcs): Mention deprecation.
38573         (mapcs-frame): Likewise.
38574
38575 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
38576
38577         PR target/64453
38578         * config/arm/arm.c (callee_saved_reg_p): Define.
38579         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
38580         register is callee saved instead of !call_used_regs[reg].
38581         (thumb1_compute_save_reg_mask): Likewise.
38582
38583 2015-01-14  Hale Wang  <hale.wang@arm.com>
38584
38585         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
38586         Cortex-M7.
38587
38588 2015-01-14  Richard Biener  <rguenther@suse.de>
38589
38590         PR lto/64415
38591         * tree-inline.c (insert_debug_decl_map): Check destination
38592         function MAY_HAVE_DEBUG_STMTS.
38593         (insert_init_debug_bind): Likewise.
38594         (insert_init_stmt): Remove redundant check.
38595         (remap_gimple_stmt): Drop debug stmts if the destination
38596         function has var-tracking assignments disabled.
38597
38598 2015-01-14  Martin Liska  <mliska@suse.cz>
38599
38600         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
38601         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
38602
38603 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38604
38605         PR target/64460
38606         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
38607         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
38608
38609 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
38610
38611         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
38612         level from an ARCH; do not inject the default.
38613         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
38614         MIPS_ISA_LEVEL_SPEC.
38615         (MIPS_ISA_NAN2008_SPEC): Update comment.
38616         (BASE_DRIVER_SELF_SPECS): Likewise.
38617         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
38618         MIPS_DEFAULT_ISA_LEVEL_SPEC.
38619         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
38620         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
38621         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
38622
38623 2015-01-14  Richard Biener  <rguenther@suse.de>
38624
38625         PR tree-optimization/64493
38626         PR tree-optimization/64495
38627         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
38628         assign the proper vectorized PHI to the inner loop exit PHIs.
38629
38630 2015-01-14  Joey Ye  <joey.ye@arm.com>
38631
38632         * config/arm/arm.c (arm_compute_save_reg_mask):
38633         Do not save lr in case of tail call.
38634         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
38635
38636 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
38637
38638         * tree-vrp.c (check_array_ref): Emit more warnings
38639         for warn_array_bounds >= 2.
38640         * common.opt: New option -Warray-bounds=.
38641         * doc/invoke.texi: Document -Warray-bounds=.
38642
38643 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
38644
38645         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
38646         (mforbid-fp-as-gp): Remove.
38647         (mex9): Remove.
38648         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
38649         (nds32_symbol_load_store_p): Remove.
38650         (nds32_fp_as_gp_check_available): Clean up implementation.
38651         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
38652         cases.
38653         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
38654         fp-as-gp and ex9 cases.
38655
38656 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
38657
38658         * tree-profile.c (init_ic_make_global_vars): Drop workaround
38659         for bintuils bug 14342.
38660         (init_ic_make_global_vars): Likewise.
38661         (gimple_init_edge_profiler): Likewise.
38662         (gimple_gen_ic_func_profiler): Likewise.
38663
38664 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
38665
38666         * ipa-inline.c (inline_small_functions): Swap the operands in
38667         enum.
38668
38669 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
38670
38671         PR ipa/64481
38672         * ipa-inline-analysis.c (node_growth_cache): Remove.
38673         (initialize_growth_caches): Do not initialize it.
38674         (free_growth_caches): Do not free it.
38675         (do_estimate_growth): Rename to ...
38676         (estimate_growth): ... this one; drop growth cache code.
38677         (growth_likely_positive): Always go the heuristics way.
38678         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
38679         (reset_edge_caches): Do not reset node growth.
38680         (heap_edge_removal_hook): Do not maintain cache.
38681         (inline_small_functions): Likewise; strenghten sanity check.
38682         (ipa_inline): Do not maintain caches.
38683         * ipa-inline.h (node_growth_cache): Remove.
38684         (do_estimate_growth): Remove to ...
38685         (estimate_growth): this one; remove inline version.
38686         (reset_node_growth_cache): Remove.
38687
38688 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
38689
38690         PR ipa/64565
38691         * ipa-inline.c (inline_small_functions): Update callee keys after
38692         resolving speculation
38693         (inline_small_functions): Always check monotonicity of the queue.
38694
38695 2015-01-13  Marek Polacek  <polacek@redhat.com>
38696
38697         PR middle-end/64391
38698         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
38699
38700 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
38701
38702         PR rtl-optimization/64286
38703         * ree.c (combine_reaching_defs): Move part of comment earlier,
38704         remove !SCALAR_INT_MODE_P check.
38705         (add_removable_extension): Don't add vector mode
38706         extensions if all uses of the source register aren't the same
38707         vector extensions.
38708
38709 2015-01-13  Renlin Li  <renlin.li@arm.com>
38710
38711         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
38712         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
38713
38714 2015-01-13  Martin Liska  <mliska@suse.cz>
38715
38716         * ipa-icf.c (sem_function::equals_private): Call new functions
38717         cl_target_option_print_diff and cl_optimization_print_diff.
38718         * optc-save-gen.awk (cl_target_option_print_diff): New function.
38719         (cl_optimization_print_diff): Likewise.
38720         * opth-gen.awk: Likewise.
38721
38722 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
38723
38724         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
38725         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
38726         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
38727         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
38728         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
38729         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
38730
38731 2015-01-13  Andrew Pinski  <apinski@cavium.com>
38732
38733         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
38734         instead of src mode.
38735
38736 2015-01-13  Richard Biener  <rguenther@suse.de>
38737
38738         PR lto/64373
38739         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
38740         DECL_CONTEXT.
38741
38742 2015-01-13  Andrew Pinski  <apinski@cavium.com>
38743
38744         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
38745         volatile mems.
38746         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
38747
38748 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
38749
38750         PR middle-end/63974
38751         * cfgexpand.c (expand_computed_goto): Don't call
38752         convert_memory_address here.
38753
38754 2015-01-13  Richard Biener  <rguenther@suse.de>
38755
38756         PR tree-optimization/64406
38757         * tree-loop-distibution.c (pass_loop_distribution::execute):
38758         Reset the SCEV hashtable if we distributed anything.
38759
38760 2015-01-13  Richard Biener  <rguenther@suse.de>
38761
38762         PR tree-optimization/64404
38763         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
38764         SLP types for CSEd loads.
38765
38766 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
38767
38768         PR tree-optimization/64436
38769         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
38770         merge of two symbolic numbers for a bitwise OR to ...
38771         (perform_symbolic_merge): This. Also fix computation of the range and
38772         end of the symbolic number corresponding to the result of a bitwise OR.
38773
38774 2015-01-13  Richard Biener  <rguenther@suse.de>
38775
38776         PR tree-optimization/64568
38777         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
38778         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
38779
38780 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
38781
38782         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
38783         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
38784
38785 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
38786
38787         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
38788         target-specific symbol_ref flag.
38789         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
38790         resides in rodata section.
38791         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
38792         (nds32_encode_section_info): New function.
38793
38794 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
38795
38796         * config/nds32/nds32.md (call): Use pseudo instruction bal which
38797         clobbers TA_REGNUM if large code model is specified.
38798         (call_register): Likewise.
38799         (call_immediate): Likewise.
38800         (call_value): Likewise.
38801         (call_value_register): Likewise.
38802         (call_value_immediate): Likewise.
38803
38804 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
38805
38806         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
38807         (TARGET_CMODEL_MEDIUM): New macro.
38808         (TARGET_CMODEL_LARGE): New macro.
38809         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
38810         code model setting in assembly code.
38811
38812 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
38813
38814         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
38815         Remove MASK_GP_DIRECT flag.
38816         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
38817         one of the multilib default options.
38818         * config/nds32/nds32.opt (mgp-direct): Remove.
38819         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
38820         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
38821
38822 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
38823
38824         * config/nds32/nds32.opt (mcmodel): Add new option.
38825         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
38826         to describe code model.
38827
38828 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
38829
38830         PR target/64479
38831         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
38832
38833 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
38834
38835         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
38836         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
38837         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
38838         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
38839         __builtin_sh_set_fpscr.
38840
38841 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
38842
38843         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
38844         after a funtion name just to indicate it is a function.
38845         ([-fsanitize-undefined-trap-on-error]): Likewise.
38846         ([-fdbg-cnt=]): Likewise.
38847         ([-mmemcpy]): Likewise.
38848         ([-mflush-func]): Likewise.
38849         ([-msynci]): Likewise.
38850
38851 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
38852
38853         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
38854         example.
38855
38856 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
38857
38858         PR tree-optimization/64563
38859         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
38860         instead of != VR_VARYING.
38861
38862         PR target/64513
38863         * config/i386/i386.c (ix86_expand_prologue): Add
38864         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
38865
38866         PR tree-optimization/64454
38867         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
38868         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
38869         for signed or [0, op1 - 1] for unsigned modulo.
38870         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
38871         even if op1 does not satisfy integer_pow2p.
38872
38873         PR other/64370
38874         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
38875
38876 2015-01-12  Jeff Law  <law@redhat.com>
38877
38878         PR target/64461
38879         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
38880         (trunchiqi2, truncsihi2): Similarly.
38881
38882         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
38883         rather than calling F.
38884
38885 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38886
38887         * tsan.c (instrument_expr): Use force_gimple_operand.
38888         Use may_be_nonaddressable_p instead of is_gimple_addressable.
38889
38890 2015-01-12  Richard Biener  <rguenther@suse.de>
38891
38892         PR tree-optimization/64530
38893         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
38894         back dr1.
38895
38896 2015-01-12  Richard Biener  <rguenther@suse.de>
38897
38898         PR middle-end/64357
38899         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
38900         latches properly.
38901
38902 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38903
38904         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
38905         Cortex-A17 tuning parameters.
38906         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
38907
38908 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38909
38910         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
38911         * config/arm/arm.c (arm_macro_fusion_p): New function.
38912         (arm_macro_fusion_pair_p): Likewise.
38913         (TARGET_SCHED_MACRO_FUSION_P): Define.
38914         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
38915         (ARM_FUSE_NOTHING): Likewise.
38916         (ARM_FUSE_MOVW_MOVT): Likewise.
38917         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
38918         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
38919         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
38920         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
38921         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
38922         arm_cortex_a5_tune): Specify fuseable_ops value.
38923
38924 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
38925
38926         PR bootstrap/64561
38927         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
38928         test for PIE with copy reloc.
38929         * configure: Regenerated.
38930
38931 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38932
38933         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
38934         in gen_rtx_REG.
38935         (arm_tls_descseq_addr): Likewise.
38936         (arm_gen_movmemqi): Likewise.
38937         (arm_expand_epilogue_apcs_frame): Likewise.
38938         (arm_expand_epilogue): Likewise.
38939         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
38940         in gen_rtx_REG.
38941
38942 2015-01-12  Martin Liska  <mliska@suse.cz>
38943
38944         PR ipa/64550
38945         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
38946         volatility for correct operands.
38947
38948 2015-01-12  Martin Liska  <mliska@suse.cz>
38949
38950         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
38951         indication that a function is not leaf.
38952         (sem_function::compare_polymorphic_p): Likewise.
38953
38954 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
38955
38956         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
38957         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
38958         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
38959         fold-const.h, tree-check.h.
38960
38961 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
38962
38963         PR ipa/63967
38964         PR ipa/64425
38965         * ipa-inline.c (compute_uninlined_call_time,
38966         compute_inlined_call_time): Use counts for extra precision when
38967         needed possible.
38968         (big_speedup_p): Fix formating.
38969         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
38970         (relative_time_benefit): Remove.
38971         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
38972         merge guessed and read profile paths.
38973         (inline_small_functions): Count only !optimize_size functions into
38974         initial size; be more lax about sanity check when profile is used;
38975         be sure to update inlined function profile when profile is read.
38976
38977 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
38978
38979         PR ipa/63470
38980         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
38981         cost when edge becomes direct.
38982         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
38983         is resolved or when introducing new speculation.
38984
38985 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
38986
38987         PR ipa/64551
38988         PR ipa/64552
38989         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
38990         '||' to fix typo issue.
38991
38992         * tree.h (target_opts_for_fn): Check NULL_TREE since it can
38993         accept and return NULL.
38994
38995 2015-01-12  Martin Liska  <mliska@suse.cz>
38996
38997         * cgraph.c (cgraph_edge::remove_callee): Move function to header
38998         file for being inlined.
38999         (cgraph_set_edge_callee): Delete.
39000         (cgraph_edge::redirect_callee): Move function to header file
39001         for being inlined.
39002         (cgraph_edge::make_direct): Use new function.
39003         (cgraph_edge::dump_edge_flags): New function created from
39004         static dump_edge_flags function.
39005         (cgraph_node::dump): Use new function.
39006         (cgraph_edge::verify_count_and_frequency): New function created
39007         from verify_edge_count_and_frequency.
39008         (cgraph_edge::verify_corresponds_to_fndecl): New function created
39009         from verify_edge_corresponds_to_fndecl.
39010         (verify_edge_corresponds_to_fndecl): Delete.
39011         (cgraph_node::verify_node): Use new function.
39012         * cgraph.h (cgraph_edge::set_callee): New function.
39013         (cgraph_edge::dump_edge_flags): Likewise.
39014         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
39015
39016 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
39017
39018         * ipa-utils.c (estimate_function_body_sizes): Do not
39019         free node params when called late with early=true.
39020
39021 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
39022
39023         * doc/md.texi (Instruction Patterns): Rewrite text for
39024         clarity.
39025         (Example): Likewise.
39026
39027 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
39028
39029         * doc/invoke.texi (Option Summary): Break long lines.
39030         [(-fdiagnostics-color)]: Put long literal in @smallexample
39031         instead of inline.
39032         [(-fsanitize-recover)]: Likewise.
39033         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
39034         [(-ffast-math)]: Likewise.
39035         [(--param max-inline-insns-recursive)]: Likewise.
39036         [(--param max-inline-recursive-depth)]: Likewise.
39037         [(-mno-text-section-literals)]: Likewise.
39038
39039 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
39040
39041         * doc/install.texi: Update for libgomp being renamed from "GNU
39042         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
39043         Runtime Library".
39044         * doc/sourcebuild.texi: Likewise.
39045
39046 2015-01-10  Anthony Green  <green@moxielogic.com>
39047
39048         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
39049         mul.x availability for moxiebox configuration.
39050
39051 2015-01-09  Anthony Green  <green@moxielogic.com>
39052
39053         * config/moxie/moxie.md: Tabify assembly output.
39054
39055 2015-01-09  Anthony Green  <green@moxielogic.com>
39056
39057         * config/moxie/moxie.md (CC_REG): Correct register definition.
39058
39059 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
39060
39061         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
39062         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
39063         of log files.
39064
39065 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
39066
39067         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
39068
39069 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
39070             Jakub Jelinek  <jakub@redhat.com>
39071
39072         PR middle-end/64412
39073         * lto-streamer.h (lto_stream_offload_p): New declaration.
39074         * lto-streamer.c (lto_stream_offload_p): New variable.
39075         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
39076         at the same time as section_name_prefix.
39077         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
39078         if lto_stream_offload_p.
39079         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
39080         stream TREE_TARGET_OPTION if lto_stream_offload_p.
39081         (write_ts_function_decl_tree_pointers): Don't
39082         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
39083         * tree-streamer-in.c (unpack_value_fields): Don't stream
39084         TREE_TARGET_OPTION in if ACCEL_COMPILER.
39085         (lto_input_ts_function_decl_tree_pointers): Don't stream
39086         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
39087         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
39088         instead of section_name_prefix string comparisons.
39089
39090 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
39091
39092         PR rtl-optimization/64536
39093         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
39094         tablejumps.
39095
39096 2015-01-09  Michael Collison  <michael.collison@linaro.org>
39097
39098         PR tree-optimization/64322
39099         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
39100         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
39101
39102 2015-01-09  Tom de Vries  <tom@codesourcery.com>
39103
39104         PR rtl-optimization/64539
39105         * regcprop.c (kill_clobbered_values): Factor out of ...
39106         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
39107         instead of note_stores with kill_clobbered_value.
39108
39109 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
39110
39111          * ginclude/unwind-arm-common.h: Revert previous commit.
39112
39113 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
39114
39115         * config.gcc (arm*-*-freebsd*): New configuration.
39116         * config/arm/freebsd.h: New file.
39117         * config.host: Add extra components for arm*-*-freebsd*.
39118         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
39119         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
39120
39121 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
39122
39123         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
39124         for -mcpu=e6500.
39125         * config/rs6000/t-rtems: Add e6500 multilibs.
39126
39127 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
39128
39129         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
39130         MPC8540.
39131
39132 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
39133
39134         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
39135         MULTILIB_EXCEPTIONS.
39136
39137 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
39138
39139         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
39140         MULTILIB_EXCEPTIONS.
39141
39142 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
39143
39144         * config/arm/t-rtems-eabi: Rename to...
39145         * config/arm/t-rtems: ...this.
39146         * config/arm/rtems-eabi.h: Rename to...
39147         * config/arm/rtems.h: ...this.
39148         * config.gcc (arm*-*-rtems*): Reflect changes above.
39149
39150 2015-01-09  Richard Biener  <rguenther@suse.de>
39151
39152         PR tree-optimization/64410
39153         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
39154         on the LHS.
39155         (execute_update_addresses_taken): Deal with that.
39156         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
39157         loads/stores for complex variables.
39158
39159 2015-01-09  Martin Liska  <mliska@suse.cz>
39160
39161         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
39162         name comparison.
39163         (func_checker::compare_memory_operand): New function.
39164         (func_checker::compare_operand): Split case to newly
39165         added functions.
39166         (func_checker::compare_cst_or_decl): New function.
39167         (func_checker::compare_gimple_call): Identify
39168         memory operands.
39169         (func_checker::compare_gimple_assign): Likewise.
39170         * ipa-icf-gimple.h: New function.
39171
39172 2015-01-09  Martin Liska  <mliska@suse.cz>
39173
39174         PR ipa/64503
39175         * sreal.c (sreal::dump): Change unsigned format to signed for
39176         m_exp value.
39177         (sreal::to_double): Replace exp2 with scalbln.
39178
39179 2015-01-09  Martin Liska  <mliska@suse.cz>
39180
39181         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
39182         * ipa-icf.c (sem_function::equals_private): Add support for target and
39183         (sem_item_optimizer::merge_classes): Remove redundant function
39184         optimization flags comparison.
39185         * tree.h (target_opts_for_fn): New function.
39186
39187 2015-01-09  Tom de Vries  <tom@codesourcery.com>
39188
39189         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
39190
39191 2015-01-09  Kito Cheng  <kito@0xlab.org>
39192
39193         PR rtl-optimization/64348
39194         * lra-constraints.c (split_reg): Fix caller-save store/restore
39195         instruction generation.
39196
39197 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
39198
39199         PR gcov-profile/61790
39200         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
39201         long long.  Fallback to int64_t if host doesn't have long long and
39202         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
39203
39204 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
39205
39206         PR tree-optimization/63989
39207         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
39208         from 1000 to 10000.
39209         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
39210         (get_stridx): If we don't have a record for certain SSA_NAME,
39211         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
39212         constant offset, call get_stridx_plus_constant.
39213         (get_stridx_plus_constant): New function.
39214         (zero_length_string): Don't use get_stridx here.
39215
39216         PR target/55023
39217         PR middle-end/64388
39218         * dse.c (struct insn_info): Mention frame_read set also
39219         before reload for tail calls on some targets.
39220         (scan_insn): Revert 2014-12-22 change.  Set frame_read
39221         also before reload for tail calls if
39222         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
39223         instead of add_non_frame_wild_read for non-const/memset
39224         tail calls after reload.
39225
39226 2015-01-08  Jason Merrill  <jason@redhat.com>
39227
39228         * ubsan.c (do_ubsan_in_current_function): New.
39229         (pass_ubsan::gate): Use it.
39230         * ubsan.h: Declare it.
39231         * convert.c (convert_to_integer): Use it.
39232
39233 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
39234
39235         PR target/64338
39236         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
39237         compare_code when it is unconditionally overwritten afterwards.
39238         Use ix86_reverse_condition instead of reverse_condition.  Don't
39239         change code if *reverse_condition* returned UNKNOWN and don't
39240         swap ct/cf and negate diff in that case.
39241
39242 2015-01-08  Mike Stump  <mikestump@comcast.net>
39243
39244         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
39245         (pass_tsan_O0::gate): Likewise.
39246         * extend.texi (Function Attributes): Add no_sanitize_thread
39247         documentation.
39248
39249 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
39250
39251         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
39252         for registering builtins.
39253         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
39254         add -fopenmp to the argv_obstack used when invoking
39255         compile_for_target.
39256
39257         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
39258         add "-m32" or "-m64" to argv_obstack.
39259         (generate_host_descr_file): Likewise, when invoking host_compiler.
39260         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
39261         ld.
39262
39263 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
39264
39265         * config/sh/sh-mem.cc: Use constant as second operand when emitting
39266         tstsi_t insns.
39267
39268 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
39269
39270         PR target/55212
39271         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
39272         constant load if constant operand fits into I08.
39273
39274 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
39275
39276         PR sanitizer/64336
39277         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
39278         and TREE_THIS_VOLATILE for MEM_REFs.
39279         (build5_stat): Fix up initialization of TREE_READONLY and
39280         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
39281
39282 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
39283
39284         PR target/64533
39285         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
39286         of r for the second alternative of the destination operand.
39287
39288 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
39289
39290         PR target/36557
39291         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
39292
39293 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
39294
39295         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
39296         keywords.
39297         ([-fivar-visibility], [-fvisibility]): Likewise.
39298
39299 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
39300
39301         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
39302         the file where @code, @command, etc is more appropriate.
39303
39304 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
39305
39306         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
39307         of -mrecip= documentation.
39308
39309 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
39310
39311         PR target/64505
39312         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
39313         correct reload handler if -m32 -mpowerpc64 is used.
39314
39315 2015-01-06  Tom de Vries  <tom@codesourcery.com>
39316
39317         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
39318
39319 2015-01-08  Christian Bruel  <christian.bruel@st.com>
39320
39321         PR target/64507
39322         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
39323
39324 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
39325
39326         PR tree-optimization/63259
39327         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
39328         if optab exists for 16bit byteswap.
39329
39330 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
39331
39332         * opts.c (common_handle_option): Add support for
39333         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
39334         * doc/invoke.texi: Document -fno-sanitize=all,
39335         -f{,no-}sanitize-recover=all.  Document that
39336         -fsanitize=float-cast-overflow is not enabled
39337         by -fsanitize=undefined.  Fix up documentation
39338         of -f{,no-}sanitize-recover.
39339
39340 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
39341
39342         * config.gcc: Add Visium support.
39343         * configure.ac: Likewise.
39344         * configure: Regenerate.
39345         * doc/extend.texi (interrupt attribute): Add Visium.
39346         * doc/invoke.texi: Document Visium options.
39347         * doc/install.texi: Document Visium target.
39348         * doc/md.texi: Document Visium constraints.
39349         * common/config/visium: New directory.
39350         * config/visium: Likewise.
39351
39352 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
39353
39354         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
39355         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
39356
39357 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
39358
39359         * combine.c (combine_validate_cost): Do not count the cost of a
39360         split I2 twice.  Do not display it twice in the dump, either.
39361
39362 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
39363
39364         Revert parts of r219199.
39365         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
39366         <inttypes.h>.
39367         ([-Wtraditional]): Restore markup on <limits.h>.
39368
39369 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
39370
39371         PR c++/31397
39372         * doc/invoke.texi: Document -Wsuggest-override.
39373
39374 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
39375
39376         PR rtl-optimization/64287
39377         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
39378         (process_options): Disable flag_ipa_ra if profiling.
39379
39380 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
39381
39382         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
39383
39384 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
39385
39386         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
39387         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
39388         put under #if TARGET_LOOPS guard.
39389
39390 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
39391
39392         * config/i386/i386.c (output_387_binary_op): Use std::swap.
39393
39394 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
39395
39396         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
39397         * rtl.h (refers_to_regno_p): Add overload.
39398         * cse.c: Use it.
39399         * bt-load.c: Likewise.
39400         * combine.c: Likewise.
39401         * df-scan.c: Likewise.
39402         * sched-deps.c: Likewise.
39403         * config/s390/s390.c: Likewise.
39404         * config/m32r/m32r.c: Likewise.
39405         * config/rs6000/spe.md: Likewise.
39406         * config/rs6000/rs6000.c: Likewise.
39407         * config/pa/pa.c: Likewise.
39408         * config/stormy16/stormy16.c: Likewise.
39409         * config/cris/cris.c: Likewise.
39410         * config/arc/arc.md: Likewise.
39411         * config/arc/arc.c: Likewise.
39412         * config/sh/sh.md: Likewise.
39413         * config/sh/sh.c: Likewise.
39414         * config/frv/frv.c: Likewise.
39415
39416 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
39417
39418         PR sanitizer/64265
39419         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
39420         call as cleanup of the whole body.
39421         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
39422         * tsan.c (replace_func_exit): New function.
39423         (instrument_func_exit): Moved earlier.
39424         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
39425         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
39426         been found.
39427         (tsan_pass): Don't call instrument_func_exit.
39428         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
39429         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
39430         inlining.
39431
39432         PR sanitizer/64344
39433         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
39434         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
39435         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
39436         if the result is integer_zerop, return NULL_TREE.
39437         * convert.c (convert_to_integer): Pass expr as ARG.
39438
39439         PR tree-optimization/64465
39440         * tree-inline.c (redirect_all_calls): During inlining
39441         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
39442         changed the stmt to a non-throwing call.
39443
39444 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
39445
39446         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
39447         etc markup throughout the file.
39448
39449 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
39450
39451         Enable experimental TSAN support for Ada.
39452         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
39453
39454 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
39455
39456         PR tree-optimization/64494
39457         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
39458         clear SSA_NAME_ANTI_RANGE_P flag.
39459
39460 2015-01-05  Marek Polacek  <polacek@redhat.com>
39461
39462         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
39463
39464 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
39465
39466         Update copyright years.
39467
39468         * gcc.c (process_command): Update copyright notice dates.
39469         * gcov-dump.c: Ditto.
39470         * gcov.c: Ditto.
39471         * doc/cpp.texi: Bump @copying's copyright year.
39472         * doc/cppinternals.texi: Ditto.
39473         * doc/gcc.texi: Ditto.
39474         * doc/gccint.texi: Ditto.
39475         * doc/gcov.texi: Ditto.
39476         * doc/install.texi: Ditto.
39477         * doc/invoke.texi: Ditto.
39478
39479         * auto-profile.c, auto-profile.h: Fix up Copyright line.
39480
39481 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
39482
39483         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
39484         verb tense, etc.
39485         ([-fvtable-verify], [-fvtv-debug]): Likewise.
39486         ([-Wabi]): Likewise.
39487         ([-fmessage-length]): Likewise.
39488         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
39489         ([-Wno-discarded-qualifiers]): Likewise.
39490         ([-Wnodiscarded-array-qualifiers]): Likewise.
39491         ([-Wno-virtual-move-assign]): Likewise.
39492         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
39493         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
39494         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
39495         ([-fsanitize-undefined-trap-on-error]): Likewise.
39496         ([-floop-interchange]): Likewise.
39497         ([-ftree-coalesce-inlined-vars]): Likewise.
39498         ([-fvect-cost-model]): Likewise.
39499         ([-flto]): Likewise.
39500         ([--param]): Likewise.
39501         (Spec Files): Likewise.
39502         ([-mstrict-align]): Likewise.
39503         ([-mfix-cortex-a53-835769]): Likewise.
39504         ([-march], [-mtune]): Likewise.
39505         ([-mpic-register]): Likewise.
39506         ([-munaligned-access]): Likewise.
39507         ([-msp8]): Likewise.
39508         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
39509         (AVR Built-in Macros): Likewise.
39510         ([-mpreferred-stack-boundary]): Likewise.
39511         ([-mtune-crtl]): Likewise.
39512         ([-mashf]): Likewise.
39513         ([-mmcu=]): Likewise.
39514         ([-minrt]): Likewise.
39515         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
39516         ([-mupper-regs]): Likewise.
39517         ([-matomic-model]): Likewise.
39518         ([-mdiv]): Likewise.
39519         ([-mzdcbranch]): Likewise.
39520         ([-mdisable-callt]): Likewise.
39521         ([-msoft-float]): Likewise.
39522         ([-m8byte-align]): Likewise.
39523         ([-fstack-reuse]): Likewise.
39524
39525 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
39526
39527         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
39528         Fix markup, light copy-editing.
39529         ([-fauto-profile]): Rewrite to fix formatting and content
39530         problems.
39531
39532 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
39533
39534         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
39535         Copy-edit description.
39536         ([-fisolate-erroneous-paths-attribute]): Likewise.
39537         * common.opt (fisolate-erroneous-paths-dereference):
39538         Copy-edit description.
39539         (fisolate-erroneous-paths-attribute): Likewise.
39540
39541 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
39542
39543         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
39544         tidy grammar.
39545
39546 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
39547
39548         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
39549         ([-fvtv-debug]): Likewise.
39550         ([-Wc++-compat]): Likewise.
39551         ([-Wc++11-compat]): Likewise.
39552         ([-Wc++14-compat]): Likewise.
39553         ([-Wno-sized-deallocation]): Likewise.
39554         ([-femit-class-debug-always]): Likewise.
39555         ([-femit-struct-debug-detailed]): Likewise.
39556         ([-fno-keep-inline-dllexport]): Likewise.
39557         ([-fira-algorithm]): Likewise.
39558         ([-fira-region]): Likewise.
39559         ([-flra-remat]): Likewise.
39560         ([-fipa-ra]): Likewise.
39561         ([-fhoist-adjacent-loads]): Likewise.
39562         ([-fisolate-erroneous-paths-dereference]): Likewise.
39563         ([-fisolate-erroneous-paths-attribute]): Likewise.
39564         ([-ftree-switch-conversion]): Likewise.
39565         ([-ftree-tail-merge]): Likewise.
39566         ([-ftree-loop-if-convert]): Likewise.
39567         ([-ftree-loop-if-convert-stores]): Likewise.
39568         ([-ftree-loop-distribution]): Likewise.
39569         ([-ftree-loop-distribute-patterns]): Likewise.
39570         ([-flto-compression-level]): Likewise.
39571         ([-flto-report]): Likewise.
39572         ([-flto-report-wpa]): Likewise.
39573         ([-fuse-linker-plugin]): Likewise.
39574         ([-mfix-cortex-a53-835769]): Likewise.
39575         ([-mno-fix-cortex-a53-835769]): Likewise.
39576         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
39577         explicit listing; add a note to the discussion indicating they
39578         exist.  Reorder table to group similar options.  Add missing
39579         @opindex entries.  Add @need commands throughout the table to
39580         allow it to be split across multiple pages.
39581         ([-m8bit-idiv]): Fix @opindex.
39582         ([-mavx256-split-unaligned-load]): Likewise.
39583         ([-mavx256-split-unaligned-store]): Likewise.
39584         ([-mstack-protector-guard]): Likewise.
39585         ([-mcpu=]): Likewise.
39586         ([-mcpu]): Likewise.
39587         ([-mpointer-size=]): Likewise.
39588
39589 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
39590
39591         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
39592         instead of `m' constraint.  Likewise for unnamed movb comparison
39593         patterns using reg_before_reload_operand predicate.
39594         * config/pa/predicates.md (reg_before_reload_operand): Tighten
39595         predicate to reject register index and LO_SUM DLT memory forms
39596         after reload.
39597
39598 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
39599
39600         * doc/invoke.texi (Option Summary): Fix spelling of
39601         -fdevirtualize-at-ltrans.
39602         ([-fdevirtualize]): Fix markup.
39603         ([-fdevirtualize-speculatively]): Fix typo.
39604         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
39605         implementor-speaky.
39606         * common.opt (fdevirtualize-at-ltrans): Likewise.
39607         * ipa-devirt.c: Fix typos in comments throughout the file.
39608         (ipa_devirt): Fix typos in format strings for dump output.
39609
39610 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
39611
39612         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
39613         discussion of defaults, light copy-editing.
39614
39615 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
39616
39617         * tsan.c (instrument_expr): corrected previous checkin.
39618
39619 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
39620
39621         Instrument bit field and unaligned accesses for TSAN.
39622         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
39623         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
39624         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
39625         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
39626         unaligned memory regions.
39627
39628 2015-01-01  Anthony Green  <green@moxielogic.com>
39629
39630         * config/moxie/predicates.md (moxie_general_movsrc_operand):
39631         Restrict move source register offsets to 16 bits.
39632 \f
39633 Copyright (C) 2015 Free Software Foundation, Inc.
39634
39635 Copying and distribution of this file, with or without modification,
39636 are permitted in any medium without royalty provided the copyright
39637 notice and this notice are preserved.