]>
Commit | Line | Data |
---|---|---|
c1a9c369 JJ |
1 | 2016-12-30 Sandra Loosemore <sandra@codesourcery.com> |
2 | ||
7f86d7de | 3 | * doc/cppopts.texi: Reorder table entries to put the most |
c1a9c369 JJ |
4 | commonly-used options first and debug options last. |
5 | ||
6 | 2016-12-30 Uros Bizjak <ubizjak@gmail.com> | |
7 | ||
8 | * config/i386/i386.md (*testqi_ext_3): Merge insn pattern and | |
9 | corresponding splitter to define_insn_and_split. Use wi::shifted_mask | |
10 | helper function to calculate mask. | |
11 | ||
12 | 2016-12-30 Uros Bizjak <ubizjak@gmail.com> | |
13 | ||
14 | * config/i386/predicates.md (ext_register_operand): Do not reject | |
15 | registers without upper parts here. | |
16 | * config/i386/i386.md (extv<mode>): Copy registers without | |
17 | upper parts in operand 1 to a pseudo. | |
18 | (extzv<mode>): Ditto. | |
19 | (insv<mode>): Ditto. | |
20 | ||
21 | 2016-12-30 Gerald Pfeifer <gerald@pfeifer.com> | |
22 | ||
23 | * doc/standards.texi (Standards): Remove broken reference to | |
24 | objc.toodarkpark.net and avoid list with now just one item. | |
25 | ||
26 | 2016-12-29 Uros Bizjak <ubizjak@gmail.com> | |
27 | ||
28 | PR target/78904 | |
29 | * config/i386/i386.md (*extvqi): Remove insn pattern. | |
30 | (divmodqi4): Update expander to generate QImode zero-extract from AH. | |
31 | ||
32 | 2016-12-29 Michael Meissner <meissner@linux.vnet.ibm.com> | |
33 | ||
34 | * config/rs6000/rs6000.c (altivec_expand_builtin): Fix typos in | |
35 | error messages. | |
36 | ||
37 | 2016-12-29 Gerald Pfeifer <gerald@pfeifer.com> | |
38 | ||
39 | * doc/extend.texi (Cilk Plus Builtins): cilkplus.org now uses | |
40 | https by default. | |
41 | * doc/passes.texi (Cilk Plus Transformation): Ditto. | |
42 | * doc/generic.texi (Statements for C++): Ditto, and use @uref. | |
43 | ||
44 | 2016-12-28 Uros Bizjak <ubizjak@gmail.com> | |
45 | ||
46 | PR target/78904 | |
47 | * config/i386/constraints.md (Bn): New special memory constraint. | |
48 | * config/i386/predicates.md (norex_memory_operand): New predicate. | |
49 | * config/i386/i386.md (*extzvqi_mem_rex64): New insn pattern and | |
50 | corresponding peephole2 pattern. | |
51 | ||
52 | 2016-12-27 Sandra Loosemore <sandra@codesourcery.com> | |
53 | ||
54 | * doc/cppdiropts.texi, doc/cppwarnopts.texi: New files, split from... | |
55 | * doc/cppopts.texi: .... here. | |
56 | * doc/cpp.texi (Invocation): Adjust includes. | |
57 | * doc/invoke.texi (Option Summary): Add missing preprocesor-related | |
58 | options. Adjust sorting and formatting. | |
59 | (Warning Options): Include cppwarnopts.texi. | |
60 | (Preprocessor Options): Add pointers and list the specific | |
61 | preprocessor options from cppopts.texi first instead of last. | |
62 | (Directory Options): Move/merge documentation of -I, -iquote, and | |
63 | -I- to cppdiropts.texi. Include that file here. | |
64 | ||
65 | 2016-12-27 Michael Meissner <meissner@linux.vnet.ibm.com> | |
66 | ||
67 | * config/rs6000/predicates.md (const_0_to_12_operand): Rename | |
68 | predicate and change test from 0..11 to 0..12 to match the | |
69 | semantics of the word extract/insert instructions. Change all | |
70 | callers. | |
71 | (const_0_to_11_operand): Likewise. | |
72 | * config/rs6000/rs6000.c (altivec_expand_builtin): Likewise. | |
73 | * config/rs6000/vsx.md (vextract4b): Likewise. | |
74 | (vextract4b_internal): Likewise. | |
75 | (vinsert4b): Likewise. | |
76 | (vinsert4b_internal): Likewise. | |
77 | (vinsert4b_di): Likewise. | |
78 | (vinsert4b_di_internal): Likewise. | |
79 | * config/rs6000/rs6000.md (zero_extendsi<mode>2): Fix offset used | |
80 | in xxextractuw to zero extend the word in the vector registers. | |
81 | (lfiwzx): Likewise. | |
82 | ||
83 | 2016-12-27 Uros Bizjak <ubizjak@gmail.com> | |
84 | ||
85 | * config/i386/i386.c (ix86_secondary_reload): Require QImode | |
86 | intermediate for QImode mask register spill only for !TARGET_AVX512DQ. | |
87 | Always use true_regnum to determine operand regno. | |
88 | ||
89 | 2016-12-27 Sandra Loosemore <sandra@codesourcery.com> | |
90 | ||
91 | * doc/cppopts.texi: Delete redundant documentation for -x. Move | |
92 | -fno-show-column documentation to... | |
93 | * doc/invoke.texi (Diagnostic Message Formatting Options): ...here. | |
94 | Update the option summary. | |
95 | ||
96 | 2016-12-27 Uros Bizjak <ubizjak@gmail.com> | |
97 | ||
98 | * config/i386/i386.md (VI_512): Remove. | |
99 | (vcond<V_512:mode><VI_AVX512BW:mode>): Use VI_AVX512BW | |
100 | mode iterator instead of VI_512. | |
101 | (vcondu<V_512:mode><VI_AVX512BW:mode>): Ditto. | |
102 | ||
103 | 2016-12-27 Jakub Jelinek <jakub@redhat.com> | |
104 | ||
105 | PR translation/78922 | |
106 | * config/i386/stringop.opt: Remove. | |
107 | ||
108 | 2016-12-27 Uros Bizjak <ubizjak@gmail.com> | |
109 | ||
110 | PR target/78904 | |
111 | * config/i386/constraints.md (Bc): New special memory constraint. | |
112 | * config/i386/i386.md (*cmpqi_ext_1, *extvqi, *extzvqi): Use Bc | |
113 | constraint with nonimmediate_operand to allow constant memory operands. | |
114 | (*cmpqi_ext_3, insv<mode>_1, addqi_ext_1, *testqi_ext_1, andqi_ext_1) | |
115 | (*<any_or:code>qi_ext_1, *xorqi_ext_1_cc): Use Bc constraint | |
116 | with general_operand to allow constant memory operands. | |
117 | ||
118 | 2016-12-27 Alexander Ivchenko <alexander.ivchenko@intel.com> | |
119 | ||
120 | * c-family/c.opt (flag_chkp_flexible_struct_trailing_arrays): | |
121 | Add new option. | |
122 | (fchkp-narrow-to-innermost-array): Fix typo. | |
123 | * doc/cpp.texi (flag_chkp_flexible_struct_trailing_arrays): Ditto. | |
124 | * tree-chkp.c (chkp_may_narrow_to_field ): Forbid | |
125 | narrowing when flag_chkp_flexible_struct_trailing_arrays is used | |
126 | and the field is the last array field in the structure. | |
127 | ||
128 | 2016-12-27 Uros Bizjak <ubizjak@gmail.com> | |
129 | ||
130 | * config/i386/i386.md (andqi_ext_1): Use general_operand | |
131 | predicate for operand 2. | |
132 | ||
133 | 2016-12-27 Uros Bizjak <ubizjak@gmail.com> | |
134 | ||
135 | PR target/78904 | |
136 | * config/i386/i386.md (*cmpqi_ext_1, *extvqi, *extzvqi): Use | |
137 | nonimmediate_operand instead of nonimmediate_x64nomem_operand. | |
138 | (*cmpqi_ext_3, insv<mode>_1, addqi_ext_1, *testqi_ext_1, andqi_ext_1) | |
139 | (*<any_or:code>qi_ext_1, *xorqi_ext_1_cc): Use general_operand | |
140 | instead of general_x64nomem_operand. | |
141 | * config/i386/predicates.md (nonimmediate_x64nomem_operand): Remove. | |
142 | (general_x64nomem_operand): Ditto. | |
143 | ||
144 | 2016-12-26 Uros Bizjak <ubizjak@gmail.com> | |
145 | ||
146 | PR target/78904 | |
147 | * config/i386/i386.md (addqi_ext_1): Canonicalize insn pattern w.r.t. | |
148 | zero_extract RTXes. | |
149 | (*addqi_ext_2): Ditto. | |
150 | (testqi_ext_ccno_0): Canonicalize expander w.r.t. zero_extract RTXes. | |
151 | (testqi_ext_1_ccno): Rename from testqi_ext_ccno_0. | |
152 | (*testqi_ext_0): Merge with *testqi_ext_1. | |
153 | (*testqi_ext_1): Canonicalize insn pattern w.r.t. zero_extract RTXes. | |
154 | Update corresponding splitter. | |
155 | (*testqi_ext_2): Canonicalize insn pattern w.r.t. zero_extract RTXes. | |
156 | (*andqi_ext_0): Merge with *andqi_ext_1. | |
157 | (andqi_ext_1): Canonicalize insn pattern w.r.t. zero_extract RTXes. | |
158 | Rename from *andqi_ext_1. Update corresponding splitter and | |
159 | peephole2 patterns. | |
160 | (*andqi_ext_1_cc): Rename from *andqi_ext_0_cc. | |
161 | (*andqi_ext_2): Canonicalize insn pattern w.r.t. zero_extract RTXes. | |
162 | (*<any_or:code>qi_ext_0): Merge with *andqi_ext_1. | |
163 | (*<any_or:code>qi_ext_1): Canonicalize insn pattern w.r.t. | |
164 | zero_extract RTXes. Update corresponding splitter. | |
165 | (*<any_or:code>qi_ext_2): Canonicalize insn pattern w.r.t. | |
166 | zero_extract RTXes. | |
167 | (xorqi_cc_ext_1): Canonicalize expander w.r.t. zero_extract RTXes. | |
168 | (xorqi_ext_1_cc): Rename from xorqi_cc_ext_1. | |
169 | (*xorqi_cc_ext_1): Canonicalize insn pattern w.r.t. zero_extract RTXes. | |
170 | Update corresponding splitter. | |
171 | (*xorqi_ext_1_cc): Rename from *xorqi_cc_ext_1. | |
172 | (isinfxf2): Update calls to renamed expanders. | |
173 | (isinf<mode>2): Ditto. | |
174 | * config/i386/i386.c (ix86_expand_fp_compare): Ditto. | |
175 | (ix86_emit_fp_unordered_jump): Ditto. | |
176 | (ix86_emit_i387_round): Ditto. | |
177 | ||
178 | 2016-12-26 Eric Botcazou <ebotcazou@adacore.com> | |
179 | ||
180 | * doc/invoke.texi (SPARC options): Add missing documentation for -mlra. | |
181 | ||
182 | * doc/cpp.texi (Invocation): Remove space in command. | |
183 | ||
184 | 2016-12-25 Sandra Loosemore <sandra@codesourcery.com> | |
185 | ||
186 | * doc/cpp.texi (Invocation): Revise to indicate that GCC driver | |
187 | options are only documented in the GCC manual. | |
188 | * doc/cppopts.texi: Delete documentation of GCC driver options | |
189 | -o, -Wall, -Wtraditional, -Werror, -Wsystem-headers, -w, | |
190 | -pedantic, -pedantic-errors, -std=, -ansi, --help, --target-help, | |
191 | -v, -version. Update -Wcomment, -Wtrigraphs, -Wundef, | |
192 | -Wexpansion-to-defined, -Wno-endif-labels, -traditional, | |
193 | -traditional-cpp, -trigraphs to merge text previously in GCC manual. | |
194 | * doc/invoke.texi (Option Summary): Move -trigraphs, -traditional, | |
195 | and -traditional-cpp from C dialect options to preprocessor options. | |
196 | (C Dialect Options): Likewise. | |
197 | (Warning Options): Delete documentation of -Wcomment, -Wtrigraphs, | |
198 | -Wexpansion-to-defined, -Wundef, and -Wno-endif-labels. | |
199 | ||
200 | 2016-12-24 Richard Sandiford <richard.sandiford@arm.com> | |
201 | ||
202 | * tree-core.h (tree_base): Document the meaning of public_flag | |
203 | for SSA names. | |
204 | * tree.h (SSA_NAME_IS_VIRTUAL_OPERAND): New macro. | |
205 | (SET_SSA_NAME_VAR_OR_IDENTIFIER): Record whether the variable | |
206 | is a virtual operand. | |
207 | * gimple-expr.h (virtual_operand_p): Use SSA_NAME_IS_VIRTUAL_OPERAND. | |
208 | ||
209 | 2016-12-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
210 | ||
211 | * tree-pretty-print.c (dump_generic_node): Change dump format for | |
212 | REALPART_EXPR and IMAGPART_EXPR with TDF_GIMPLE. | |
213 | ||
214 | 2016-12-22 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
215 | ||
216 | * varasm.c (build_constant_desc): Use the alignment of the var | |
217 | decl instead of the original expression. | |
218 | ||
219 | 2016-12-22 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
220 | ||
221 | * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define | |
222 | __S390_ARCH_LEVEL__. | |
223 | ||
224 | 2016-12-22 Martin Liska <mliska@suse.cz> | |
225 | ||
226 | PR tree-optimization/78886 | |
227 | * tree-ssa-strlen.c (handle_builtin_malloc): Return when LHS | |
228 | is equal to NULL. | |
229 | ||
230 | 2016-12-22 Jakub Jelinek <jakub@redhat.com> | |
231 | ||
232 | PR bootstrap/78817 | |
233 | * vec.h (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Revert | |
234 | 2016-12-15 change. | |
235 | ||
236 | 2016-12-21 Vladimir Makarov <vmakarov@redhat.com> | |
237 | ||
238 | PR rtl-optimization/78580 | |
239 | * ira-costs.c (find_costs_and_classes): Make regno_aclass | |
240 | translated into an allocno class. | |
241 | ||
242 | 2016-12-21 Jakub Jelinek <jakub@redhat.com> | |
243 | ||
244 | PR bootstrap/78817 | |
245 | * tree-pass.h (make_pass_post_ipa_warn): Declare. | |
246 | * builtins.c (validate_arglist): Adjust get_nonnull_args call. | |
247 | Check for NULL pointer argument to nonnull arg here. | |
248 | (validate_arg): Revert 2016-12-14 changes. | |
249 | * calls.h (get_nonnull_args): Remove declaration. | |
250 | * tree-ssa-ccp.c: Include diagnostic-core.h. | |
251 | (pass_data_post_ipa_warn): New variable. | |
252 | (pass_post_ipa_warn): New class. | |
253 | (pass_post_ipa_warn::execute): New method. | |
254 | (make_pass_post_ipa_warn): New function. | |
255 | * tree.h (get_nonnull_args): Declare. | |
256 | * tree.c (get_nonnull_args): New function. | |
257 | * calls.c (maybe_warn_null_arg): Removed. | |
258 | (maybe_warn_null_arg): Removed. | |
259 | (initialize_argument_information): Revert 2016-12-14 changes. | |
260 | * passes.def: Add pass_post_ipa_warn after first ccp after IPA. | |
261 | ||
262 | 2016-12-21 Pat Haugen <pthaugen@us.ibm.com> | |
263 | ||
264 | PR rtl-optimization/11488 | |
265 | * common/config/rs6000/rs6000-common.c | |
266 | (rs6000_option_optimization_table): Enable -fsched-pressure. | |
267 | * config/rs6000/rs6000.c (TARGET_COMPUTE_PRESSURE_CLASSES): Define | |
268 | target hook. | |
269 | (rs6000_option_override_internal): Set default -fsched-pressure | |
270 | algorithm. | |
271 | (rs6000_compute_pressure_classes): Implement target hook. | |
272 | ||
273 | 2016-12-21 Bill Seurer <seurer@linux.vnet.ibm.com> | |
274 | ||
275 | PR sanitizer/65479 | |
276 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Add | |
277 | -fasynchronous-unwind-tables option when -fsanitize=address is | |
278 | specified. | |
279 | ||
280 | 2016-12-21 Bernd Schmidt <bschmidt@redhat.com> | |
281 | ||
282 | PR target/71321 | |
283 | * config/i386/i386.md (lea<mode>_general_2b, lea<mode>_general_3b): New | |
284 | patterns. | |
285 | * config/i386/predicates.md (const123_operand): New. | |
286 | ||
287 | 2016-12-21 Jakub Jelinek <jakub@redhat.com> | |
288 | Martin Liska <mliska@suse.cz> | |
289 | ||
290 | PR driver/78863 | |
291 | * gcc.c (driver::build_option_suggestions): Do not add | |
292 | -fsanitize=all as a suggestion candidate. | |
293 | ||
294 | 2016-12-21 Alexander Monakov <amonakov@ispras.ru> | |
295 | ||
296 | PR target/78831 | |
297 | * config/nvptx/nvptx.c (init_softstack_frame): Remove assert. Compute | |
298 | crtl->is_leaf only if unset. Adjust comment. | |
299 | ||
300 | 2016-12-21 Andrew Pinski <apinski@cavium.com> | |
301 | ||
302 | * match.pd (max:c @0 (plus@2 @0 INTEGER_CST@1)): New Pattern. | |
303 | (min:c @0 (plus@2 @0 INTEGER_CST@1)) : New Pattern. | |
304 | ||
305 | 2016-12-20 James Greenhalgh <james.greenhalghj@arm.com> | |
306 | ||
307 | * common.opt (excess_precision): Tag as SetByCombined. | |
308 | * opts.c (set_fast_math_flags): Also set | |
309 | flag_excess_precision_cmdline. | |
310 | (fast_math_flags_set_p): Also check flag_excess_precision_cmdline. | |
311 | * doc/invoke.texi (-fexcess-precision): Drop text saying the | |
312 | option has no effect under -ffast-math, make it clear that | |
313 | -ffast-math will cause -fexcess-precision=fast by default even for | |
314 | standards compliant modes. | |
315 | (-ffast-math): Document that this sets -fexcess-precision=fast. | |
316 | ||
317 | 2016-12-20 Richard Biener <rguenther@suse.de> | |
318 | ||
319 | * passes.c (execute_one_pass): Handle going out of SSA w/o | |
320 | hitting pass_startwith. Handle skipping property providers. | |
321 | ||
322 | 2016-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
323 | ||
324 | PR target/78694 | |
325 | * config/arm/arm.c (dump_minipool): Copy mp->value before emitting it | |
326 | in the minipool to avoid invalid RTL sharing. | |
327 | ||
328 | 2016-12-19 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
329 | ||
330 | * config/rs6000/rs6000-protos.h (expand_strn_compare): Declare. | |
331 | * config/rs6000/rs6000.md (UNSPEC_CMPB): New unspec. | |
332 | (cmpb<mode>3): pattern for generating cmpb. | |
333 | (cmpstrnsi): pattern to expand strncmp (). | |
334 | * config/rs6000/rs6000.opt (mstring-compare-inline-limit): Add a new | |
335 | target option for controlling how much code inline expansion of | |
336 | strncmp() will be allowed to generate. | |
337 | * config/rs6000/rs6000.c (expand_strncmp_align_check): generate code | |
338 | for runtime page crossing check of strncmp () args. | |
339 | (expand_strn_compare): Function to do builtin expansion of strncmp (). | |
340 | ||
341 | 2016-12-19 David Malcolm <dmalcolm@redhat.com> | |
342 | ||
343 | * print-rtl-function.c (print_rtx_function): Update | |
344 | example in comment to reflect current format. | |
345 | ||
346 | 2016-12-19 Uros Bizjak <ubizjak@gmail.com> | |
347 | ||
348 | * config/i386/i386.md (*popcounthi2_1): New insn_and_split pattern. | |
349 | ||
350 | 2016-12-19 Sandra Loosemore <sandra@codesourcery.com> | |
351 | ||
352 | * doc/cpp.texi: Clean up anachronistic C99 references and remove | |
353 | discussion of very old GCC versions. | |
354 | (Differences from previous versions): Delete entire section. | |
355 | ||
356 | 2016-12-19 Will Schmidt <will_schmidt@vnet.ibm.com> | |
357 | ||
358 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for | |
359 | early expansion of vector multiply and subtract builtins. | |
360 | ||
361 | 2016-12-19 David Malcolm <dmalcolm@redhat.com> | |
362 | ||
363 | * print-rtl.c (rtx_writer::print_rtx_operand_code_r): For | |
364 | non-virtual pseudos in compact mode, wrap the regno in '<' and '>' | |
365 | rather than using a '%' prefix. | |
366 | * rtl-tests.c (selftest::test_dumping_regs): Update for above change. | |
367 | ||
368 | 2016-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
369 | ||
370 | PR target/78748 | |
371 | * config/s390/s390.md ("*andc_split_<mode>"): Allow memory destination | |
372 | only if it coincides with operand 2. | |
373 | ||
374 | 2016-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
375 | ||
376 | * combine.c (change_zero_ext): Skip generation of redundant AND. | |
377 | ||
378 | 2016-12-19 Krister Walfridsson <krister.walfridsson@gmail.com> | |
379 | ||
380 | * config/netbsd.h (LINK_EH_SPEC): Define. | |
381 | ||
382 | 2016-12-18 Eric Botcazou <ebotcazou@adacore.com> | |
383 | ||
384 | * lra-constraints.c (process_address): Add forward declaration. | |
385 | (simplify_operand_subreg): In the MEM case, if the adjusted memory | |
386 | reference is not sufficient aligned and the address was invalid, | |
387 | reload the address before reloading the original memory reference. | |
388 | Fix long lines and add a final return for the sake of clarity. | |
389 | ||
390 | 2016-12-17 Jakub Jelinek <jakub@redhat.com> | |
391 | ||
392 | PR sanitizer/78832 | |
393 | * sanopt.c (sanitize_asan_mark_unpoison): Remove next variable, use | |
394 | continue if gsi_next should be skipped. | |
395 | (sanitize_asan_mark_poison): Remove prev variable, use continue if | |
396 | gsi_prev should be skipped. When removing ASAN_MARK, do gsi_prev | |
397 | first and gsi_remove on a previously made copy of the iterator. | |
398 | ||
399 | 2016-12-17 Andrew Senkevich <andrew.senkevich@intel.com> | |
400 | ||
401 | * config/i386/avx512bwintrin.h: Add new k-mask intrinsics. | |
402 | * config/i386/avx512dqintrin.h: Ditto. | |
403 | * config/i386/avx512fintrin.h: Ditto. | |
404 | * config/i386/i386-builtin.def (__builtin_ia32_kaddqi, | |
405 | __builtin_ia32_kaddhi, __builtin_ia32_kaddsi, | |
406 | __builtin_ia32_kadddi): New. | |
407 | * config/i386/sse.md (kadd<mode>): New. | |
408 | ||
409 | 2016-12-17 Uros Bizjak <ubizjak@gmail.com> | |
410 | ||
411 | * config/i386/i386.md (*tzcnt<mode>_1): Merge *tzcnt<mode>_1_falsedep_1 | |
412 | and *tzcnt<mode>_1 to define_insn_and_split pattern. Adjust split | |
413 | condition to split after epilogue_completed. | |
414 | (ctz<mode>2): Remove expander. | |
415 | (ctz<mode>2): Merge *ctz<mode>2_falsedep_1 and *ctz<mode>2 to | |
416 | define_insn_and_split pattern. Adjust split condition to split | |
417 | after epilogue_completed. | |
418 | (clz<mode>2_lznct): Remove expander. | |
419 | (clz<mode>2_lzcnt): Merge *clz<mode>2_lzcnt_falsedep_1 and | |
420 | *clz<mode>2 to define_insn_and_split pattern. Adjust split | |
421 | condition to split after epilogue_completed. | |
422 | (<lt_zcnt>_<mode>): Remove expander. | |
423 | (<lt_zcnt>_<mode>): Merge *<lt_zcnt>_<mode>_falsedep_1 and | |
424 | *<lt_zcnt>_<mode> to define_insn_and_split pattern. Adjust split | |
425 | condition to split after epilogue_completed. | |
426 | (<lt_zcnt>_hi): New insn pattern. | |
427 | (popcount<mode>2): Remove expander. | |
428 | (popcount<mode>2): Merge *popcount<mode>2_falsedep_1 and | |
429 | *popcount<mode>2 to define_insn_and_split pattern. Adjust split | |
430 | condition to split after epilogue_completed. | |
431 | (popcounthi2): New insn pattern. | |
432 | ||
433 | 2016-12-16 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
434 | ||
435 | * config/rs6000/altivec.md (UNSPEC_CMPRB): New unspec value. | |
436 | (UNSPEC_CMPRB2): New unspec value. | |
437 | (UNSPEC_CMPEQB): New unspec value. | |
438 | (cmprb): New expansion. | |
439 | (*cmprb_internal): New insn. | |
440 | (*setb_internal): New insn. | |
441 | (cmprb2): New expansion. | |
442 | (*cmprb2_internal): New insn. | |
443 | (cmpeqb): New expansion. | |
444 | (*cmpeqb_internal): New insn. | |
445 | * config/rs6000/rs6000-builtin.def (BU_P9_2): New macro. | |
446 | (BU_P9_64BIT_2): Likewise. | |
447 | (BU_P9_OVERLOAD_2): Likewise. | |
448 | (CMPRB): Add byte-in-range built-in function. | |
449 | (CMBRB2): Add byte-in-either-range built-in function. | |
450 | (CMPEQB): Add byte-in-set built-in function. | |
451 | (CMPRB): Add overload support for byte-in-range function. | |
452 | (CMPRB2): Add overload support for byte-in-either-range function. | |
453 | (CMPEQB): Add overload support for byte-in-set built-in function. | |
454 | * config/rs6000/rs6000-c.c (P9_BUILTIN_CMPRB): Macro expansion to | |
455 | define argument types for new builtin. | |
456 | (P9_BUILTIN_CMPRB2): Likewise. | |
457 | (P9_BUILTIN_CMPEQB): Likewise. | |
458 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Rearrange | |
459 | the order of presentation for certain built-in functions | |
460 | (scalar_extract_exp, scalar_extract_sig, scalar_insert_exp) | |
461 | (scalar_cmp_exp_gt, scalar_cmp_exp_lt, scalar_cmp_exp_eq) | |
462 | (scalar_cmp_exp_unordered, scalar_test_data_class) | |
463 | (scalar_test_neg) to improve locality and flow. Document | |
464 | the new __builtin_scalar_byte_in_set, | |
465 | __builtin_scalar_byte_in_range, and | |
466 | __builtin_scalar_byte_in_either_range functions. | |
467 | ||
468 | 2016-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
469 | ||
470 | * config/aarch64/aarch64.md: New define_split above bswap<mode>2. | |
471 | ||
472 | 2016-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
473 | ||
474 | * config/aarch64/aarch64.md: New define_split above insv<mode>. | |
475 | ||
476 | 2016-12-16 Jakub Jelinek <jakub@redhat.com> | |
477 | ||
478 | PR c/78408 | |
479 | * tree-ssa-ccp.c: Include tree-dfa.h. | |
480 | (optimize_memcpy): New function. | |
481 | (pass_fold_builtins::execute): Use it. Remove useless conditional | |
482 | break after BUILT_IN_VA_*. | |
483 | ||
484 | 2016-12-16 Marek Polacek <polacek@redhat.com> | |
485 | ||
486 | PR tree-optimization/78819 | |
487 | * tree-vrp.c (find_switch_asserts): Return if the insertion limit is 0. | |
488 | Don't register an assertion if the default case shares a label with | |
489 | another case. | |
490 | ||
491 | 2016-12-16 Wilco Dijkstra <wdijkstr@arm.com> | |
492 | ||
493 | * config/arm/arm.md (subsi3_carryin): Add Thumb-2 RSC #0. | |
494 | (arm_negdi2) Rename to negdi2_insn, allow on Thumb-2. | |
495 | * config/arm/thumb2.md (thumb2_negdi2): Remove pattern. | |
496 | ||
497 | 2016-12-16 Wilco Dijkstra <wdijkstr@arm.com> | |
498 | ||
499 | * config/arm/arm.c (thumb_core_reg_alloc_order): Swap R12 and R14. | |
500 | ||
501 | 2016-12-16 Claudiu Zissulescu <claziss@synopsys.com> | |
502 | ||
503 | * config/arc/arc.md (call_prof): Remove. | |
504 | (call_value_prof): Likewise. | |
505 | (sibcall_prof): Likewise. | |
506 | (sibcall_value_prof): Likewise. | |
507 | ||
508 | 2016-12-16 Claudiu Zissulescu <claziss@synopsys.com> | |
509 | ||
510 | * config/arc/arc.h (LINK_SPEC): Tidy up. | |
511 | (ENDFILE_SPEC): Likewise. | |
512 | (LIB_SPEC): Likewise. | |
513 | (STARTFILE_SPEC): Include gcrt0 when profiling. | |
514 | (FUNCTION_PROFILER): Use __mcount. | |
515 | * config/arc/arc.opt (mucb-mcount): Remove. | |
516 | * doc/invoke.texi (ARC): Remove mucb-mcount doc. | |
517 | * arc/arc-protos.h (arc_profile_call): Remove. | |
518 | * config/arc/arc.c (write_profile_sections): Likewise. | |
519 | (arc_profile_call): Likewise. | |
520 | (unspec_prof_hash): Likewise. | |
521 | (unspec_prof_htab_eq): Likewise. | |
522 | (arc_legitimate_constant_p): Remove UNSPEC_PROF. | |
523 | (arc_reorg): Remove call to write_profile_sections. | |
524 | * config/arc/arc.md (call): Remove call to arc_profile_call. | |
525 | (call_value): Likewise. | |
526 | (sibcall): Likewise. | |
527 | (sibcall_value): Likewise. | |
528 | (define_constants): Remove UNSPEC_PROF. | |
529 | ||
530 | 2016-12-16 Claudiu Zissulescu <claziss@synopsys.com> | |
531 | ||
532 | * config/arc/arc.md (mulsidi_600): Change to insn_and_split, | |
533 | generate new mul64 insn for core multiplication work. | |
534 | (umulsidi_600): Likewise, but use mulu64 insn. | |
535 | (mul64): New pattern, content taken from old mulsidi_600 insn pattern. | |
536 | (mulu64): Likewise, but using umulsidi_600. | |
537 | (mulsidi3): Remove move to destination, this is now handled by | |
538 | mulsidi_600 insn_and_split. | |
539 | (umulsidi3): Likewise, but using umulsidi_600. | |
540 | ||
541 | 2016-12-16 Richard Biener <rguenther@suse.de> | |
542 | ||
543 | PR c++/71694 | |
544 | * langhooks-def.h (lhd_unit_size_without_reusable_padding): Declare. | |
545 | (LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING): Define. | |
546 | (LANG_HOOKS_FOR_TYPES_INITIALIZER): Adjust. | |
547 | * langhooks.h (struct lang_hooks_for_types): Add | |
548 | unit_size_without_reusable_padding. | |
549 | * langhooks.c (lhd_unit_size_without_reusable_padding): New. | |
550 | * stor-layout.c (finish_bitfield_representative): Use | |
551 | unit_size_without_reusable_padding langhook to decide on the | |
552 | last representatives size. | |
553 | ||
554 | 2016-12-16 Richard Biener <rguenther@suse.de> | |
555 | ||
556 | PR middle-end/71632 | |
557 | * expr.c (expand_cond_expr_using_cmove): Bail out early if | |
558 | we end up recursing via TER. | |
559 | ||
560 | 2016-12-15 Martin Sebor <msebor@redhat.com> | |
561 | ||
562 | PR bootstrap/78817 | |
563 | * vec.h (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Assert | |
564 | a pointer is non-null. | |
565 | ||
566 | 2016-12-15 Andrew Senkevich <andrew.senkevich@intel.com> | |
567 | ||
568 | * config/i386/avx512bwintrin.h: Add new k-mask intrinsics. | |
569 | * config/i386/avx512dqintrin.h: Ditto. | |
570 | * config/i386/avx512fintrin.h: Ditto. | |
571 | * config/i386/i386-builtin.def (__builtin_ia32_kmovb, | |
572 | __builtin_ia32_kmovd, __builtin_ia32_kmovq): New. | |
573 | (__builtin_ia32_kmov16): Rename to __builtin_ia32_kmovw. | |
574 | * config/i386/sse.md (kmov<mskmodesuffix>): New. | |
575 | ||
576 | 2016-12-15 Uros Bizjak <ubizjak@gmail.com> | |
577 | ||
578 | * config/i386/i386.md (ffs<mode>2): Generate CCCmode flags register | |
579 | for TARGET_BMI. | |
580 | (ffssi2_no_cmove): Ditto. | |
581 | (*tzcnt<mode>_1_falsedep_1): New insn_and_split pattern. | |
582 | (*tzcnt<mode>_1_falsedep): New insn pattern. | |
583 | ||
584 | (LT_ZCNT): New mode iterator. | |
585 | (lt_zcnt): New mode attribute. | |
586 | (lt_zcnt_type): New mode attribute. | |
587 | (<lt_zcnt>_<mode>): Macroize expander from bmi_tzcnt_<mode> and | |
588 | lzcnt_<mode> using LT_ZCNT mode iterator. | |
589 | (*<lt_zcnt>_<mode>_falsedep_1): Macroize insn from | |
590 | *bmi_tzcnt_<mode>_falsedep_1 and *lzcnt_<mode>_falsedep_1 | |
591 | using LT_ZCNT mode iterator. | |
592 | (*<lt_zcnt>_<mode>_falsedep): Macroize insn from | |
593 | *bmi_tzcnt_<mode>_falsedep and *lzcnt_<mode>_falsedep | |
594 | using LT_ZCNT mode iterator. | |
595 | (*<lt_zcnt>_<mode>): Macroize insn from *bmi_tzcnt_<mode> | |
596 | and *lzcnt_<mode> using LT_ZCNT mode iterator. | |
597 | * config/i386/i386-builtin.def (__builtin_ia32_tzcnt_u16) | |
598 | (__builtin_ia32_tzcnt_u32, __builtin_ia32_tzcnt_u64, __builtin_ctzs): | |
599 | Update for rename. | |
600 | ||
601 | 2016-12-15 Jakub Jelinek <jakub@redhat.com> | |
602 | ||
603 | * ipa-cp.c (class ipcp_bits_lattice): Formatting fixes. | |
604 | (print_ipcp_constant_value): Likewise. | |
605 | (ipcp_cloning_candidate_p): Likewise. | |
606 | (ipcp_bits_lattice::get_value_and_mask): Likewise. | |
607 | (ipcp_bits_lattice::meet_with_1): Likewise. | |
608 | (ipcp_bits_lattice::meet_with): Likewise. | |
609 | (initialize_node_lattices): Likewise. | |
610 | (ipcp_lattice::add_value): Likewise. | |
611 | (propagate_vals_accross_pass_through): Renamed to ... | |
612 | (propagate_vals_across_pass_through): ... this function. | |
613 | (propagate_vals_accross_ancestor): Renamed to ... | |
614 | (propagate_vals_across_ancestor): ... this. | |
615 | (propagate_scalar_accross_jump_function): Renamed to ... | |
616 | (propagate_scalar_across_jump_function): ... this. | |
617 | Adjust calls to above functions. | |
618 | (propagate_context_accross_jump_function): Renamed to ... | |
619 | (propagate_context_across_jump_function): ... this. | |
620 | (propagate_bits_accross_jump_function): Renamed to ... | |
621 | (propagate_bits_accross_jump_function): ... this. Formatting fixes. | |
622 | (propagate_vr_accross_jump_function): Renamed to ... | |
623 | (propagate_vr_across_jump_function): ... this. | |
624 | (merge_agg_lats_step): Formatting fixes. | |
625 | (propagate_constants_accross_call): Renamed to ... | |
626 | (propagate_constants_across_call): ... this. Adjust calls to above | |
627 | functions. | |
628 | (ipa_get_indirect_edge_target_1): Formatting fixes. | |
629 | (gather_context_independent_values): Likewise. | |
630 | (estimate_local_effects): Likewise. | |
631 | (add_all_node_vals_to_toposort): Likewise. | |
632 | (propagate_constants_topo): Adjust calls to above functions. | |
633 | (get_replacement_map): Formatting fixes. | |
634 | (dump_profile_updates): Likewise. | |
635 | (update_profiling_info): Likewise. | |
636 | (update_specialized_profile): Likewise. | |
637 | (create_specialized_node): Likewise. | |
638 | (find_more_contexts_for_caller_subset): Likewise. | |
639 | (decide_whether_version_node): Likewise. | |
640 | (identify_dead_nodes): Likewise. | |
641 | (ipcp_decision_stage): Likewise. | |
642 | (ipcp_store_bits_results): Likewise. | |
643 | (ipcp_store_vr_results): Likewise. | |
644 | (ipcp_driver): Likewise. | |
645 | ||
646 | 2016-12-15 David Malcolm <dmalcolm@redhat.com> | |
647 | ||
648 | PR preprocessor/78680 | |
649 | PR preprocessor/78811 | |
650 | * input.c (struct selftest::lexer_test): Add field | |
651 | m_implicitly_expect_EOF. | |
652 | (selftest::lexer_error_sink): New class. | |
653 | (selftest::lexer_error_sink::s_singleton): New global. | |
654 | (selftest::lexer_test::lexer_test): Initialize new field | |
655 | "m_implicitly_expect_EOF". | |
656 | (selftest::lexer_test::~lexer_test): Conditionalize the | |
657 | check for the EOF token on the new field. | |
658 | (selftest::test_lexer_string_locations_raw_string_unterminated): | |
659 | New function. | |
660 | (selftest::input_c_tests): Call the new test. | |
661 | ||
662 | 2016-12-15 Wilco Dijkstra <wdijkstr@arm.com> | |
663 | ||
664 | * config/arm/arm.h (TARGET_BACKTRACE): Use crtl->is_leaf. | |
665 | * config/arm/arm.c (arm_option_check_internal): Improve comment. | |
666 | (thumb_force_lr_save): Use crtl->is_leaf. | |
667 | (arm_get_frame_offsets): Remove comment. Use crtl->is_leaf. | |
668 | (thumb_far_jump_used_p): Remove comment. | |
669 | (arm_frame_pointer_required): Use crtl->is_leaf. | |
670 | ||
671 | 2016-12-15 Jakub Jelinek <jakub@redhat.com> | |
672 | ||
673 | * doc/extend.texi: Clean up @xref{...} uses. | |
674 | * doc/invoke.texi: Likewise. | |
675 | ||
676 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
677 | ||
678 | * arm-fpus.def: Add CNAME field to all FPU definitions. | |
679 | * genopt.sh: Use explicit enumeration tags for FPU entries. | |
680 | * arm-tables.opt: Regenerated. | |
681 | * arm.opt (mfpu): Provide initial value. | |
682 | * arm-opts.h (enum fpu_type): Build the enumeration from the list of | |
683 | available FPUs. Add 'auto' entry on the end. | |
684 | * arm.c (arm_configure_build_target): Only do explicit configuration | |
685 | of the FPU features if the selected FPU is not 'auto'. | |
686 | (arm_option_override): Adjust initialization of arm_fpu_index. | |
687 | Emit an error if we have a hard float ABI request, but the processor | |
688 | does not support floating-point. | |
689 | (arm_option_print): Handle -mfpu=auto. | |
690 | (arm_valid_target_attribute_rec): Don't permit fpu=auto in pragmas | |
691 | or function attributes. | |
692 | (arm_identify_fpu_from_isa): Handle effective soft-float when | |
693 | the FPU is automatically detected. | |
694 | * arm-cores.def (arm1136jf-s): Add feature ISA_FP_DBL. | |
695 | (arm1176jzf-s): Likewise. | |
696 | (mpcore): Likewise. | |
697 | (arm1156t2f-s): Likewise. | |
698 | ||
699 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
700 | ||
701 | * arm-fpus.def (ARM_FPU): Remove features field from all definitions. | |
702 | * arm.h (arm_fpu_feature_set): Delete typedef. | |
703 | (FPU_FL_NONE): Delete. | |
704 | (FPU_FL_NEON): Delete. | |
705 | (FPU_FL_FP16): Delete. | |
706 | (FPU_FL_CRYPTO): Delete. | |
707 | (FPU_FL_DBL): Delete. | |
708 | (FPU_FL_D32): Delete. | |
709 | (FPU_FL_VFPv2): Delete. | |
710 | (FPU_FL_VFPv3): Delete. | |
711 | (FPU_FL_VFPv4): Delete. | |
712 | (FPU_FL_VFPv5): Delete. | |
713 | (FPU_FL_AMRv8): Delete. | |
714 | (FPU_VFPv2): Delete. | |
715 | (FPU_VFPv3): Delete. | |
716 | (FPU_VFPv4): Delete. | |
717 | (FPU_VFPv5): Delete. | |
718 | (FPU_ARMv8): Delete. | |
719 | (FPU_DBL): Delete. | |
720 | (FPU_D32): Delete. | |
721 | (FPU_NEON): Delete. | |
722 | (FPU_CRYPTO): Delete. | |
723 | (FPU_FP16): Delete. | |
724 | (arm_fpu_desc): Delete features field. | |
725 | * arm.c (all_fpus): Don't initialize feature field. | |
726 | ||
727 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
728 | ||
729 | * arm.c (arm_can_inline_p): Use ISA features for determining | |
730 | inlinability. | |
731 | ||
732 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
733 | ||
734 | * arm-protos.h (arm_configure_build_target): Change second argument | |
735 | to cl_target_options. | |
736 | * arm.c (arm_configure_build_target): Likewise. | |
737 | (arm_option_restore): Update accordingly. | |
738 | (arm_option_override): Create the target_option_default_node before | |
739 | calling arm_configure_build_target. Use it in call of latter. | |
740 | Resynchronize after all other overrides have been calculated. | |
741 | (arm_valid_target_attribute_tree): Use the target options for | |
742 | reconfiguration. Resynchronize after performing override checks. | |
743 | * arm-c.c (arm_pragma_target_parse): Use target optiosn from cur_tree | |
744 | to reconfigure the build target. | |
745 | ||
746 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
747 | ||
748 | * arm.h (TARGET_VFPD32): Use arm_active_target. | |
749 | (TARGET_VFP3): Likewise. | |
750 | (TARGET_VFP5): Likewise. | |
751 | (TARGET_VFP_SINGLE): Likewise. | |
752 | (TARGET_VFP_DOUBLE): Likewise. | |
753 | (TARGET_NEON_FP16): Likewise. | |
754 | (TARGET_FP16): Likewise. | |
755 | (TARGET_FMA): Likewise. | |
756 | (TARGET_FPU_ARMV8): Likewise. | |
757 | (TARGET_CRYPTO): Likewise. | |
758 | (TARGET_NEON): Likewise. | |
759 | (TARGET_FPU_FEATURES): Delete. | |
760 | * arm.c (arm_option_check_internal): Check for iwmmxt conflict with | |
761 | Neon using arm_active_target. | |
762 | ||
763 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
764 | ||
765 | * arm.h (TARGET_FPU_NAME): Delete. | |
766 | * arm.c (arm_identify_fpu_from_isa): New function. | |
767 | (arm_declare_function_name): Use it to get the name for the FPU. | |
768 | ||
769 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
770 | ||
771 | * arm-protos.h: Include sbitmap.h | |
772 | (arm_configure_build_target): Make public. | |
773 | * arm.c (arm_configure_build_target): Now not static. | |
774 | (arm_valid_target_attribute_rec): Move internal option check to... | |
775 | (arm_valid_target_attribute_tree0: ... here. Also reconfingure the | |
776 | active target. | |
777 | (arm_override_options_after_change): Call arm_configure_build_target. | |
778 | (isa_all_fpubits): Renamed from isa_fpubits. | |
779 | (arm_option_restore): New function. | |
780 | (TARGET_OPTION_RESTORE): Register it. | |
781 | (arm_configure_build_target): Initialize the FPU capability bits in | |
782 | the isa. | |
783 | (arm_option_override): Move the code that forces the setting of the | |
784 | FPU option before the call to arm_configure_build_target. | |
785 | * arm.opt (march): Mark as Save. | |
786 | (mcpu, mtune): Likewise. | |
787 | * arm-c.c (arm_pragma_target_parse): Reconfigure the build target | |
788 | after pragmas change the target options. | |
789 | ||
790 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
791 | ||
792 | * arm-isa.h (isa_feature): Add bits for VFPv4, FPv5, fp16conv, | |
793 | fP_dbl, fp_d32 and fp_crypto. | |
794 | (ISA_ALL_FPU): Add all the new bits. | |
795 | (ISA_VFPv2, ISA_VFPv3, ISA_VFPv4, ISA_FPv5): New macros. | |
796 | (ISA_FP_ARMv8, ISA_FP_DBL, ISA_FP_D32, ISA_NEON, ISA_CRYPTO): Likewise. | |
797 | * arm-fpus.def: Add ISA features to all FPUs. | |
798 | * arm.h: (arm_fpu_desc): Add new field for ISA bits. | |
799 | * arm.c (all_fpus): Initialize it. | |
800 | * arm-tables.opt: Regenerated. | |
801 | ||
802 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
803 | ||
804 | * arm.h (FPU_FL_VFPv2) New feature bit. | |
805 | (FPU_FL_VFPv3, FPU_FL_VFPv4, FPU_FL_VFPv5, FPU_FL_ARMv8): Likewise. | |
806 | (FPU_VFPv2, FPU_VFPv3, FPU_VFPv4, FPU_VFPv5, FPU_ARMv8): New helper | |
807 | macros. | |
808 | (FPU_DBL, FPU_D32, FPU_NEON, FPU_CRYPTO, FPU_FP16): Likewise. | |
809 | (TARGET_FPU_REV): Delete. | |
810 | (TARGET_VFP3): Use feature bits. | |
811 | (TARGET_VFP5): Likewise. | |
812 | (TARGET_FMA): Likewise. | |
813 | (TARGET_FPU_ARMV8): Likewise. | |
814 | (struct arm_fpu_desc): Delete rev field. | |
815 | * arm-fpus.def: Delete REV entry, use new feature bits and macros. | |
816 | * arm.c (all_fpus): Delete rev field. | |
817 | ||
818 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
819 | ||
820 | * arm.h (vfp_reg_type): Delete. | |
821 | (TARGET_FPU_REGS): Delete. | |
822 | (arm_fpu_desc): Delete regs field. | |
823 | (FPU_FL_NONE, FPU_FL_NEON, FPU_FL_FP16, FPU_FL_CRYPTO): Use unsigned | |
824 | values. | |
825 | (FPU_FL_DBL, FPU_FL_D32): Define. | |
826 | (TARGET_VFPD32): Use feature test. | |
827 | (TARGET_VFP_SINGLE): Likewise. | |
828 | (TARGET_VFP_DOUBLE): Likewise. | |
829 | * arm-fpus.def: Update all entries for new feature bits. | |
830 | * arm.c (all_fpus): Update initializer macro. | |
831 | (arm_can_inline_p): Remove test on fpu regs. | |
832 | ||
833 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
834 | ||
835 | * arm.h (arm_fp_model): Delete. | |
836 | ||
837 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
838 | ||
839 | * arm-cores.def: Remove FLAGS field from all core definitions. | |
840 | * arm-arches.def: Likewise. | |
841 | * arm-opts.h (enum processor_type): Remove FLAGS parameter from | |
842 | ARM_CORES macro. | |
843 | (arm_arch_core_flags): Likewise, plus ARM_ARCH macro. | |
844 | * arm-protos.h (FL_*): Delete. | |
845 | (arm_feature_set): Delete. | |
846 | (ARM_FSET_*): Delete. | |
847 | * arm.c (struct processors): Delete flags field. | |
848 | (all_cores): Delete FLAGS parameter from macro, don't initialize flags. | |
849 | (all architectures): Likewise. | |
850 | ||
851 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
852 | ||
853 | * arm-opts.h (struct arm_arch_core_flag): Add new field ISA. | |
854 | Initialize it. | |
855 | (arm_arch_core_flag): Delete flags field. | |
856 | (arm_arch_core_flags): Don't initialize flags field. | |
857 | * common/config/arm/arm-common.c (check_isa_bits_for): New function. | |
858 | (arm_target_thumb_only): Use new isa bits arrays. | |
859 | ||
860 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
861 | ||
862 | * arm-protos.h (insn_flags): Delete declaration. | |
863 | (arm_arch7ve): Declare. | |
864 | * arm.c (insn_flags): Delete. | |
865 | (arm_arch7ve): New variable. | |
866 | (arm_selected_cpu): Delete. | |
867 | (arm_option_check_internal): Use new ISA bitmap. | |
868 | (arm_option_override_internal): Likewise. | |
869 | (arm_configure_build_target): Declare arm_selected_cpu locally. | |
870 | (arm_option_override): Use new ISA bitmap. Initialize arm_arch7ve. | |
871 | Rearrange variable intialization by general function. | |
872 | * arm.h (TARGET_HAVE_LPAE): Use arm_arch7ve. | |
873 | ||
874 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
875 | ||
876 | * arm-builtins.c: Include sbitmap.h. | |
877 | (def_mbuiltin): Change first parameter to a flag bit. Use it to test | |
878 | available features in the current target. | |
879 | (struct builtin_description): Change type of feature field. | |
880 | (IWMMXT_BUILTIN): Use the isa_features types. | |
881 | (IWMMXT2_BUILTIN): Likewise. | |
882 | (IWMMXT_BUILTIN2): Likewise. | |
883 | (IWMMXT2_BUILTIN2): Likewise. | |
884 | (CRC32_BUILTIN): Likewise. | |
885 | (CRYPTO_BUILTIN): Likewise. | |
886 | (iwmmx_builtin): Likewise. | |
887 | (iwmmx2_builtin): Likewise. | |
888 | (arm_iwmmxt_builtin): Check for specific feature bits. | |
889 | ||
890 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
891 | ||
892 | * arm-isa.h (enum isa_feature): Add isa_quirk_cm3_ldrd. | |
893 | (ISA_ALL_QUIRKS): New macro. | |
894 | * arm-cores.def (cortex-m3): Add isa_quirk_cm3_ldrd to isa feature list. | |
895 | * arm.c (isa_quirkbits): New feature-list bitmap. | |
896 | (arm_configure_build_target): Ignore quirk bits when comparing an | |
897 | architecture feature list with a CPU feature list. | |
898 | (arm_option_override): Initialize_isa_quirkbits. If the user has | |
899 | not specified -m[no-]fix-cortex-m3-ldrd, automatically enable the | |
900 | feature if isa_quirk_cm3_ldrd appears in the isa feature list. | |
901 | ||
902 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
903 | ||
904 | * arm.c (arm_option_override): Use arm_active_target as source of | |
905 | information for arm_base_arch and arm_arch_name. | |
906 | * (arm_file_start): Use arm_active_target for core name. | |
907 | ||
908 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
909 | ||
910 | * arm.c (arm_selected_tune): Delete static variable. | |
911 | (arm_selected_arch): Likewise. | |
912 | (arm_configure_build_target): Declare local versions of arm_selected | |
913 | target and arm_selected_arch. Initialize more fields in target | |
914 | data structure. | |
915 | (arm_option_override): Use arm_active_target instead of | |
916 | arm_selected_tune and arm_selected_arch. | |
917 | (asm_file_start): Use arm_active_target. | |
918 | ||
919 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
920 | ||
921 | * arm-protos.h (arm_build_target): New structure. | |
922 | (arm_active_target): Declare it. | |
923 | * arm.c (arm_active_target): New variable. | |
924 | (bitmap_popcount): New function. | |
925 | (feature_count): Delete. | |
926 | (arm_initialize_isa): New function. | |
927 | isa_fpubits): New variable. | |
928 | (arm_configure_build_target): New function. | |
929 | (arm_option_override): Initialize isa_fpubits and arm_active_target.isa. | |
930 | Use arm_configure_build_target. | |
931 | ||
932 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
933 | ||
934 | * arm-isa.h: New file. | |
935 | * arm-protos.h: Include it. | |
936 | * arm-arches.def: Add new ISA field to all entries. Drop bogus | |
937 | armv8.1-a+crc architecture. | |
938 | * arm-cores.def: Similarly. Group ARMv8 cores by profile. | |
939 | * arm-opts.h (enum processor_type): Adjust for new field. | |
940 | * arm.c (struct processors): New field 'isa_bits'. | |
941 | (all_cores, all_architectures): Initialize new field. | |
942 | * arm-tables.opt: Regenerated. | |
943 | * arm-tune.md: Regenerated. | |
944 | ||
945 | 2016-12-15 Richard Earnshaw <rearnsha@arm.com> | |
946 | ||
947 | * arm-arches.def (ARM_ARCH): Add extra field TUNE_FLAGS, move | |
948 | tuning properties from architectural FLAGS field. | |
949 | * arm-cores.def (ARM_CORE): Likewise. | |
950 | * arm-protos.h (TF_LDSCHED, TF_WBUF, TF_CO_PROC): New macros. | |
951 | (TF_SMALLMUL, TF_STRONG, TF_SCALE, TF_NOMODE32): New macros. | |
952 | (FL_LDSCHED, FL_STRONG, FL_WBUF, FL_SMALLMUL): Delete. | |
953 | (FL_TUNE): Remove deleted elements. | |
954 | (tune_flags): Convert type to unsigned int. | |
955 | * arm.c (struct processors): Add new field tune_flags. | |
956 | (all_cores, all_arches): Initialize it. | |
957 | (arm_option_override): Adapt uses of tune_flags. Use tune_flags | |
958 | for deciding when we should have slow multiply operations. | |
959 | ||
960 | 2016-12-14 Martin Sebor <msebor@redhat.com> | |
961 | ||
962 | PR middle-end/78519 | |
963 | * gimple-ssa-sprintf.c (format_string): Handle null pointers. | |
964 | (format_directive): Diagnose null pointer arguments. | |
965 | (pass_sprintf_length::handle_gimple_call): Diagnose null destination | |
966 | pointers. Correct location of null format string in diagnostics. | |
967 | ||
968 | 2016-12-14 David Malcolm <dmalcolm@redhat.com> | |
969 | ||
970 | * Makefile.in (SELFTEST_FLAGS): Add path argument to -fself-test. | |
971 | (s-selftest): Add dependency on the selftests data directory. | |
972 | * common.opt (fself-test): Rename to... | |
973 | (fself-test=): ...this, documenting the meaning of the argument. | |
974 | * selftest-run-tests.c (along): Likewise. | |
975 | * selftest-run-tests.c: Include "options.h". | |
976 | (selftest::run_tests): Initialize selftest::path_to_selftest_files | |
977 | from flag_self_test. | |
978 | * selftest.c (selftest::path_to_selftest_files): New global. | |
979 | (selftest::locate_file): New function. | |
980 | (selftest::test_locate_file): New function. | |
981 | (selftest_c_tests): Likewise. | |
982 | (selftest::selftest_c_tests): Call test_locate_file. | |
983 | * selftest.h (selftest::locate_file): New decl. | |
984 | (selftest::path_to_selftest_files): New decl. | |
985 | ||
986 | 2016-12-14 Andrew Pinski <apinski@cavium.com> | |
987 | ||
988 | * config/aarch64/aarch64-cores.def: Add -1 as the variant to all | |
989 | of the cores. | |
990 | (thunderx): Update to include LSE by default. | |
991 | (thunderxt88p1): New core. | |
992 | (thunderxt88): New core. | |
993 | (thunderxt81): New core. | |
994 | (thunderxt83): New core. | |
995 | * config/aarch64/driver-aarch64.c (struct aarch64_core_data): | |
996 | Add variant field. | |
997 | (ALL_VARIANTS): New define. | |
998 | (AARCH64_CORE): Support VARIANT operand. | |
999 | (cpu_data): Likewise. | |
1000 | (host_detect_local_cpu): Parse variant field of /proc/cpuinfo. | |
1001 | Combine the arch and single core case and support variant searching. | |
1002 | * common/config/aarch64/aarch64-common.c (AARCH64_CORE): | |
1003 | Add VARIANT operand. | |
1004 | * config/aarch64/aarch64-opts.h (AARCH64_CORE): Likewise. | |
1005 | * config/aarch64/aarch64.c (AARCH64_CORE): Likewise. | |
1006 | * config/aarch64/aarch64.h (AARCH64_CORE): Likewise. | |
1007 | * config/aarch64/aarch64-tune.md: Regenerate. | |
1008 | * doc/invoke.texi (AARCH64/mtune): Document thunderxt88, | |
1009 | thunderxt88p1, thunderxt81, thunderxt83 as available options. | |
1010 | ||
1011 | 2016-12-14 Martin Jambor <mjambor@suse.cz> | |
1012 | ||
1013 | * omp-offload.c: Fix coding style. | |
1014 | * omp-expand.c: Likewise. | |
1015 | * omp-general.c: Likewise. | |
1016 | * omp-grid.c: Likewise. | |
1017 | * omp-low.c: Fix coding style of parts touched by the | |
1018 | previous splitting patch. | |
1019 | ||
1020 | 2016-12-14 Martin Jambor <mjambor@suse.cz> | |
1021 | ||
1022 | * omp-general.h: New file. | |
1023 | * omp-general.c: New file. | |
1024 | * omp-expand.h: Likewise. | |
1025 | * omp-expand.c: Likewise. | |
1026 | * omp-offload.h: Likewise. | |
1027 | * omp-offload.c: Likewise. | |
1028 | * omp-grid.c: Likewise. | |
1029 | * omp-grid.c: Likewise. | |
1030 | * omp-low.h: Include omp-general.h and omp-grid.h. Removed includes | |
1031 | of params.h, symbol-summary.h, lto-section-names.h, cilk.h, tree-eh.h, | |
1032 | ipa-prop.h, tree-cfgcleanup.h, cfgloop.h, except.h, expr.h, stmt.h, | |
1033 | varasm.h, calls.h, explow.h, dojump.h, flags.h, tree-into-ssa.h, | |
1034 | tree-cfg.h, cfganal.h, alias.h, emit-rtl.h, optabs.h, expmed.h, | |
1035 | alloc-pool.h, cfghooks.h, rtl.h and memmodel.h. | |
1036 | (omp_find_combined_for): Declare. | |
1037 | (find_omp_clause): Renamed to omp_find_clause and moved to | |
1038 | omp-general.h. | |
1039 | (free_omp_regions): Renamed to omp_free_regions and moved to | |
1040 | omp-expand.h. | |
1041 | (replace_oacc_fn_attrib): Renamed to oacc_replace_fn_attrib and moved | |
1042 | to omp-general.h. | |
1043 | (set_oacc_fn_attrib): Renamed to oacc_set_fn_attrib and moved to | |
1044 | omp-general.h. | |
1045 | (build_oacc_routine_dims): Renamed to oacc_build_routine_dims and | |
1046 | moved to omp-general.h. | |
1047 | (get_oacc_fn_attrib): Renamed to oacc_get_fn_attrib and moved to | |
1048 | omp-general.h. | |
1049 | (oacc_fn_attrib_kernels_p): Moved to omp-general.h. | |
1050 | (get_oacc_fn_dim_size): Renamed to oacc_get_fn_dim_size and moved to | |
1051 | omp-general.c. | |
1052 | (omp_expand_local): Moved to omp-expand.h. | |
1053 | (make_gimple_omp_edges): Renamed to omp_make_gimple_edges and moved to | |
1054 | omp-expand.h. | |
1055 | (omp_finish_file): Moved to omp-offload.h. | |
1056 | (default_goacc_validate_dims): Renamed to | |
1057 | oacc_default_goacc_validate_dims and moved to omp-offload.h. | |
1058 | (offload_funcs, offload_vars): Moved to omp-offload.h. | |
1059 | * omp-low.c: Include omp-general.h, omp-offload.h and omp-grid.h. | |
1060 | (omp_region): Moved to omp-expand.c. | |
1061 | (omp_for_data_loop): Moved to omp-general.h. | |
1062 | (omp_for_data): Likewise. | |
1063 | (oacc_loop): Moved to omp-offload.c. | |
1064 | (oacc_loop_flags): Moved to omp-general.h. | |
1065 | (offload_funcs, offload_vars): Moved to omp-offload.c. | |
1066 | (root_omp_region): Moved to omp-expand.c. | |
1067 | (omp_any_child_fn_dumped): Likewise. | |
1068 | (find_omp_clause): Renamed to omp_find_clause and moved to | |
1069 | omp-general.c. | |
1070 | (is_combined_parallel): Moved to omp-expand.c. | |
1071 | (is_reference): Renamed to omp_is_reference and and moved to | |
1072 | omp-general.c. | |
1073 | (adjust_for_condition): Renamed to omp_adjust_for_condition and moved | |
1074 | to omp-general.c. | |
1075 | (get_omp_for_step_from_incr): Renamed to omp_get_for_step_from_incr | |
1076 | and moved to omp-general.c. | |
1077 | (extract_omp_for_data): Renamed to omp_extract_for_data and moved to | |
1078 | omp-general.c. | |
1079 | (workshare_safe_to_combine_p): Moved to omp-expand.c. | |
1080 | (omp_adjust_chunk_size): Likewise. | |
1081 | (get_ws_args_for): Likewise. | |
1082 | (get_base_type): Removed. | |
1083 | (dump_omp_region): Moved to omp-expand.c. | |
1084 | (debug_omp_region): Likewise. | |
1085 | (debug_all_omp_regions): Likewise. | |
1086 | (new_omp_region): Likewise. | |
1087 | (free_omp_region_1): Likewise. | |
1088 | (free_omp_regions): Renamed to omp_free_regions and moved to | |
1089 | omp-expand.c. | |
1090 | (find_combined_for): Renamed to omp_find_combined_for, made global. | |
1091 | (build_omp_barrier): Renamed to omp_build_barrier and moved to | |
1092 | omp-general.c. | |
1093 | (omp_max_vf): Moved to omp-general.c. | |
1094 | (omp_max_simt_vf): Likewise. | |
1095 | (gimple_build_cond_empty): Moved to omp-expand.c. | |
1096 | (parallel_needs_hsa_kernel_p): Likewise. | |
1097 | (expand_omp_build_assign): Moved declaration to omp-expand.c. | |
1098 | (expand_parallel_call): Moved to omp-expand.c. | |
1099 | (expand_cilk_for_call): Likewise. | |
1100 | (expand_task_call): Likewise. | |
1101 | (vec2chain): Likewise. | |
1102 | (remove_exit_barrier): Likewise. | |
1103 | (remove_exit_barriers): Likewise. | |
1104 | (optimize_omp_library_calls): Likewise. | |
1105 | (expand_omp_regimplify_p): Likewise. | |
1106 | (expand_omp_build_assign): Likewise. | |
1107 | (expand_omp_taskreg): Likewise. | |
1108 | (oacc_collapse): Likewise. | |
1109 | (expand_oacc_collapse_init): Likewise. | |
1110 | (expand_oacc_collapse_vars): Likewise. | |
1111 | (expand_omp_for_init_counts): Likewise. | |
1112 | (expand_omp_for_init_vars): Likewise. | |
1113 | (extract_omp_for_update_vars): Likewise. | |
1114 | (expand_omp_ordered_source): Likewise. | |
1115 | (expand_omp_ordered_sink): Likewise. | |
1116 | (expand_omp_ordered_source_sink): Likewise. | |
1117 | (expand_omp_for_ordered_loops): Likewise. | |
1118 | (expand_omp_for_generic): Likewise. | |
1119 | (expand_omp_for_static_nochunk): Likewise. | |
1120 | (find_phi_with_arg_on_edge): Likewise. | |
1121 | (expand_omp_for_static_chunk): Likewise. | |
1122 | (expand_cilk_for): Likewise. | |
1123 | (expand_omp_simd): Likewise. | |
1124 | (expand_omp_taskloop_for_outer): Likewise. | |
1125 | (expand_omp_taskloop_for_inner): Likewise. | |
1126 | (expand_oacc_for): Likewise. | |
1127 | (expand_omp_for): Likewise. | |
1128 | (expand_omp_sections): Likewise. | |
1129 | (expand_omp_single): Likewise. | |
1130 | (expand_omp_synch): Likewise. | |
1131 | (expand_omp_atomic_load): Likewise. | |
1132 | (expand_omp_atomic_store): Likewise. | |
1133 | (expand_omp_atomic_fetch_op): Likewise. | |
1134 | (expand_omp_atomic_pipeline): Likewise. | |
1135 | (expand_omp_atomic_mutex): Likewise. | |
1136 | (expand_omp_atomic): Likewise. | |
1137 | (oacc_launch_pack): and moved to omp-general.c, made public. | |
1138 | (OACC_FN_ATTRIB): Likewise. | |
1139 | (replace_oacc_fn_attrib): Renamed to oacc_replace_fn_attrib and moved | |
1140 | to omp-general.c. | |
1141 | (set_oacc_fn_attrib): Renamed to oacc_set_fn_attrib and moved to | |
1142 | omp-general.c. | |
1143 | (build_oacc_routine_dims): Renamed to oacc_build_routine_dims and | |
1144 | moved to omp-general.c. | |
1145 | (get_oacc_fn_attrib): Renamed to oacc_get_fn_attrib and moved to | |
1146 | omp-general.c. | |
1147 | (oacc_fn_attrib_kernels_p): Moved to omp-general.c. | |
1148 | (oacc_fn_attrib_level): Moved to omp-offload.c. | |
1149 | (get_oacc_fn_dim_size): Renamed to oacc_get_fn_dim_size and moved to | |
1150 | omp-general.c. | |
1151 | (get_oacc_ifn_dim_arg): Renamed to oacc_get_ifn_dim_arg and moved to | |
1152 | omp-general.c. | |
1153 | (mark_loops_in_oacc_kernels_region): Moved to omp-expand.c. | |
1154 | (grid_launch_attributes_trees): Likewise. | |
1155 | (grid_attr_trees): Likewise. | |
1156 | (grid_create_kernel_launch_attr_types): Likewise. | |
1157 | (grid_insert_store_range_dim): Likewise. | |
1158 | (grid_get_kernel_launch_attributes): Likewise. | |
1159 | (get_target_argument_identifier_1): Likewise. | |
1160 | (get_target_argument_identifier): Likewise. | |
1161 | (get_target_argument_value): Likewise. | |
1162 | (push_target_argument_according_to_value): Likewise. | |
1163 | (get_target_arguments): Likewise. | |
1164 | (expand_omp_target): Likewise. | |
1165 | (grid_expand_omp_for_loop): Moved to omp-grid.c. | |
1166 | (grid_arg_decl_map): Likewise. | |
1167 | (grid_remap_kernel_arg_accesses): Likewise. | |
1168 | (grid_expand_target_grid_body): Likewise. | |
1169 | (expand_omp): Renamed to omp_expand and moved to omp-expand.c. | |
1170 | (build_omp_regions_1): Moved to omp-expand.c. | |
1171 | (build_omp_regions_root): Likewise. | |
1172 | (omp_expand_local): Likewise. | |
1173 | (build_omp_regions): Likewise. | |
1174 | (execute_expand_omp): Likewise. | |
1175 | (pass_data_expand_omp): Likewise. | |
1176 | (pass_expand_omp): Likewise. | |
1177 | (make_pass_expand_omp): Likewise. | |
1178 | (pass_data_expand_omp_ssa): Likewise. | |
1179 | (pass_expand_omp_ssa): Likewise. | |
1180 | (make_pass_expand_omp_ssa): Likewise. | |
1181 | (grid_lastprivate_predicate): Renamed to | |
1182 | omp_grid_lastprivate_predicate and moved to omp-grid.c, made public. | |
1183 | (grid_prop): Moved to omp-grid.c. | |
1184 | (GRID_MISSED_MSG_PREFIX): Likewise. | |
1185 | (grid_safe_assignment_p): Likewise. | |
1186 | (grid_seq_only_contains_local_assignments): Likewise. | |
1187 | (grid_find_single_omp_among_assignments_1): Likewise. | |
1188 | (grid_find_single_omp_among_assignments): Likewise. | |
1189 | (grid_find_ungridifiable_statement): Likewise. | |
1190 | (grid_parallel_clauses_gridifiable): Likewise. | |
1191 | (grid_inner_loop_gridifiable_p): Likewise. | |
1192 | (grid_dist_follows_simple_pattern): Likewise. | |
1193 | (grid_gfor_follows_tiling_pattern): Likewise. | |
1194 | (grid_call_permissible_in_distribute_p): Likewise. | |
1195 | (grid_handle_call_in_distribute): Likewise. | |
1196 | (grid_dist_follows_tiling_pattern): Likewise. | |
1197 | (grid_target_follows_gridifiable_pattern): Likewise. | |
1198 | (grid_remap_prebody_decls): Likewise. | |
1199 | (grid_var_segment): Likewise. | |
1200 | (grid_mark_variable_segment): Likewise. | |
1201 | (grid_copy_leading_local_assignments): Likewise. | |
1202 | (grid_process_grid_body): Likewise. | |
1203 | (grid_eliminate_combined_simd_part): Likewise. | |
1204 | (grid_mark_tiling_loops): Likewise. | |
1205 | (grid_mark_tiling_parallels_and_loops): Likewise. | |
1206 | (grid_process_kernel_body_copy): Likewise. | |
1207 | (grid_attempt_target_gridification): Likewise. | |
1208 | (grid_gridify_all_targets_stmt): Likewise. | |
1209 | (grid_gridify_all_targets): Renamed to omp_grid_gridify_all_targets | |
1210 | and moved to omp-grid.c, made public. | |
1211 | (make_gimple_omp_edges): Renamed to omp_make_gimple_edges and moved to | |
1212 | omp-expand.c. | |
1213 | (add_decls_addresses_to_decl_constructor): Moved to omp-offload.c. | |
1214 | (omp_finish_file): Likewise. | |
1215 | (oacc_thread_numbers): Likewise. | |
1216 | (oacc_xform_loop): Likewise. | |
1217 | (oacc_default_dims, oacc_min_dims): Likewise. | |
1218 | (oacc_parse_default_dims): Likewise. | |
1219 | (oacc_validate_dims): Likewise. | |
1220 | (new_oacc_loop_raw): Likewise. | |
1221 | (new_oacc_loop_outer): Likewise. | |
1222 | (new_oacc_loop): Likewise. | |
1223 | (new_oacc_loop_routine): Likewise. | |
1224 | (finish_oacc_loop): Likewise. | |
1225 | (free_oacc_loop): Likewise. | |
1226 | (dump_oacc_loop_part): Likewise. | |
1227 | (dump_oacc_loop): Likewise. | |
1228 | (debug_oacc_loop): Likewise. | |
1229 | (oacc_loop_discover_walk): Likewise. | |
1230 | (oacc_loop_sibling_nreverse): Likewise. | |
1231 | (oacc_loop_discovery): Likewise. | |
1232 | (oacc_loop_xform_head_tail): Likewise. | |
1233 | (oacc_loop_xform_loop): Likewise. | |
1234 | (oacc_loop_process): Likewise. | |
1235 | (oacc_loop_fixed_partitions): Likewise. | |
1236 | (oacc_loop_auto_partitions): Likewise. | |
1237 | (oacc_loop_partition): Likewise. | |
1238 | (default_goacc_fork_join): Likewise. | |
1239 | (default_goacc_reduction): Likewise. | |
1240 | (execute_oacc_device_lower): Likewise. | |
1241 | (default_goacc_validate_dims): Likewise. | |
1242 | (default_goacc_dim_limit): Likewise. | |
1243 | (pass_data_oacc_device_lower): Likewise. | |
1244 | (pass_oacc_device_lower): Likewise. | |
1245 | (make_pass_oacc_device_lower): Likewise. | |
1246 | (execute_omp_device_lower): Likewise. | |
1247 | (pass_data_omp_device_lower): Likewise. | |
1248 | (pass_omp_device_lower): Likewise. | |
1249 | (make_pass_omp_device_lower): Likewise. | |
1250 | (pass_data_omp_target_link): Likewise. | |
1251 | (pass_omp_target_link): Likewise. | |
1252 | (find_link_var_op): Likewise. | |
1253 | (pass_omp_target_link::execute): Likewise. | |
1254 | (make_pass_omp_target_link): Likewise. | |
1255 | * Makefile.in (OBJS): Added omp-offload.o, omp-expand.o, omp-general.o | |
1256 | and omp-grid.o. | |
1257 | (GTFILES): Added omp-offload.h, omp-offload.c and omp-expand.c, removed | |
1258 | omp-low.h. | |
1259 | * gimple-fold.c: Include omp-general.h instead of omp-low.h. | |
1260 | (fold_internal_goacc_dim): Adjusted calls to | |
1261 | get_oacc_ifn_dim_arg and get_oacc_fn_dim_size to use their new names. | |
1262 | * gimplify.c: Include omp-low.h. | |
1263 | (omp_notice_variable): Adjust the call to get_oacc_fn_attrib to use | |
1264 | its new name. | |
1265 | (gimplify_omp_task): Adjusted calls to find_omp_clause to use its new | |
1266 | name. | |
1267 | (gimplify_omp_for): Likewise. | |
1268 | * lto-cgraph.c: Include omp-offload.h instead of omp-low.h. | |
1269 | * toplev.c: Include omp-offload.h instead of omp-low.h. | |
1270 | * tree-cfg.c: Include omp-general.h instead of omp-low.h. Also | |
1271 | include omp-expand.h. | |
1272 | (make_edges_bb): Adjusted the call to make_gimple_omp_edges to use its | |
1273 | new name. | |
1274 | (make_edges): Adjust the call to free_omp_regions to use its new name. | |
1275 | * tree-parloops.c: Include omp-general.h. | |
1276 | (create_parallel_loop): Adjusted the call to set_oacc_fn_attrib to use | |
1277 | its new name. | |
1278 | (parallelize_loops): Adjusted the call to get_oacc_fn_attrib to use | |
1279 | its new name. | |
1280 | * tree-ssa-loop.c: Include omp-general.h instead of omp-low.h. | |
1281 | (gate_oacc_kernels): Adjusted the call to get_oacc_fn_attrib to use | |
1282 | its new name. | |
1283 | * tree-vrp.c: Include omp-general.h instead of omp-low.h. | |
1284 | (extract_range_basic): Adjusted calls to get_oacc_ifn_dim_arg and | |
1285 | get_oacc_fn_dim_size to use their new names. | |
1286 | * varpool.c: Include omp-offload.h instead of omp-low.h. | |
1287 | * gengtype.c (open_base_files): Replace omp-low.h with omp-offload.h in | |
1288 | ifiles. | |
1289 | * config/nvptx/nvptx.c: Include omp-general.c. | |
1290 | (nvptx_expand_call): Adjusted the call to get_oacc_fn_attrib to use | |
1291 | its new name. | |
1292 | (nvptx_reorg): Likewise. | |
1293 | (nvptx_record_offload_symbol): Likewise. | |
1294 | ||
1295 | 2016-12-14 Martin Sebor <msebor@redhat.com> | |
1296 | ||
1297 | PR middle-end/78786 | |
1298 | * gimple-ssa-sprintf.c (target_dir_max): New macro. | |
1299 | (get_mpfr_format_length): New function. | |
1300 | (format_integer): Use HOST_WIDE_INT instead of int. | |
1301 | (format_floating_max): Same. | |
1302 | (format_floating): Call get_mpfr_format_length. | |
1303 | (format_directive): Use target_dir_max. | |
1304 | ||
1305 | 2016-12-14 Jakub Jelinek <jakub@redhat.com> | |
1306 | ||
1307 | PR target/78791 | |
1308 | * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_STV_TEMP. | |
1309 | * config/i386/i386.c (dimode_scalar_chain::make_vector_copies, | |
1310 | dimode_scalar_chain::convert_reg): Use SLOT_STV_TEMP instead of | |
1311 | SLOT_TEMP. | |
1312 | ||
1313 | 2016-12-14 Uros Bizjak <ubizjak@gmail.com> | |
1314 | ||
1315 | PR target/59874 | |
1316 | * config/i386/i386-builtin.def: Add __builtin_clzs and __builtin_ctzs. | |
1317 | (ix86_fold_builtin): Handle IX86_BUILTIN_CTZS and IX86_BUILTIN_CLZS. | |
1318 | * config/i386/i386.md (*ctzhi2): New insn_and_split pattern. | |
1319 | (*clzhi2): Ditto. | |
1320 | ||
1321 | 2016-12-14 Jakub Jelinek <jakub@redhat.com> | |
1322 | ||
1323 | PR debug/77844 | |
1324 | * valtrack.c: Include rtl-iter.h. | |
1325 | (struct rtx_subst_pair): Add insn field. | |
1326 | (propagate_for_debug_subst): If pair->to contains at least 2 | |
1327 | regs, create a DEBUG_INSN with a debug temp before pair->insn | |
1328 | and replace from with the debug temp instead of pair->to. | |
1329 | (propagate_for_debug): Initialize p.insn. | |
1330 | * combine.c (insn_uid_check): New inline function. | |
1331 | (INSN_COST, LOG_LINKS): Use it instead of INSN_UID. | |
1332 | (find_single_use, combine_instructions, | |
1333 | cant_combine_insn_p, try_combine): Use NONDEBUG_INSN_P instead of | |
1334 | INSN_P. | |
1335 | ||
1336 | 2016-12-14 Martin Sebor <msebor@redhat.com> | |
1337 | ||
1338 | PR c/17308 | |
1339 | * builtin-attrs.def (ATTR_NONNULL_1_1, ATTR_NONNULL_1_2): Defined. | |
1340 | (ATTR_NONNULL_1_3, ATTR_NONNULL_1_4, ATTR_NONNULL_1_5): Same. | |
1341 | (ATTR_NOTHROW_NONNULL_1_1, ATTR_NOTHROW_NONNULL_1_2): Same. | |
1342 | (ATTR_NOTHROW_NONNULL_1_3, ATTR_NOTHROW_NONNULL_1_4): Same. | |
1343 | (ATTR_NOTHROW_NONNULL_1_5): Same. | |
1344 | (ATTR_NONNULL_1_FORMAT_PRINTF_1_2): Same. | |
1345 | (ATTR_NONNULL_1_FORMAT_PRINTF_2_0): Same. | |
1346 | (ATTR_NONNULL_1_FORMAT_PRINTF_2_3): Same. | |
1347 | (ATTR_NONNULL_1_FORMAT_PRINTF_3_0): Same. | |
1348 | (ATTR_NONNULL_1_FORMAT_PRINTF_3_4): Same. | |
1349 | (ATTR_NONNULL_1_FORMAT_PRINTF_4_0): Same. | |
1350 | (ATTR_NONNULL_1_FORMAT_PRINTF_4_5): Same. | |
1351 | * builtins.c (validate_arg): Add argument. Treat null pointers | |
1352 | passed to nonnull arguments as invalid. | |
1353 | (validate_arglist): Same. | |
1354 | * builtins.def (fprintf, fprintf_unlocked): Add nonnull attribute. | |
1355 | (printf, printf_unlocked, sprintf. vfprintf, vsprintf): Same. | |
1356 | (__sprintf_chk, __vsprintf_chk, __fprintf_chk, __vfprintf_chk): Same. | |
1357 | * calls.c (get_nonnull_ags, maybe_warn_null_arg): New functions. | |
1358 | (initialize_argument_information): Diagnose null pointers passed to | |
1359 | arguments declared nonnull. | |
1360 | * calls.h (get_nonnull_args): Declared. | |
1361 | ||
1362 | 2016-12-14 Michael Meissner <meissner@linux.vnet.ibm.com> | |
1363 | ||
1364 | * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): On ISA | |
1365 | 3.0/power9, add support to use the VEXTU{B,H,W}{L,R}X extract | |
1366 | instructions. | |
1367 | * config/rs6000/vsx.md (VSr2): Add IEEE 128-bit floating point | |
1368 | type constraint registers. | |
1369 | (VSr3): Likewise. | |
1370 | (FL_CONV): New mode iterator for binary floating types that have a | |
1371 | direct conversion from 64-bit integer to floating point. | |
1372 | (vsx_extract_<mode>_p9): Add support for the ISA 3.0/power9 | |
1373 | VEXTU{B,H,W}{L,R}X extract instructions. | |
1374 | (vsx_extract_<mode>_p9 splitter): Add splitter to load up the | |
1375 | extract byte position into the GPR if we are using the | |
1376 | VEXTU{B,H,W}{L,R}X extract instructions. | |
1377 | (vsx_extract_<mode>_di_p9): Support extracts to GPRs. | |
1378 | (vsx_extract_<mode>_store_p9): Support extracting to GPRs so that | |
1379 | we can use reg+offset address instructions. | |
1380 | (vsx_extract_<mode>_var): Support extracts to GPRs. | |
1381 | (vsx_extract_<VSX_EXTRACT_I:mode>_<SDI:mode>_var): New combiner | |
1382 | insn to combine vector extracts with zero_extend. | |
1383 | (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Optimize | |
1384 | extracting a small integer vector element and converting it to a | |
1385 | floating point type. | |
1386 | (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise. | |
1387 | (UNSPEC_XXEXTRACTUW): New unspec. | |
1388 | (UNSPEC_XXINSERTW): Likewise. | |
1389 | (vextract4b): Add support for the vec_vextract4b built-in | |
1390 | function. | |
1391 | (vextract4b_internal): Likewise. | |
1392 | (vinsert4b): Add support for the vec_insert4b built-in function. | |
1393 | Include both a version that inserts element 1 from a V4SI object | |
1394 | and one that inserts a DI object. | |
1395 | (vinsert4b_internal): Likewise. | |
1396 | (vinsert4b_di): Likewise. | |
1397 | (vinsert4b_di_internal): Likewise. | |
1398 | * config/rs6000/predicates.md (const_0_to_11_operand): New | |
1399 | predicate, match 0..11. | |
1400 | * config/rs6000/rs6000-builtin.def (BU_P9V_VSX_3): Set built-in | |
1401 | type to ternary, not binary. | |
1402 | (BU_P9V_64BIT_VSX_3): Likewise. | |
1403 | (P9V_BUILTIN_VEXTRACT4B): Add support for vec_vinsert4b and | |
1404 | vec_extract4b non-overloaded built-in functions. | |
1405 | (P9V_BUILTIN_VINSERT4B): Likewise. | |
1406 | (P9V_BUILTIN_VINSERT4B_DI): Likewise. | |
1407 | (P9V_BUILTIN_VEC_VEXTULX): Move to section that adds 2 operand ISA | |
1408 | 3.0 built-in functions. | |
1409 | (P9V_BUILTIN_VEC_VEXTURX): Likewise. | |
1410 | (P9V_BUILTIN_VEC_VEXTRACT4B): Add support for overloaded | |
1411 | vec_insert4b and vec_extract4 built-in functions. | |
1412 | (P9V_BUILTIN_VEC_VINSERT4B): Likewise. | |
1413 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
1414 | overloaded support for vec_vinsert4b and vec_extract4b. | |
1415 | * config/rs6000/rs6000.c (altivec_expand_builtin): Add checks for | |
1416 | the vec_insert4b and vec_extract4b byte number being a constant in | |
1417 | the range 0..11. | |
1418 | * config/rs6000/altivec.h (vec_vinsert4b): Support vec_vinsert4b | |
1419 | and vec_extract4b built-in functions. | |
1420 | * doc/extend.doc (PowerPC VSX built-in functions): Document | |
1421 | vec_insert4b and vec_extract4b. | |
1422 | ||
1423 | 2016-12-14 Martin Liska <mliska@suse.cz> | |
1424 | ||
1425 | * gimple-pretty-print.c (dump_probability): New function. | |
1426 | (dump_edge_probability): Use the function. | |
1427 | (dump_gimple_label): Likewise. | |
1428 | (dump_gimple_bb_header): Likewise. | |
1429 | ||
1430 | 2016-12-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
1431 | Jakub Jelinek <jakub@redhat.com> | |
1432 | ||
1433 | * tree-ssa-strlen.c (fold_strstr_to_memcmp): New function. | |
1434 | (strlen_optimize_stmt): Call fold_strstr_to_memcmp. | |
1435 | ||
1436 | 2016-12-14 Eric Botcazou <ebotcazou@adacore.com> | |
1437 | ||
1438 | * lra-constraints.c (process_address_1): Do not attempt to decompose | |
1439 | addresses for MEMs that satisfy fixed-form constraints. | |
1440 | ||
1441 | 2016-12-14 Richard Biener <rguenther@suse.de> | |
1442 | ||
1443 | PR tree-optimization/78788 | |
1444 | * tree-vrp.c (set_value_range): Allow [-INF(OVF), +INF(OVF)]. | |
1445 | (set_and_canonicalize_value_range): Do not drop the above to | |
1446 | VARYING. | |
1447 | ||
1448 | 2016-12-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
1449 | ||
1450 | * config/rs6000/rs600.c (rs6000_builtin_vectorization_cost): | |
1451 | Adjust unaligned load cost. | |
1452 | ||
1453 | 2016-12-13 Uros Bizjak <ubizjak@gmail.com> | |
1454 | ||
1455 | PR target/78794 | |
1456 | * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain): | |
1457 | Calculate additional gain for andnot for targets without BMI. | |
1458 | ||
1459 | 2016-12-13 Carl Love <cel@us.ibm.com> | |
1460 | ||
1461 | * config/rs6000/rs6000-c.c: Add built-in support for | |
1462 | vector float vec_pack (vector double, vector double) | |
1463 | vector double vec_sld (vector double, vector double) | |
1464 | * config/rs6000/rs6000.c: Add icode check for vsldoi_v2df to allow | |
1465 | 4-bit unsigned literal. | |
1466 | * config/rs6000/rs6000-builtin.def: Add definition for VSLDOI_2DF | |
1467 | * doc/extend.texi: Update the built-in documentation file for the | |
1468 | new powerpc vec_pack and vec_sld built-ins. | |
1469 | ||
1470 | 2016-12-13 Martin Liska <mliska@suse.cz> | |
1471 | ||
1472 | * sanopt.c (sanopt_optimize_walker): Set contains_asan_mark. | |
1473 | (sanopt_optimize): Add new argument. | |
1474 | (sanitize_asan_mark_unpoison): New function. | |
1475 | (maybe_contains_asan_check): Likewise. | |
1476 | (sanitize_asan_mark_poison): Likewise. | |
1477 | (pass_sanopt::execute): Call the new functions. | |
1478 | ||
1479 | 2016-12-13 Martin Liska <mliska@suse.cz> | |
1480 | ||
1481 | PR tree-optimization/78428 | |
1482 | * expr.c (store_constructor_field): Add new arguments to the function. | |
1483 | (store_constructor): Set up bitregion_end and add gcc_unreachable to | |
1484 | fields that have either non-constant size or (and) offset. | |
1485 | ||
1486 | 2016-12-13 Marek Polacek <polacek@redhat.com> | |
1487 | ||
1488 | * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Change | |
1489 | parameters' type from int to HOST_WIDE_INT. | |
1490 | (compute_overlap_steps_for_affine_1_2): Change parameters' type from | |
1491 | int to HOST_WIDE_INT. | |
1492 | (build_classic_dist_vector_1): Likewise. | |
1493 | (add_multivariate_self_dist): Likewise. | |
1494 | ||
1495 | 2016-12-13 Michael Matz <matz@suse.de> | |
1496 | ||
1497 | PR tree-optimization/78725 | |
1498 | * tree-ssa-loop-split.c (split_at_bb_p): Check for overflow and | |
1499 | at correct use point. | |
1500 | ||
1501 | 2016-12-13 Martin Liska <mliska@suse.cz> | |
1502 | ||
1503 | * asan.c (asan_expand_mark_ifn): Use renamed | |
1504 | BUILT_IN_ASAN_{UN}CLOBBER_N to BUILT_IN_ASAN_{UN}POISON_STACK_MEMORY. | |
1505 | * sanitizer.def: Likewise. | |
1506 | ||
1507 | 2016-12-13 James Greenhalgh <james.greenhalgh@arm.com> | |
1508 | ||
1509 | * doc/extend.texi (Half-Precision): Update to document current | |
1510 | compiler behaviour. | |
1511 | ||
1512 | 2016-12-13 James Greenhalgh <james.greenhalgh@arm.com> | |
1513 | ||
1514 | * doc/extend.texi (Floating Types): Document availability of | |
1515 | _Float16 on ARM/AArch64. | |
1516 | ||
1517 | 2016-12-13 Richard Biener <rguenther@suse.de> | |
1518 | ||
1519 | PR tree-optimization/78699 | |
1520 | * tree-vect-data-refs.c (vect_analyze_group_access_1): Limit | |
1521 | group size. | |
1522 | ||
1523 | 2016-12-13 Richard Biener <rguenther@suse.de> | |
1524 | ||
1525 | PR middle-end/78742 | |
1526 | * tree.c (cst_and_fits_in_hwi): Look if the actual value fits. | |
1527 | * tree-object-size.c (compute_builtin_object_size): Use | |
1528 | tree_fits_shwi_p. | |
1529 | * tree-data-ref.c (initialize_matrix_A): Remove excess assert. | |
1530 | ||
1531 | 2016-12-13 Martin Liska <mliska@suse.cz> | |
1532 | ||
1533 | * asan.c (asan_mark_poison_p): Remove. | |
1534 | (asan_mark_p): New function. | |
1535 | (transform_statements): Use the function. | |
1536 | (asan_expand_mark_ifn): Do not use masked enum. | |
1537 | * asan.h (enum asan_mark_flags): Declare it via a macro. | |
1538 | * gimple-pretty-print.c (dump_gimple_call_args): Dump first | |
1539 | argument of ASAN_MARK. | |
1540 | * gimplify.c (build_asan_poison_call_expr): Use new enum values. | |
1541 | (asan_poison_variable): Likewise. | |
1542 | ||
1543 | 2016-12-13 Jakub Jelinek <jakub@redhat.com> | |
1544 | ||
1545 | PR ipa/77905 | |
1546 | * ipa-pure-const.c (cdtor_p): Return true for | |
1547 | DECL_STATIC_{CON,DE}STRUCTOR even when it is | |
1548 | DECL_LOOPING_CONST_OR_PURE_P. | |
1549 | ||
1550 | 2016-12-12 Jakub Jelinek <jakub@redhat.com> | |
1551 | ||
1552 | PR tree-optimization/78777 | |
1553 | * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge, | |
1554 | insert_initializers): Use stmt_ends_bb_p instead of is_ctrl_stmt. | |
1555 | ||
1556 | PR other/78766 | |
1557 | * opt-functions.awk (opt_args): Use [{] instead of { in regexps. | |
1558 | Formatting fix. | |
1559 | ||
1560 | 2016-12-12 Martin Sebor <msebor@redhat.com> | |
1561 | ||
1562 | PR middle-end/78622 | |
1563 | PR middle-end78606 | |
1564 | * gimple-ssa-sprintf.c (min_bytes_remaining): Use res.knownrange | |
1565 | rather than res.bounded. | |
1566 | (get_width_and_precision): Set precision to -1 when negative. | |
1567 | (adjust_range_for_overflow): New function. | |
1568 | (format_integer): Correct the handling of the space, plus, and pound | |
1569 | flags, and the special case of zero precision. | |
1570 | Always set res.bounded to true unless either precision or width | |
1571 | is specified and unknown. | |
1572 | Call adjust_range_for_overflow. | |
1573 | Avoid use zero as the shortest value when precision is specified | |
1574 | but unknown. | |
1575 | (format_directive): Remove vestigial quoting. Always inform of | |
1576 | argument value or range when it's available. | |
1577 | (add_bytes): Correct the computation of boundrange used to | |
1578 | decide whether a warning is of a "maybe" or "defnitely" kind. | |
1579 | ||
1580 | 2016-12-12 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
1581 | ||
1582 | * combine.c (change_zero_ext): Handle mode expanding zero_extracts. | |
1583 | ||
1584 | 2016-12-12 Uros Bizjak <ubizjak@gmail.com> | |
1585 | ||
1586 | PR target/78738 | |
1587 | * config/i386/i386.h (X87_ENABLE_ARITH): Also enable for | |
1588 | flag_unsafe_math_optimizations. | |
1589 | (X87_ENABLE_FLOAT): Ditto. | |
1590 | ||
1591 | 2016-12-12 Marek Polacek <polacek@redhat.com> | |
1592 | ||
1593 | PR middle-end/78716 | |
1594 | * gimplify.c (gimplify_va_arg_expr): Don't require ADDR_EXPR for | |
1595 | Case 1; check POINTER_TYPE_P instead. | |
1596 | ||
1597 | 2016-12-12 Bernd Schmidt <bschmidt@redhat.com> | |
1598 | ||
1599 | PR rtl-optimization/78669 | |
1600 | * ira.c (combine_and_move_insns): When deleting an insn, clear the | |
1601 | replace flag for all used regs in that insn. | |
1602 | ||
1603 | 2016-12-12 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
1604 | ||
1605 | * config/arm/arm-opts.h: Move struct arm_arch_core_flag and | |
1606 | arm_arch_core_flags to ... | |
1607 | * common/config/arm/arm-common.c: There. | |
1608 | ||
1609 | 2016-12-12 Eric Botcazou <ebotcazou@adacore.com> | |
1610 | ||
1611 | * config/sparc/constraints.md (T): Use special memory constraint. | |
1612 | (U): Minor tweak. | |
1613 | (W): Add TARGET_ARCH64 test. | |
1614 | * config/sparc/sparc.md (*movdi_insn_sp32): Replace 'W' with 'T'. | |
1615 | (*movdf_insn_sp32): Likewise. | |
1616 | (*mov<VM64:mode>_insn_sp32): Likewise. Replace 'e' with 'f' in | |
1617 | conjunction with offsettable memory references. | |
1618 | ||
1619 | 2016-12-11 Sandra Loosemore <sandra@codesourcery.com> | |
1620 | ||
1621 | * config/nios2/nios2.c (nios2_emit_move_sequence): Call copy_rtx | |
1622 | to avoid shared structure error. | |
1623 | ||
1624 | 2016-12-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
1625 | ||
1626 | PR target/78695 | |
1627 | * config/rs6000/rs6000.c (find_alignment_op): Discard from | |
1628 | consideration any artificial definition. | |
1629 | ||
1630 | 2016-12-11 Iain Sandoe <iain@codesourcery.com> | |
1631 | ||
1632 | * configure.ac (CROSS directory tests): Remove the assumption that | |
1633 | Darwin hosts contain suitable target sysroots in "/". | |
1634 | * configure: Regenerate. | |
1635 | ||
1636 | 2016-12-11 Iain Sandoe <iain@codesourcery.com> | |
1637 | ||
1638 | PR rtl-optimization/71496 | |
1639 | * config/rs6000/darwin.md (load_macho_picbase_si): Mark as non- | |
1640 | copyable. (load_macho_picbase_di, reload_macho_picbase_si, | |
1641 | reload_macho_picbase_di): Likewise. | |
1642 | ||
1643 | 2012-12-11 John David Anglin <danglin@gcc.gnu.org> | |
1644 | ||
1645 | * config/pa/pa.c (pa_callee_copies): New function. | |
1646 | * config/pa/pa.opt (mcaller-copies): New option. | |
1647 | * doc/invoke.texi (mcaller-copies): Document option. | |
1648 | ||
1649 | 2016-12-11 Uros Bizjak <ubizjak@gmail.com> | |
1650 | ||
1651 | PR target/70799 | |
1652 | * config/i386/i386.c (dimode_scalar_to_vector_candidate_p) | |
1653 | <case ASHIFT, case LSHIFTRT>: Consider all constant shifts. | |
1654 | Add FIXME comment. | |
1655 | (dimode_scalar_chain::compute_convert_gain): Reduce gain for | |
1656 | constant shifts larger or equal than 32. | |
1657 | ||
1658 | 2016-12-11 Roger Pau Monné <roger.pau@citrix.com> | |
1659 | ||
1660 | * config/i386/x86-64.h: Append --32 to the assembler options when | |
1661 | -m16 is used on non-glibc systems as well. | |
1662 | ||
1663 | 2016-12-10 Allan Sandfeld Jensen <allan.jensen@qt.io> | |
1664 | ||
1665 | PR target/70118 | |
1666 | * config/i386/mmintrin.h (__m64_u): New type | |
1667 | * config/i386/emmintrin.h (_mm_loadl_epi64, _mm_storel_epi64): | |
1668 | Make the allowed unaligned memory access explicit. | |
1669 | ||
1670 | 2016-12-10 Krister Walfridsson <krister.walfridsson@gmail.com> | |
1671 | ||
1672 | * config.gcc (i386-*-netbsd*): Make i486 the default arch on NetBSD. | |
1673 | Generally use cpu generic. | |
1674 | ||
1675 | 2016-12-10 Jakub Jelinek <jakub@redhat.com> | |
1676 | Marc Glisse <marc.glisse@inria.fr> | |
1677 | ||
1678 | PR tree-optimization/78720 | |
1679 | * match.pd (A < 0 ? C : 0): Only optimize for signed A. If shift | |
1680 | is negative, sign extend to @1's type and than AND with C. | |
1681 | ||
1682 | 2016-12-10 Jakub Jelinek <jakub@redhat.com> | |
1683 | ||
1684 | PR fortran/78758 | |
1685 | * tree-object-size.c (compute_object_offset) <case ARRAY_REF>: Handle | |
1686 | non-zero low bound or non-standard element sizes. | |
1687 | ||
1688 | PR sanitizer/78708 | |
1689 | * lto-streamer-in.c (input_function): In addition to debug stmts | |
1690 | without -g, remove IFN_*SAN_* calls if corresponding flag_sanitize | |
1691 | bit is not enabled. | |
1692 | ||
1693 | 2016-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
1694 | ||
1695 | * config/rs6000/rs6000-passes.def: New file. | |
1696 | * config/rs6000/rs6000-protos.h: Declare make_pass_analyze_swaps. | |
1697 | * config/rs6000/rs6000.c (rs6000_option_override): Remove | |
1698 | registration of machine-specific passes. | |
1699 | (pass_analyze_swaps::clone): New function. | |
1700 | * config/rs6000/t-rs6000: Define PASSES_EXTRA. | |
1701 | ||
1702 | 2016-12-09 Kugan Vivekanandarajah <kuganv@linaro.org> | |
1703 | ||
1704 | PR ipa/78721 | |
1705 | * ipa-cp.c (propagate_vr_accross_jump_function): Call | |
1706 | drop_tree_overflow after fold_convert. | |
1707 | ||
1708 | 2016-12-09 Jakub Jelinek <jakub@redhat.com> | |
1709 | ||
1710 | PR target/72742 | |
1711 | * config/rs6000/rs6000.md (*and<mode>3_imm_mask_dot, | |
1712 | *and<mode>3_imm_mask_dot2): Add rs6000_is_valid_and_mask to insn | |
1713 | condition. | |
1714 | ||
1715 | 2016-12-09 Segher Boessenkool <segher@kernel.crashing.org> | |
1716 | ||
1717 | PR target/78683 | |
1718 | * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Use | |
1719 | GET_MODE_BITSIZE. Return 2. | |
1720 | (CTZ_DEFINED_VALUE_AT_ZERO): Use GET_MODE_BITSIZE. Return 2. Handle | |
1721 | TARGET_POPCNTD the same as TARGET_CTZ. | |
1722 | * config/rs6000/rs6000.md (ctz<mode>2): Reimplement. | |
1723 | (ffs<mode>2): Reimplement. | |
1724 | ||
1725 | 2016-12-09 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
1726 | ||
1727 | PR rtl-optimization/78255 | |
1728 | * gcc/postreload.c (reload_cse_simplify): Do not CSE a function if | |
1729 | NO_FUNCTION_CSE is true. | |
1730 | ||
1731 | 2016-12-09 Cesar Philippidis <cesar@codesourcery.com> | |
1732 | ||
1733 | PR ipa/78027 | |
1734 | * ipa-icf.c (sem_function::parse): Don't process functions with | |
1735 | oacc decl attributes, as they may be OpenACC routines. | |
1736 | ||
1737 | 2016-12-09 David Malcolm <dmalcolm@redhat.com> | |
1738 | ||
1739 | * rtl.h (get_mem_attrs): Add "const" qualifier to returned | |
1740 | pointer. | |
1741 | ||
1742 | 2016-12-09 Nathan Sidwell <nathan@acm.org> | |
1743 | ||
1744 | PR C++/78550 | |
1745 | * convert.c (convert_to_integer_1): Maybe fold conversions to | |
1746 | integral types with fewer bits than its mode. | |
1747 | ||
1748 | 2016-12-09 Martin Liska <mliska@suse.cz> | |
1749 | ||
1750 | * tree-pretty-print.c (pretty_print_string): Escape non-printable | |
1751 | chars in strings. | |
1752 | ||
1753 | 2016-12-09 Jakub Jelinek <jakub@redhat.com> | |
1754 | ||
1755 | PR tree-optimization/78726 | |
1756 | * tree-ssa-reassoc.c (make_new_ssa_for_def): Add OPCODE and OP | |
1757 | argument. For lhs uses in debug stmts, don't replace lhs with | |
1758 | new_lhs, but with a debug temp set to new_lhs opcode op. | |
1759 | (make_new_ssa_for_all_defs): Add OPCODE argument, pass OPCODE and | |
1760 | OP down to make_new_ssa_for_def. | |
1761 | (zero_one_operation): Call make_new_ssa_for_all_defs even when | |
1762 | stmts_to_fix is empty, if *def has not changed yet. Pass | |
1763 | OPCODE to make_new_ssa_for_all_defs. | |
1764 | ||
1765 | 2016-12-08 Martin Sebor <msebor@redhat.com> | |
1766 | ||
1767 | PR c/78284 | |
1768 | * builtin-attrs.def (ATTR_ALLOC_SIZE, ATTR_RETURNS_NONNULL): New | |
1769 | identifier tree nodes. | |
1770 | (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): New attribute list. | |
1771 | (ATTR_MALLOC_SIZE_1_NOTHROW_LIST): Same. | |
1772 | (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Same. | |
1773 | (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Same. | |
1774 | (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Same. | |
1775 | * builtins.c (expand_builtin_alloca): Call | |
1776 | maybe_warn_alloc_args_overflow. | |
1777 | * builtins.def (aligned_alloc, calloc, malloc, realloc): | |
1778 | Add attribute alloc_size. | |
1779 | (alloca): Add attribute alloc_size and returns_nonnull. | |
1780 | * calls.h (maybe_warn_alloc_args_overflow): Declare. | |
1781 | * calls.c (alloc_max_size, operand_signed_p): New functions. | |
1782 | (maybe_warn_alloc_args_overflow): Define. | |
1783 | (initialize_argument_information): Diagnose overflow in functions | |
1784 | declared with attaribute alloc_size. | |
1785 | * doc/invoke.texi (Warning Options): Document -Walloc-zero and | |
1786 | -Walloc-size-larger-than. | |
1787 | ||
1788 | 2016-12-08 Vladimir Makarov <vmakarov@redhat.com> | |
1789 | ||
1790 | PR rtl-optimization/78671 | |
1791 | * lra-assign.c (find_hard_regno_for_1): Check prohibited regs for an | |
1792 | allocno class. | |
1793 | ||
1794 | 2016-12-08 Uros Bizjak <ubizjak@gmail.com> | |
1795 | ||
1796 | * config/i386/i386.h (HARD_REGNO_NREGS): Use GENERAL_REGNO_P. | |
1797 | (HARD_REGNO_NREGS_HAS_PADDING): Ditto. Simplify macro. | |
1798 | ||
1799 | 2015-12-08 Wilco Dijkstra <wdijkstr@arm.com> | |
1800 | ||
1801 | PR target/78733 | |
1802 | * config/aarch64/aarch64.c (aarch64_classify_address): | |
1803 | Set load_store_pair_p for TImode and TFmode. | |
1804 | ||
1805 | 2016-12-08 David Malcolm <dmalcolm@redhat.com> | |
1806 | ||
1807 | * emit-rtl.c (gen_reg_rtx): Move regno_pointer_align and | |
1808 | regno_reg_rtx resizing logic to... | |
1809 | (emit_status::ensure_regno_capacity): ...this new method, | |
1810 | and ensure that the buffers are large enough. | |
1811 | (init_emit): Allocate regno_reg_rtx using ggc_cleared_vec_alloc | |
1812 | rather than ggc_vec_alloc. | |
1813 | * function.h (emit_status::ensure_regno_capacity): New method. | |
1814 | ||
1815 | 2016-12-08 Dmitry Vyukov <dvyukov@google.com> | |
1816 | ||
1817 | * opts.c (finish_options): Enable -fsanitize-address-use-after-scope | |
1818 | only if -fsanitize=address is enabled (not -fsanitize=kernel-address). | |
1819 | * doc/invoke.texi (-fsanitize=kernel-address): | |
1820 | Don't say that it enables -fsanitize-address-use-after-scope. | |
1821 | ||
1822 | 2016-12-08 Bin Cheng <bin.cheng@arm.com> | |
1823 | ||
1824 | PR middle-end/78684 | |
1825 | * tree-vect-loop-manip.c (create_intersect_range_checks_index): Check | |
1826 | sign bit for index step of data reference. | |
1827 | ||
1828 | 2016-12-08 Naveen H.S <Naveen.Hurugalawadi@cavium.com> | |
1829 | ||
1830 | * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): | |
1831 | Handle SYMBOL_SMALL_TLSGD for ILP32. | |
1832 | * config/aarch64/aarch64.md : tlsgd_small modified into | |
1833 | tlsgd_small_<mode> to support SImode and DImode. | |
1834 | *tlsgd_small modified into *tlsgd_small_<mode> to support SImode and | |
1835 | DImode. | |
1836 | ||
1837 | 2016-12-08 Andrew Pinski <apinski@cavium.com> | |
1838 | ||
1839 | * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): | |
1840 | Access the lower part of RTX appropriately. | |
1841 | ||
1842 | 2016-12-07 David Malcolm <dmalcolm@redhat.com> | |
1843 | ||
1844 | * genpreds.c (write_tm_constrs_h): Update for renaming of | |
1845 | rtx_reader_ptr to md_reader_ptr. | |
1846 | (write_tm_preds_h): Likewise. | |
1847 | (write_insn_preds_c): Likewise. | |
1848 | * read-md.c (rtx_reader_ptr): Rename to... | |
1849 | (md_reader_ptr): ...this, and convert from an | |
1850 | rtx_reader * to a md_reader *. | |
1851 | (rtx_reader::set_md_ptr_loc): Rename to... | |
1852 | (md_reader::set_md_ptr_loc): ...this. | |
1853 | (rtx_reader::get_md_ptr_loc): Rename to... | |
1854 | (md_reader::get_md_ptr_loc): ...this. | |
1855 | (rtx_reader::copy_md_ptr_loc): Rename to... | |
1856 | (md_reader::copy_md_ptr_loc): ...this. | |
1857 | (rtx_reader::fprint_md_ptr_loc): Rename to... | |
1858 | (md_reader::fprint_md_ptr_loc): ...this. | |
1859 | (rtx_reader::print_md_ptr_loc): Rename to... | |
1860 | (md_reader::print_md_ptr_loc): ...this. | |
1861 | (rtx_reader::join_c_conditions): Rename to... | |
1862 | (md_reader::join_c_conditions): ...this. | |
1863 | (rtx_reader::fprint_c_condition): ...this. | |
1864 | (rtx_reader::print_c_condition): Rename to... | |
1865 | (md_reader::print_c_condition): ...this. | |
1866 | (fatal_with_file_and_line): Update for renaming of | |
1867 | rtx_reader_ptr to md_reader_ptr. | |
1868 | (rtx_reader::require_char): Rename to... | |
1869 | (md_reader::require_char): ...this. | |
1870 | (rtx_reader::require_char_ws): Rename to... | |
1871 | (md_reader::require_char_ws): ...this. | |
1872 | (rtx_reader::require_word_ws): Rename to... | |
1873 | (md_reader::require_word_ws): ...this. | |
1874 | (rtx_reader::read_char): Rename to... | |
1875 | (md_reader::read_char): ...this. | |
1876 | (rtx_reader::unread_char): Rename to... | |
1877 | (md_reader::unread_char): ...this. | |
1878 | (rtx_reader::peek_char): Rename to... | |
1879 | (md_reader::peek_char): ...this. | |
1880 | (rtx_reader::read_name): Rename to... | |
1881 | (md_reader::read_name): ...this. | |
1882 | (rtx_reader::read_escape): Rename to... | |
1883 | (md_reader::read_escape): ...this. | |
1884 | (rtx_reader::read_quoted_string): Rename to... | |
1885 | (md_reader::read_quoted_string): ...this. | |
1886 | (rtx_reader::read_braced_string): Rename to... | |
1887 | (md_reader::read_braced_string): ...this. | |
1888 | (rtx_reader::read_string): Rename to... | |
1889 | (md_reader::read_string): ...this. | |
1890 | (rtx_reader::read_skip_construct): Rename to... | |
1891 | (md_reader::read_skip_construct): ...this. | |
1892 | (rtx_reader::handle_constants): Rename to... | |
1893 | (md_reader::handle_constants): ...this. | |
1894 | (rtx_reader::traverse_md_constants): Rename to... | |
1895 | (md_reader::traverse_md_constants): ...this. | |
1896 | (rtx_reader::handle_enum): Rename to... | |
1897 | (md_reader::handle_enum): ...this. | |
1898 | (rtx_reader::lookup_enum_type): Rename to... | |
1899 | (md_reader::lookup_enum_type): ...this. | |
1900 | (rtx_reader::traverse_enum_types): Rename to... | |
1901 | (md_reader::traverse_enum_types): ...this. | |
1902 | (rtx_reader::rtx_reader): Rename to... | |
1903 | (md_reader::md_reader): ...this, and update for renaming of | |
1904 | rtx_reader_ptr to md_reader_ptr. | |
1905 | (rtx_reader::~rtx_reader): Rename to... | |
1906 | (md_reader::~md_reader): ...this, and update for renaming of | |
1907 | rtx_reader_ptr to md_reader_ptr. | |
1908 | (rtx_reader::handle_include): Rename to... | |
1909 | (md_reader::handle_include): ...this. | |
1910 | (rtx_reader::handle_file): Rename to... | |
1911 | (md_reader::handle_file): ...this. | |
1912 | (rtx_reader::handle_toplevel_file): Rename to... | |
1913 | (md_reader::handle_toplevel_file): ...this. | |
1914 | (rtx_reader::get_current_location): Rename to... | |
1915 | (md_reader::get_current_location): ...this. | |
1916 | (rtx_reader::add_include_path): Rename to... | |
1917 | (md_reader::add_include_path): ...this. | |
1918 | (rtx_reader::read_md_files): Rename to... | |
1919 | (md_reader::read_md_files): ...this. | |
1920 | * read-md.h (class rtx_reader): Split into... | |
1921 | (class md_reader): ...new class. | |
1922 | (rtx_reader_ptr): Rename to... | |
1923 | (md_reader_ptr): ...this, and convert to a md_reader *. | |
1924 | (class noop_reader): Update base class to be md_reader. | |
1925 | (class rtx_reader): Reintroduce as a subclass of md_reader. | |
1926 | (rtx_reader_ptr): Reintroduce as a rtx_reader *. | |
1927 | (read_char): Update for renaming of rtx_reader_ptr to | |
1928 | md_reader_ptr. | |
1929 | (unread_char): Likewise. | |
1930 | * read-rtl.c (rtx_reader_ptr): New global. | |
1931 | (rtx_reader::apply_iterator_to_string): Rename to... | |
1932 | (md_reader::apply_iterator_to_string): ...this. | |
1933 | (rtx_reader::copy_rtx_for_iterators): Rename to... | |
1934 | (md_reader::copy_rtx_for_iterators): ...this. | |
1935 | (rtx_reader::read_conditions): Rename to... | |
1936 | (md_reader::read_conditions): ...this. | |
1937 | (rtx_reader::record_potential_iterator_use): Rename to... | |
1938 | (md_reader::record_potential_iterator_use): ...this. | |
1939 | (rtx_reader::read_mapping): Rename to... | |
1940 | (md_reader::read_mapping): ...this. | |
1941 | (rtx_reader::read_rtx): Use rtx_reader_ptr when calling | |
1942 | read_rtx_code. | |
1943 | (rtx_reader::read_rtx_operand): Use get_string_obstack rather | |
1944 | than directly accessing m_string_obstack. | |
1945 | (rtx_reader::rtx_reader): New ctor. | |
1946 | (rtx_reader::~rtx_reader): New dtor. | |
1947 | ||
1948 | 2016-12-07 Martin Sebor <msebor@redhat.com> | |
1949 | ||
1950 | PR middle-end/77784 | |
1951 | PR middle-end/78149 | |
1952 | PR middle-end/78138 | |
1953 | ||
1954 | * builtins.c (expand_builtin_strcat, expand_builtin_strncat): New | |
1955 | functions. | |
1956 | (compute_dest_size, get_size_range, check_sizes, check_strncat_sizes) | |
1957 | (check_memop_sizes): Same. | |
1958 | (expand_builtin_memcpy): Call check memop_sizes. | |
1959 | (expand_builtin_mempcpy): Same. | |
1960 | (expand_builtin_memset): Same, | |
1961 | (expand_builtin_bzero): Same. | |
1962 | (expand_builtin_memory_chk): Call check_sizes. | |
1963 | (expand_builtin_strcpy): Same. | |
1964 | (expand_builtin_strncpy): Same. | |
1965 | (maybe_emit_sprintf_chk_warning): Same. | |
1966 | (expand_builtin): Handle strcat and strncat. | |
1967 | (fini_object_sizes): Reset pointers. | |
1968 | (compute_object_size): New function. | |
1969 | * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): | |
1970 | Avoid issuing warnings also issued during built-in expansion. | |
1971 | * doc/invoke.texi (Warning Options): Document -Wstringop-overflow. | |
1972 | ||
1973 | 2016-12-07 Michael Meissner <meissner@linux.vnet.ibm.com> | |
1974 | ||
1975 | PR target/72717 | |
1976 | * config/rs6000/rs6000.c (rs6000_expand_vector_init): If the | |
1977 | V2DImode elements are SUBREG's convert the result into DImode | |
1978 | rather than failing in emit_move_insn. | |
1979 | ||
1980 | 2016-12-07 Jakub Jelinek <jakub@redhat.com> | |
1981 | ||
1982 | * builtins.c (fold_builtin_strstr): Removed. | |
1983 | (fold_builtin_2): Don't call fold_builtin_strstr. | |
1984 | * gimple-fold.c (gimple_fold_builtin_strchr): Check is_strrchr | |
1985 | earlier in the strrchr (x, 0) -> strchr (x, 0) optimization. | |
1986 | (gimple_fold_builtin_strstr): New function. | |
1987 | (gimple_fold_builtin): Call it. | |
1988 | * fold-const-call.c (fold_const_call): Handle CFN_BUILT_IN_STRSTR. | |
1989 | ||
1990 | PR c++/78692 | |
1991 | * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Set lhs | |
1992 | var to lhs of new_stmt right before noreturn handling rather than to | |
1993 | lhs of e->call_stmt early. | |
1994 | ||
1995 | 2016-12-07 David Malcolm <dmalcolm@redhat.com> | |
1996 | ||
1997 | * read-md.c (rtx_reader::require_char): New method. | |
1998 | (require_char_ws): Convert from function to... | |
1999 | (rtx_reader::require_char_ws): ...method. | |
2000 | (rtx_reader::require_word_ws): New method. | |
2001 | * read-md.h (rtx_reader::require_char): New method decl. | |
2002 | (require_char_ws): Remove global decl in favor of... | |
2003 | (rtx_reader::require_char_ws): ...new method decl. | |
2004 | (rtx_reader::require_word_ws): New method decl. | |
2005 | (rtx_reader::peek_char): New method decl. | |
2006 | ||
2007 | 2016-12-07 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2008 | ||
2009 | PR rtl-optimization/78617 | |
2010 | * lra-remat.c (do_remat): Initialize live_hard_regs from live in | |
2011 | registers, also setting hard registers mapped to pseudo registers. | |
2012 | ||
2013 | 2016-12-07 David Malcolm <dmalcolm@redhat.com> | |
2014 | ||
2015 | * cfgexpand.c (pass_expand::execute): Move stack initializations | |
2016 | to rtl_data::init_stack_alignment and call it. | |
2017 | * emit-rtl.c (rtl_data::init_stack_alignment): New method. | |
2018 | * emit-rtl.h (rtl_data::init_stack_alignment): New method. | |
2019 | ||
2020 | 2016-12-07 Wilco Dijkstra <wdijkstr@arm.com> | |
2021 | ||
2022 | * gcc/ira.c (ira_setup_eliminable_regset): Initialize crtl->is_leaf. | |
2023 | (ira): Move initialization of crtl->is_leaf earlier. | |
2024 | ||
2025 | 2016-12-07 Wilco Dijkstra <wdijkstr@arm.com> | |
2026 | ||
2027 | * config/aarch64/aarch64.md (movti_aarch64): Change Ump to m. | |
2028 | (movtf_aarch64): Likewise. | |
2029 | * config/aarch64/aarch64.c (aarch64_classify_address): | |
2030 | Use correct intersection of offsets. | |
2031 | (aarch64_legitimize_address_displacement): Use 9-bit signed offsets. | |
2032 | (aarch64_legitimize_address): Use 9-bit signed offsets for TI/TF mode. | |
2033 | Use 7-bit signed scaled mode for modes > 16 bytes. | |
2034 | ||
2035 | 2016-12-07 James Greenhalgh <james.greenhalgh@arm.com> | |
2036 | ||
2037 | PR rtl-optimization/78561 | |
2038 | * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Use | |
2039 | constant_pool_empty_p in place of get_pool_size_upper_bound. | |
2040 | (rs6000_stack_info): Likewise. | |
2041 | (rs6000_emit_prologue): Likewise. | |
2042 | (rs6000_elf_declare_function_name): Likewise. | |
2043 | (rs6000_set_up_by_prologue): Likewise. | |
2044 | (rs6000_can_eliminate): Likewise. | |
2045 | * output.h (get_pool_size_upper_bound): Delete. | |
2046 | (constant_pool_empty_p): New. | |
2047 | * varasm.c (get_pool_size_upper_bound): Delete | |
2048 | (constant_pool_empty_p): New. | |
2049 | ||
2050 | 2016-12-07 Bin Cheng <bin.cheng@arm.com> | |
2051 | ||
2052 | PR tree-optimization/78691 | |
2053 | * match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)): | |
2054 | Require integral type for the outer expression. | |
2055 | ||
2056 | 2016-12-07 Naveen H.S <Naveen.Hurugalawadi@cavium.com> | |
2057 | ||
2058 | * config/aarch64/aarch64.c | |
2059 | (aarch64_builtin_support_vector_misalignment): New. | |
2060 | (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Define. | |
2061 | ||
2062 | 2016-12-06 David Malcolm <dmalcolm@redhat.com> | |
2063 | ||
2064 | PR bootstrap/78705 | |
2065 | * config/i386/i386.c (ix86_test_dumping_memory_blockage): | |
2066 | Conditionalize the string comparison on Pmode == DImode. | |
2067 | ||
2068 | 2016-12-06 Tom de Vries <tom@codesourcery.com> | |
2069 | ||
2070 | PR tree-optimization/67955 | |
2071 | * tree-ssa-alias.c (same_addr_size_stores_p): New function. | |
2072 | (stmt_kills_ref_p): Use it. | |
2073 | ||
2074 | 2016-12-06 Eric Botcazou <ebotcazou@adacore.com> | |
2075 | ||
2076 | PR middle-end/78700 | |
2077 | * calls.c (expand_call): Move back call to prepare_call_address. | |
2078 | ||
2079 | 2016-12-06 Michael Meissner <meissner@linux.vnet.ibm.com> | |
2080 | ||
2081 | PR target/78658 | |
2082 | * config/rs6000/rs6000.md (zero_extendqi<mode>2): Use ^ instead of | |
2083 | ?* constraints for the ISA 3.0 patterns, so the register allocator | |
2084 | is more likely to allocate QImode/HImode to vector registers for | |
2085 | conversion to floating point unless a reload is needed. | |
2086 | (zero_extendhi<mode>2): Likewise. | |
2087 | (float<QHI:mode><FP_ISA3:mode>2_internal): Properly deal with the | |
2088 | first alternative which is converting QImode/HImode to floating | |
2089 | point and the QImode/HImode value is in a vector register, and | |
2090 | does not allocate the second pseudo register. Remove zero | |
2091 | extending into traditional floating point registers, since the | |
2092 | instruction used only works on traditional altivec registers. | |
2093 | (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise. | |
2094 | ||
2095 | 2016-12-06 David Malcolm <dmalcolm@redhat.com> | |
2096 | ||
2097 | * config/i386/i386.c: Include print-rtl.h. | |
2098 | (selftest::ix86_test_dumping_memory_blockage): New function. | |
2099 | (selftest::ix86_run_selftests): Call it. | |
2100 | * print-rtl-function.c (print_rtx_function): Create an | |
2101 | rtx_reuse_manager and use it. | |
2102 | * print-rtl.c: Include "rtl-iter.h". | |
2103 | (rtx_writer::rtx_writer): Add reuse_manager param. | |
2104 | (rtx_reuse_manager::rtx_reuse_manager): New ctor. | |
2105 | (uses_rtx_reuse_p): New function. | |
2106 | (rtx_reuse_manager::preprocess): New function. | |
2107 | (rtx_reuse_manager::has_reuse_id): New function. | |
2108 | (rtx_reuse_manager::seen_def_p): New function. | |
2109 | (rtx_reuse_manager::set_seen_def): New function. | |
2110 | (rtx_writer::print_rtx): If "in_rtx" has a reuse ID, print it as a | |
2111 | prefix the first time in_rtx is seen, and print reuse_rtx | |
2112 | subsequently. | |
2113 | (print_inline_rtx): Supply NULL for new reuse_manager param. | |
2114 | (debug_rtx): Likewise. | |
2115 | (print_rtl): Likewise. | |
2116 | (print_rtl_single): Likewise. | |
2117 | (rtx_writer::print_rtl_single_with_indent): Likewise. | |
2118 | * print-rtl.h: Include bitmap.h when building for host. | |
2119 | (rtx_writer::rtx_writer): Add reuse_manager param. | |
2120 | (rtx_writer::m_rtx_reuse_manager): New field. | |
2121 | (class rtx_reuse_manager): New class. | |
2122 | * rtl-tests.c (selftest::assert_rtl_dump_eq): Add reuse_manager | |
2123 | param and use it when constructing rtx_writer. | |
2124 | (selftest::test_dumping_rtx_reuse): New function. | |
2125 | (selftest::rtl_tests_c_tests): Call it. | |
2126 | * selftest-rtl.h (class rtx_reuse_manager): New forward decl. | |
2127 | (selftest::assert_rtl_dump_eq): Add reuse_manager param. | |
2128 | (ASSERT_RTL_DUMP_EQ): Supply NULL for reuse_manager param. | |
2129 | (ASSERT_RTL_DUMP_EQ_WITH_REUSE): New macro. | |
2130 | ||
2131 | 2016-12-06 Vladimir Makarov <vmakarov@redhat.com> | |
2132 | ||
2133 | PR target/77761 | |
2134 | * lra-lives.c (process_bb_lives): Update biggest mode for | |
2135 | implicitly used hard reg. | |
2136 | ||
2137 | 2016-12-06 Uros Bizjak <ubizjak@gmail.com> | |
2138 | ||
2139 | * config/i386/predicates.md (general_gr_operand): New predicate. | |
2140 | * config/i386/i386.md (TImode and DImode push_operand splitter): | |
2141 | Use general_gr_operand. Macroize using DWI mode macro. | |
2142 | (TImode and DImode nonimmediate_operand splitter): Use | |
2143 | nonimmediate_gr_operand and general_gr_operand. Macroize using | |
2144 | DWI mode macro. | |
2145 | (TF/XF/DFmode push_operand splitter): Use general_gr_operand. | |
2146 | (TFmode nonimmediate_operand splitter): Use nonimmediate_gr_operand | |
2147 | and general_gr_operand. | |
2148 | (XFmode nonimmediate_operand splitter): Ditto. | |
2149 | (DFmode nonimmediate_operand splitter): Ditto. | |
2150 | * config/i386/mmx.md (MMXMODE nonimmediate_operand splitter): Ditto. | |
2151 | ||
2152 | 2016-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
2153 | ||
2154 | * config/arm/arm-cores.def (cortex-m23, cortex-m33): Move into | |
2155 | alphabetical order with respect to other ARMv8 processors. | |
2156 | * config/arm/arm-tables.opt: Regenerate. | |
2157 | * config/arm/arm-tune.md: Likewise. | |
2158 | ||
2159 | 2016-12-06 Robert Suchanek <robert.suchanek@imgtec.com> | |
2160 | ||
2161 | * config/mips/mips.c (mips_expand_builtin_insn): Check input | |
2162 | ranges of literal integer arguments. | |
2163 | ||
2164 | 2016-12-06 Aldy Hernandez <aldyh@redhat.com> | |
2165 | ||
2166 | PR middle-end/78548 | |
2167 | * tree-ssa-uninit.c (simplify_preds_4): Call release() instead of | |
2168 | destroy_predicate_vecs. | |
2169 | (uninit_uses_cannot_happen): Make uninit_preds a scalar. | |
2170 | ||
2171 | 2016-12-06 Aldy Hernandez <aldyh@redhat.com> | |
2172 | ||
2173 | PR middle-end/78566 | |
2174 | * tree-ssa-uninit.c (can_one_predicate_be_invalidated_p): Change | |
2175 | argument type to a pred_chain. | |
2176 | (can_chain_union_be_invalidated_p): Use pred_chain instead of a | |
2177 | worklist. | |
2178 | (flatten_out_predicate_chains): Remove. | |
2179 | (uninit_uses_cannot_happen): Rename from | |
2180 | uninit_ops_invalidate_phi_use. | |
2181 | Change logic so that we are checking that the PHI use will | |
2182 | invalidate _ALL_ possibly uninitialized operands. | |
2183 | (is_use_properly_guarded): Rename call to | |
2184 | uninit_ops_invalidate_phi_use into uninit_uses_cannot_happen. | |
2185 | ||
2186 | 2016-12-06 Tamar Christina <tamar.christina@arm.com> | |
2187 | ||
2188 | * gcc/config/aarch64/arm_neon.h | |
2189 | (vreinterpretq_p8_p128, vreinterpretq_p16_p128): Added. | |
2190 | (vreinterpret_p64_p16, vreinterpretq_p64_p128): Likewise. | |
2191 | (vreinterpretq_p64_p16, vreinterpretq_p128_p8): Likewise. | |
2192 | (vreinterpretq_p128_p16, vreinterpretq_p128_f16): Likewise. | |
2193 | (vreinterpretq_p128_f32, vreinterpretq_p128_p64): Likewise. | |
2194 | (vreinterpretq_p128_s64, vreinterpretq_p128_u64): Likewise. | |
2195 | (vreinterpretq_p128_s8, vreinterpretq_p128_s16): Likewise. | |
2196 | (vreinterpretq_p128_s32, vreinterpretq_p128_u8): Likewise. | |
2197 | (vreinterpretq_p128_u16, vreinterpretq_p128_u32): Likewise. | |
2198 | (vreinterpretq_f16_p128, vreinterpretq_f32_p128): Likewise. | |
2199 | (vreinterpretq_s64_p128, vreinterpretq_u64_p128): Likewise. | |
2200 | (vreinterpretq_s8_p128, vreinterpretq_s16_p128): Likewise. | |
2201 | (vreinterpretq_s32_p128, vreinterpretq_u8_p128): Likewise. | |
2202 | (vreinterpretq_u16_p128, vreinterpretq_u32_p128): Likewise. | |
2203 | ||
2204 | 2016-12-06 Jakub Jelinek <jakub@redhat.com> | |
2205 | ||
2206 | PR c++/71537 | |
2207 | * fold-const.c (fold_comparison): Assume CONSTANT_CLASS_P (base0) | |
2208 | plus offset is non-zero. For maybe_nonzero_address decl base0, | |
2209 | require indirect_base0. | |
2210 | ||
2211 | PR c++/71537 | |
2212 | * fold-const-call.c (fold_const_call_1): Remove memchr handling here. | |
2213 | (fold_const_call) <case CFN_BUILT_IN_STRNCMP, | |
2214 | case CFN_BUILT_IN_STRNCASECMP>: Formatting improvements. | |
2215 | (fold_const_call) <case CFN_BUILT_IN_MEMCMP>: Likewise. If s2 is 0 | |
2216 | and arguments have no side-effects, return 0. | |
2217 | (fold_const_call): Handle CFN_BUILT_IN_MEMCHR. | |
2218 | ||
2219 | PR c++/71537 | |
2220 | * fold-const-call.c (fold_const_call): Handle | |
2221 | CFN_BUILT_IN_{INDEX,STRCHR,RINDEX,STRRCHR}. | |
2222 | ||
2223 | PR tree-optimization/78675 | |
2224 | * tree-vect-loop.c (vectorizable_live_operation): For | |
2225 | VECTOR_BOOLEAN_TYPE_P vectype use integral type with bitsize precision | |
2226 | instead of TREE_TYPE (vectype) for the BIT_FIELD_REF. | |
2227 | ||
2228 | 2016-12-06 Eric Botcazou <ebotcazou@adacore.com> | |
2229 | ||
2230 | PR middle-end/78642 | |
2231 | * emit-rtl.c (verify_rtx_sharing) <CLOBBER>: Relax condition. | |
2232 | (copy_rtx_if_shared_1) <CLOBBER>: Likewise. | |
2233 | (copy_insn_1) <CLOBBER>: Likewise. | |
2234 | ||
2235 | 2016-12-05 Michael Meissner <meissner@linux.vnet.ibm.com> | |
2236 | ||
2237 | PR target/78688 | |
2238 | * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Use IN_RANGE | |
2239 | instead of ((N) >= (X) && (N) <= (Y-X)) to silence warnings about | |
2240 | comparing signed to unsigned values. | |
2241 | (FUNCTION_ARG_REGNO_P): Likewise. | |
2242 | ||
2243 | 2016-12-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
2244 | Stefan Freudenberger <stefan@reservoir.com> | |
2245 | ||
2246 | PR tree-optimization/78646 | |
2247 | * gimple-ssa-strength-reduction.c (replace_ref): The pointer | |
2248 | addition used for the memory base expression should have the type | |
2249 | of the candidate. | |
2250 | ||
2251 | 2016-12-05 Waldemar Brodkorb <wbx@openadk.org> | |
2252 | ||
2253 | PR target/71721 | |
2254 | * config.gcc (*-*-uclinux*): Enable posix threads. | |
2255 | ||
2256 | 2016-12-05 Andrew Senkevich <andrew.senkevich@intel.com> | |
2257 | ||
2258 | * config/i386/avx512bwintrin.h: Add new k-mask intrinsics. | |
2259 | * config/i386/avx512dqintrin.h: Ditto. | |
2260 | * config/i386/avx512fintrin.h: Ditto. | |
2261 | * config/i386/i386-builtin-types.def (UCHAR_FTYPE_UQI_UQI_PUCHAR, | |
2262 | UCHAR_FTYPE_UHI_UHI_PUCHAR, UCHAR_FTYPE_USI_USI_PUCHAR, | |
2263 | UCHAR_FTYPE_UDI_UDI_PUCHAR, UCHAR_FTYPE_UQI_UQI, UCHAR_FTYPE_UHI_UHI, | |
2264 | UCHAR_FTYPE_USI_USI, UCHAR_FTYPE_UDI_UDI, UQI_FTYPE_UQI_INT, | |
2265 | UHI_FTYPE_UHI_INT, USI_FTYPE_USI_INT, UDI_FTYPE_UDI_INT, | |
2266 | UQI_FTYPE_UQI, USI_FTYPE_USI, UDI_FTYPE_UDI, UQI_FTYPE_UQI_UQI): New | |
2267 | function types. | |
2268 | * config/i386/i386-builtin.def (__builtin_ia32_knotqi, | |
2269 | __builtin_ia32_knotsi, __builtin_ia32_knotdi, | |
2270 | __builtin_ia32_korqi, __builtin_ia32_korsi, __builtin_ia32_kordi, | |
2271 | __builtin_ia32_kxnorqi, __builtin_ia32_kxnorsi, | |
2272 | __builtin_ia32_kxnordi, __builtin_ia32_kxorqi, __builtin_ia32_kxorsi, | |
2273 | __builtin_ia32_kxordi, __builtin_ia32_kandqi, | |
2274 | __builtin_ia32_kandsi, __builtin_ia32_kanddi, __builtin_ia32_kandnqi, | |
2275 | __builtin_ia32_kandnsi, __builtin_ia32_kandndi): New. | |
2276 | * config/i386/i386.c (ix86_expand_args_builtin): Handle new types. | |
2277 | ||
2278 | 2016-12-05 Segher Boessenkool <segher@kernel.crashing.org> | |
2279 | ||
2280 | * combine.c: Revert r243162. | |
2281 | ||
2282 | 2016-12-05 Paolo Bonzini <bonzini@gnu.org> | |
2283 | ||
2284 | * match.pd: Simplify X ? C : 0 where C is a power of 2 and | |
2285 | X tests a single bit. | |
2286 | ||
2287 | 2016-12-05 Nathan Sidwell <nathan@acm.org> | |
2288 | ||
2289 | * diagnostic.c (diagnostic_check_max_errors): New, broken out of ... | |
2290 | (diagnostic_action_after_output): ... here. | |
2291 | (diagnostic_report_diagnostic): Call it for non-notes. | |
2292 | * diagnostic.h (struct diagnostic_context): Make max_errors signed int. | |
2293 | (diagnostic_check_max_errors): Declare. | |
2294 | ||
2295 | 2016-12-05 Cupertino Miranda <cmiranda@synopsys.com> | |
2296 | ||
2297 | * config/arc/arc.h (STARTFILE_SPEC): Use default linux specs. | |
2298 | (ENDFILE_SPEC): Likewise. | |
2299 | ||
2300 | 2016-12-05 Claudiu Zissulescu <claziss@synopsys.com> | |
2301 | ||
2302 | * config/arc/arc-protos.h (insn_is_tls_gd_dispatch): Remove. | |
2303 | * config/arc/arc.c (arc_unspec_offset): New function. | |
2304 | (arc_finalize_pic): Change. | |
2305 | (arc_emit_call_tls_get_addr): Likewise. | |
2306 | (arc_legitimize_tls_address): Likewise. | |
2307 | (arc_legitimize_pic_address): Likewise. | |
2308 | (insn_is_tls_gd_dispatch): Remove. | |
2309 | * config/arc/arc.h (INSN_REFERENCES_ARE_DELAYED): Change. | |
2310 | * config/arc/arc.md (ls_gd_load): Remove unused pattern. | |
2311 | (tls_gd_dispatch): Likewise. | |
2312 | ||
2313 | 2016-12-05 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
2314 | ||
2315 | * config/arm/arm.c (TARGET_ASM_INIT_SECTIONS): Fix wrong undef | |
2316 | location. | |
2317 | ||
2318 | 2016-12-05 Eric Botcazou <ebotcazou@adacore.com> | |
2319 | ||
2320 | * config/sparc/sparc-protos.h (sparc_splitdi_legitimate): Rename to... | |
2321 | (sparc_split_reg_mem_legitimate): ...this. | |
2322 | (sparc_split_reg_mem): Declare. | |
2323 | (sparc_split_mem_reg): Likewise. | |
2324 | (sparc_split_regreg_legitimate): Rename to... | |
2325 | (sparc_split_reg_reg_legitimate): ...this. | |
2326 | * config/sparc/sparc.c (sparc_splitdi_legitimate): Rename to... | |
2327 | (sparc_split_reg_mem_legitimate): ...this. | |
2328 | (sparc_split_reg_mem): New function. | |
2329 | (sparc_split_mem_reg): Likewise. | |
2330 | (sparc_split_regreg_legitimate): Rename to... | |
2331 | (sparc_split_reg_reg_legitimate): ...this. | |
2332 | (sparc_split_reg_reg): New function. | |
2333 | * config/sparc/sparc.md (lra): Remove "none" value. | |
2334 | (enabled): Adjust to above change. | |
2335 | (*movdi_insn_sp32): Remove new (r,T) alternative and reorder others. | |
2336 | (DImode splitters): Adjust to above renamings and use new functions. | |
2337 | (*movdf_insn_sp32): Remove new (r,T) alternative and reorder others. | |
2338 | (DFmode splitters): Adjust to above renamings and use new functions. | |
2339 | (*mov<VM64:mode>_insn_sp64): Replace C with Z constraint and use W | |
2340 | constraint in conjunction with e. | |
2341 | (*mov<VM64:mode>_insn_sp32): Remove new (r,T) alternative, add (o,Y) | |
2342 | alternative and reorder others. | |
2343 | (VM64:mode splitters): Adjust to above renamings and use new functions. | |
2344 | ||
2345 | 2016-12-04 Martin Sebor <msebor@redhat.com> | |
2346 | ||
2347 | PR c/78668 | |
2348 | * builtin-attrs.def (ATTR_ALLOC_SIZE, ATTR_RETURNS_NONNULL): New | |
2349 | identifier tree nodes. | |
2350 | (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): New attribute list. | |
2351 | (ATTR_MALLOC_SIZE_1_NOTHROW_LIST): Same. | |
2352 | (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Same. | |
2353 | (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Same. | |
2354 | (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Same. | |
2355 | * builtins.def (aligned_alloc, calloc, malloc, realloc): | |
2356 | Add attribute alloc_size. | |
2357 | (alloca): Add attribute alloc_size and returns_nonnull. | |
2358 | ||
2359 | 2016-12-04 Uros Bizjak <ubizjak@gmail.com> | |
2360 | ||
2361 | PR target/70322 | |
2362 | * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle NEG. | |
2363 | (dimode_scalar_chain::compute_convert_gain): Ditto. | |
2364 | (dimode_scalar_chain::convert_insn): Ditto. | |
2365 | ||
2366 | 2016-12-03 Eric Botcazou <ebotcazou@adacore.com> | |
2367 | ||
2368 | * lra-constraints.c (emit_spill_move): Use gen_lowpart_SUBREG in all | |
2369 | cases to build a lowpart SUBREG. | |
2370 | ||
2371 | 2016-12-03 Eric Botcazou <ebotcazou@adacore.com> | |
2372 | David S. Miller <davem@davemloft.net> | |
2373 | ||
2374 | * config/sparc/constraints.md (U): Adjust comment. | |
2375 | * config/sparc/sparc.md (lra): New attribute. | |
2376 | (enabled): For base instructions, if the lra attribute is set, | |
2377 | return 1 if it is in keeping with TARGET_LRA. | |
2378 | (*movdi_insn_sp32): Add lra attribute for alternatives mentioning U | |
2379 | constraint and duplicate them with U replaced by r. | |
2380 | (*movdf_insn_sp32): Likewise. | |
2381 | (*mov<VM64:mode>_insn_sp32): Likewise. | |
2382 | (*movtf_insn_sp32): Remove alternatives mentioning U constraint. | |
2383 | ||
2384 | 2016-12-02 Jeff Law <law@redhat.com> | |
2385 | ||
2386 | * config/arm/arm.c (arm_handle_cmse_nonsecure_call): Remove unused | |
2387 | variable main_variant. | |
2388 | ||
2389 | 2016-12-02 Michael Meissner <meissner@linux.vnet.ibm.com> | |
2390 | ||
2391 | * config.gcc (powerpc*-*-linux*): Set gnu-indirect-function by | |
2392 | default on PowerPC linux systems. | |
2393 | ||
2394 | 2016-12-02 Segher Boessenkool <segher@kernel.crashing.org> | |
2395 | ||
2396 | PR rtl-optimization/78638 | |
2397 | * simplify-rtx.c (simplify_truncation): M2 is not mode, it is | |
2398 | GET_MODE (op). Fix this. | |
2399 | ||
2400 | 2016-12-02 David Malcolm <dmalcolm@redhat.com> | |
2401 | ||
2402 | PR bootstrap/78616 | |
2403 | * selftest.c (selftest::assert_strndup_eq): Rename to... | |
2404 | (selftest::assert_xstrndup_eq): ...this, and remove call to | |
2405 | strndup. | |
2406 | (selftest::test_strndup): Rename to... | |
2407 | (selftest::test_xstrndup): ...this, updating for above renaming. | |
2408 | (selftest::test_libiberty): Update for renaming. | |
2409 | ||
2410 | 2016-12-02 Michael Meissner <meissner@linux.vnet.ibm.com> | |
2411 | ||
2412 | PR target/78639 | |
2413 | * config/rs6000/rs6000.md (movdi_internal64): Fix typo in | |
2414 | subversion id 242679 that causes the wrong store instruction to be | |
2415 | generated if a DImode is in an Altivec register using REG+REG | |
2416 | addressing. | |
2417 | ||
2418 | 2016-12-02 Uros Bizjak <ubizjak@gmail.com> | |
2419 | ||
2420 | PR target/70322 | |
2421 | * config/i386/i386.md (*andndi3_doubleword): Add non-BMI alternative | |
2422 | and corresponding post-reload splitter. | |
2423 | ||
2424 | 2016-12-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
2425 | ||
2426 | * config/aarch64/aarch64.h (machine_function): Add | |
2427 | reg_is_wrapped_separately field. | |
2428 | * config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Define new constant. | |
2429 | * config/aarch64/aarch64.c (emit_set_insn): Change return type to | |
2430 | rtx_insn *. | |
2431 | (aarch64_save_callee_saves): Don't save registers that are wrapped | |
2432 | separately. | |
2433 | (aarch64_restore_callee_saves): Don't restore registers that are | |
2434 | wrapped separately. | |
2435 | (offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p, | |
2436 | aarch64_offset_7bit_signed_scaled_p): Move earlier in the file. | |
2437 | (aarch64_get_separate_components): New function. | |
2438 | (aarch64_get_next_set_bit): Likewise. | |
2439 | (aarch64_components_for_bb): Likewise. | |
2440 | (aarch64_disqualify_components): Likewise. | |
2441 | (aarch64_emit_prologue_components): Likewise. | |
2442 | (aarch64_emit_epilogue_components): Likewise. | |
2443 | (aarch64_set_handled_components): Likewise. | |
2444 | (aarch64_process_components): Likewise. | |
2445 | (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS, | |
2446 | TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB, | |
2447 | TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS, | |
2448 | TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS, | |
2449 | TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS, | |
2450 | TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define. | |
2451 | ||
2452 | 2016-12-02 Martin Jambor <mjambor@suse.cz> | |
2453 | ||
2454 | * passes.def: Move pass_rebuild_cgraph_edges to the end of | |
2455 | pass_build_ssa_passes. | |
2456 | ||
2457 | 2016-12-02 Uros Bizjak <ubizjak@gmail.com> | |
2458 | ||
2459 | * config/alpha/alpha.md (exception_receiver): Copy | |
2460 | alpha_gp_ave_rtx return value. | |
2461 | ||
2462 | 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com> | |
2463 | ||
2464 | * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection | |
2465 | for several include directories that may be relative to sysroot. | |
2466 | * config/i386/x-mingw32 (gplus_includedir): Define. | |
2467 | (gplus_tool_includedir, gplus_backward_include_dir): Likewise. | |
2468 | (native_system_includedir): Likewise. | |
2469 | * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not | |
2470 | override if TARGET_SYSTEM_ROOT is defined. | |
2471 | (NATIVE_SYSTEM_HEADER_DIR): Likewise. | |
2472 | ||
2473 | 2016-12-02 Jakub Jelinek <jakub@redhat.com> | |
2474 | ||
2475 | PR target/70322 | |
2476 | * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle NOT. | |
2477 | (dimode_scalar_chain::compute_convert_gain): Likewise. | |
2478 | (dimode_scalar_chain::convert_insn): Likewise. | |
2479 | * config/i386/i386.md (*one_cmpldi2_doubleword): New | |
2480 | define_insn_and_split. | |
2481 | (one_cmpl<mode>2): Use SWIM1248x iterator instead of SWIM. | |
2482 | ||
2483 | PR target/78614 | |
2484 | * rtl.c (copy_rtx): Don't clear used flag here. | |
2485 | (shallow_copy_rtx_stat): Clear used flag here unless code the rtx | |
2486 | is shareable. | |
2487 | * simplify-rtx.c (simplify_replace_fn_rtx): When copying rtx with | |
2488 | 'E' in format, copy all vectors. | |
2489 | * emit-rtl.c (copy_insn_1): Don't clear used flag here. | |
2490 | * valtrack.c (cleanup_auto_inc_dec): Likewise. | |
2491 | * config/rs6000/rs6000.c (rs6000_frame_related): Likewise. | |
2492 | ||
2493 | 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
2494 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2495 | ||
2496 | * config/arm/arm-builtins.c (arm_builtins): Define | |
2497 | ARM_BUILTIN_CMSE_NONSECURE_CALLER. | |
2498 | (bdesc_2arg): Add line for cmse_nonsecure_caller. | |
2499 | (arm_init_builtins): Handle cmse_nonsecure_caller. | |
2500 | (arm_expand_builtin): Likewise. | |
2501 | * config/arm/arm_cmse.h (cmse_nonsecure_caller): New. | |
2502 | ||
2503 | 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
2504 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2505 | ||
2506 | * config/arm/arm.c (detect_cmse_nonsecure_call): New. | |
2507 | (cmse_nonsecure_call_clear_caller_saved): New. | |
2508 | (arm_reorg): Use cmse_nonsecure_call_clear_caller_saved. | |
2509 | (arm_function_ok_for_sibcall): Disable sibcalls for | |
2510 | cmse_nonsecure_call. | |
2511 | * config/arm/arm-protos.h (detect_cmse_nonsecure_call): New. | |
2512 | * config/arm/arm.md (call): Handle cmse_nonsecure_entry. | |
2513 | (call_value): Likewise. | |
2514 | (nonsecure_call_internal): New. | |
2515 | (nonsecure_call_value_internal): New. | |
2516 | * config/arm/thumb1.md (*nonsecure_call_reg_thumb1_v5): New. | |
2517 | (*nonsecure_call_value_reg_thumb1_v5): New. | |
2518 | * config/arm/thumb2.md (*nonsecure_call_reg_thumb2): New. | |
2519 | (*nonsecure_call_value_reg_thumb2): New. | |
2520 | * config/arm/unspecs.md (UNSPEC_NONSECURE_MEM): New. | |
2521 | ||
2522 | 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
2523 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2524 | ||
2525 | * config/arm/arm.c (gimplify.h): New include. | |
2526 | (arm_handle_cmse_nonsecure_call): New. | |
2527 | (arm_attribute_table): Added cmse_nonsecure_call. | |
2528 | (arm_comp_type_attributes): Deny compatibility of function types | |
2529 | with without the cmse_nonsecure_call attribute. | |
2530 | * doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute. | |
2531 | ||
2532 | 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
2533 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2534 | ||
2535 | * config/arm/arm.c (output_return_instruction): Clear | |
2536 | registers. | |
2537 | (thumb2_expand_return): Likewise. | |
2538 | (thumb1_expand_epilogue): Likewise. | |
2539 | (thumb_exit): Likewise. | |
2540 | (arm_expand_epilogue): Likewise. | |
2541 | (cmse_nonsecure_entry_clear_before_return): New. | |
2542 | (comp_not_to_clear_mask_str_un): New. | |
2543 | (compute_not_to_clear_mask): New. | |
2544 | * config/arm/thumb1.md (*epilogue_insns): Change length attribute. | |
2545 | * config/arm/thumb2.md (*thumb2_return): Disable for | |
2546 | cmse_nonsecure_entry functions. | |
2547 | (*thumb2_cmse_entry_return): Duplicate thumb2_return pattern for | |
2548 | cmse_nonsecure_entry functions. | |
2549 | ||
2550 | 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
2551 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2552 | ||
2553 | * config/arm/arm.c (use_return_insn): Change to return with bxns | |
2554 | when cmse_nonsecure_entry. | |
2555 | (output_return_instruction): Likewise. | |
2556 | (arm_output_function_prologue): Likewise. | |
2557 | (thumb_pop): Likewise. | |
2558 | (thumb_exit): Likewise. | |
2559 | (thumb2_expand_return): Assert that entry functions always have simple | |
2560 | returns. | |
2561 | (arm_expand_epilogue): Handle entry functions. | |
2562 | (arm_function_ok_for_sibcall): Disable sibcall for entry functions. | |
2563 | (arm_asm_declare_function_name): New. | |
2564 | * config/arm/arm-protos.h (arm_asm_declare_function_name): New. | |
2565 | * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME): Redefine to | |
2566 | use arm_asm_declare_function_name. | |
2567 | ||
2568 | 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
2569 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2570 | ||
2571 | * config/arm/arm.c (arm_handle_cmse_nonsecure_entry): New. | |
2572 | (arm_attribute_table): Added cmse_nonsecure_entry | |
2573 | (arm_compute_func_type): Handle cmse_nonsecure_entry. | |
2574 | (cmse_func_args_or_return_in_stack): New. | |
2575 | (arm_handle_cmse_nonsecure_entry): New. | |
2576 | * config/arm/arm.h (ARM_FT_CMSE_ENTRY): New macro define. | |
2577 | (IS_CMSE_ENTRY): Likewise. | |
2578 | * doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute. | |
2579 | ||
2580 | 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
2581 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2582 | ||
2583 | * config.gcc (extra_headers): Added arm_cmse.h. | |
2584 | * config/arm/arm-arches.def (ARM_ARCH): | |
2585 | (armv8-m): Add FL2_CMSE. | |
2586 | (armv8-m.main): Likewise. | |
2587 | (armv8-m.main+dsp): Likewise. | |
2588 | * config/arm/arm-c.c | |
2589 | (arm_cpu_builtins): Added __ARM_FEATURE_CMSE macro. | |
2590 | * config/arm/arm-flags.h: Define FL2_CMSE. | |
2591 | * config/arm.c (arm_arch_cmse): New. | |
2592 | (arm_option_override): New error for unsupported cmse target. | |
2593 | * config/arm/arm.h (arm_arch_cmse): New. | |
2594 | * config/arm/arm.opt (mcmse): New. | |
2595 | * config/arm/arm_cmse.h: New file. | |
2596 | * doc/invoke.texi (ARM Options): Add -mcmse. | |
2597 | * doc/sourcebuild.texi (arm_cmse_ok): Add new effective target. | |
2598 | * doc/extend.texi: Add ARMv8-M Security Extensions entry. | |
2599 | ||
2600 | 2016-12-02 Georg-Johann Lay <avr@gjlay.de> | |
2601 | ||
2602 | * config/avr/avr.c: Fix coding rule glitches. | |
2603 | ||
2604 | 2016-12-02 Martin Jambor <mjambor@suse.cz> | |
2605 | ||
2606 | * hsa.c (hsa_callable_function_p): Return false for artificial | |
2607 | functions. | |
2608 | ||
2609 | 2016-12-02 James Greenhalgh <james.greenhalgh@arm.com> | |
2610 | ||
2611 | PR rtl-optimization/78561 | |
2612 | * varasm.c (recompute_pool_offsets): New. | |
2613 | (output_constant_pool): Call it. | |
2614 | ||
2615 | 2016-12-02 James Greenhalgh <james.greenhalgh@arm.com> | |
2616 | ||
2617 | PR rtl-optimization/78561 | |
2618 | * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Rename | |
2619 | get_pool_size to get_pool_size_upper_bound. | |
2620 | (rs6000_stack_info): Likewise. | |
2621 | (rs6000_emit_prologue): Likewise. | |
2622 | (rs6000_elf_declare_function_name): Likewise. | |
2623 | (rs6000_set_up_by_prologue): Likewise. | |
2624 | (rs6000_can_eliminate): Likewise, reformat spaces to tabs. | |
2625 | * output.h (get_pool_size): Rename to... | |
2626 | (get_pool_size_upper_bound): ...This. | |
2627 | * varasm.c (get_pool_size): Rename to... | |
2628 | (get_pool_size_upper_bound): ...This. | |
2629 | ||
2630 | 2016-12-02 Bin Cheng <bin.cheng@arm.com> | |
2631 | ||
2632 | * match.pd: Add new pattern: | |
2633 | (cond (cmp (convert? x) c1) (op x c2) c3) -> (op (minmax x c1) c2). | |
2634 | ||
2635 | 2016-12-02 Nathan Sidwell <nathan@acm.org> | |
2636 | ||
2637 | * diagnostic.c (diagnostic_report_diagnostic): Remove extraneous | |
2638 | braces. | |
2639 | ||
2640 | 2016-12-02 Aldy Hernandez <aldyh@redhat.com> | |
2641 | ||
2642 | PR middle-end/78328 | |
2643 | * gimple-ssa-warn-alloca.c (alloca_call_type): Handle | |
2644 | VR_ANTI_RANGE. | |
2645 | ||
2646 | 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
2647 | ||
2648 | * config/s390/s390.c (s390_save_gprs_to_fprs): Fix RTL sharing | |
2649 | problem. | |
2650 | ||
2651 | 2016-12-02 Georg-Johann Lay <avr@gjlay.de> | |
2652 | ||
2653 | * config/avr/avr-arch.h (avr_mcu_t) [n_flash]: Remove field. | |
2654 | * config/avr/avr-devices.c (AVR_MCU): Remove N_FLASH macro argument. | |
2655 | * config/avr/avr-mcus.def (AVR_MCU): Remove initializer for n_flash. | |
2656 | * config/avr/avr.c (avr_set_core_architecture) [avr_n_flash]: Use | |
2657 | avr_mcu_types.flash_size to compute default value. | |
2658 | * config/avr/gen-avr-mmcu-specs.c (print_mcu) [cc1_n_flash]: Use | |
2659 | mcu->flash_size to compute value for spec. | |
2660 | ||
2661 | 2016-12-02 Georg-Johann Lay <avr@gjlay.de> | |
2662 | ||
2663 | * doc/invoke.texi (AVR Options) [-mabsdata]: Point to absdata. | |
2664 | * doc/extend.texi (AVR Variable Attributes) [progmem]: Hint | |
2665 | about linker description to avoid progmem altogether. | |
2666 | [absdata]: Point to -mabsdata option. | |
2667 | ||
2668 | 2016-12-02 Jakub Jelinek <jakub@redhat.com> | |
2669 | ||
2670 | PR rtl-optimization/78547 | |
2671 | * emit-rtl.c (unshare_all_rtl): Make sure DECL_RTL and | |
2672 | DECL_INCOMING_RTL is not shared. | |
2673 | * config/i386/i386.c (convert_scalars_to_vectors): If any | |
2674 | insns have been converted, adjust all parameter's DEC_RTL and | |
2675 | DECL_INCOMING_RTL back from V1TImode to TImode if the parameters have | |
2676 | TImode. | |
2677 | ||
2678 | PR rtl-optimization/78575 | |
2679 | * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses): Use | |
2680 | DF infrastructure to wrap all V1TImode reg uses into TImode subreg | |
2681 | if not already wrapped in a subreg. Make sure df_insn_rescan does not | |
2682 | affect further iterations. | |
2683 | ||
2684 | 2016-12-02 Martin Liska <mliska@suse.cz> | |
2685 | ||
2686 | PR ipa/78555 | |
2687 | * sreal.c (sreal::to_int): Make absolute value before shifting. | |
2688 | (sreal::operator/): Likewise. | |
2689 | (sreal_verify_negative_division): New test. | |
2690 | (void sreal_c_tests): Call the new test. | |
2691 | * sreal.h (sreal::normalize_up): Use new SREAL_ABS and | |
2692 | SREAL_SIGN macros. | |
2693 | (sreal::normalize_down): Likewise. | |
2694 | ||
2695 | 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
2696 | ||
2697 | * combine.c (combine_simplify_rtx): Suppress replacement of | |
2698 | "(and (reg) (const_int bit))" with "if_then_else". | |
2699 | ||
2700 | 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
2701 | ||
2702 | PR target/77822 | |
2703 | * config/s390/s390.md ("extzv") | |
2704 | ("*extzv<mode><clobbercc_or_nocc>") | |
2705 | ("*extzvdi<clobbercc_or_nocc>_lshiftrt") | |
2706 | ("*<risbg_n>_ior_and_sr_ze") | |
2707 | ("*extract1bitdi<clobbercc_or_nocc>") | |
2708 | ("*insv<mode><clobbercc_or_nocc>", "*insv_rnsbg_noshift") | |
2709 | ("*insv_rnsbg_srl", "*insv<mode>_mem_reg") | |
2710 | ("*insvdi_mem_reghigh", "*insvdi_reg_imm"): Use EXTRACT_ARGS_IN_RANGE | |
2711 | to validate the arguments of zero_extract and sign_extract. | |
2712 | ||
2713 | 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
2714 | ||
2715 | PR target/77822 | |
2716 | * rtl.h (EXTRACT_ARGS_IN_RANGE): New. | |
2717 | ||
2718 | 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
2719 | ||
2720 | * gcc/config/s390/s390.c (s390_builtin_vectorization_cost): New | |
2721 | function. | |
2722 | (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Define target | |
2723 | macro. | |
2724 | ||
2725 | 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
2726 | ||
2727 | * config/s390/vector.md (vec_halfhalf): New mode iterator. | |
2728 | ("vec_pack_trunc_<mode>", "vec_pack_ssat_<mode>") | |
2729 | ("vec_pack_usat_<mode>", "vec_unpacks_hi_v16qi") | |
2730 | ("vec_unpacks_low_v16qi", "vec_unpacku_hi_v16qi") | |
2731 | ("vec_unpacku_low_v16qi", "vec_unpacks_hi_v8hi") | |
2732 | ("vec_unpacks_lo_v8hi", "vec_unpacku_hi_v8hi") | |
2733 | ("vec_unpacku_lo_v8hi", "vec_unpacks_hi_v4si") | |
2734 | ("vec_unpacks_lo_v4si", "vec_unpacku_hi_v4si") | |
2735 | ("vec_unpacku_lo_v4si"): New pattern definitions. | |
2736 | * config/s390/vx-builtins.md: Move VI_HW_HSD mode iterator to | |
2737 | vector.md. | |
2738 | ||
2739 | 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
2740 | ||
2741 | * config/s390/s390-protos.h (s390_reverse_condition): New | |
2742 | prototype. | |
2743 | * config/s390/s390.c (s390_canonicalize_comparison): Fold compares | |
2744 | of CC mode values. | |
2745 | (s390_reverse_condition): New function. | |
2746 | * config/s390/s390.h (REVERSE_CC_MODE, REVERSE_CONDITION): Define | |
2747 | target macros. | |
2748 | ||
2749 | 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
2750 | ||
2751 | * config/s390/s390-modes.def (CCVEQANY, CCVH, CCVHANY, CCVHU) | |
2752 | (CCVHUANY): Remove modes. | |
2753 | (CCVIH, CCVIHU, CCVIALL, CCVIANY, CCVFALL, CCVFANY): Add modes and | |
2754 | documentation. | |
2755 | * config/s390/s390.c (s390_match_ccmode_set): Rename cc modes. | |
2756 | (s390_expand_vec_compare_scalar): Pick one of the cc consumer | |
2757 | modes. | |
2758 | (s390_branch_condition_mask): Adjust to use the new cc consumer | |
2759 | modes. The new modes allow for proper reversal in the middle-end. | |
2760 | (s390_expand_vec_compare_cc): Determine the proper cc producer and | |
2761 | consumer modes for a comparison. | |
2762 | * config/s390/s390.md: Rename CCVH to CCVIH and CCVHU to CCVIHU | |
2763 | throughout the file. | |
2764 | * config/s390/vx-builtins.md: Likewise. | |
2765 | ||
2766 | 2016-12-02 Maxim Ostapenko <m.ostapenko@samsung.com> | |
2767 | ||
2768 | * asan.c (asan_global_struct): Refactor. | |
2769 | (create_odr_indicator): New function. | |
2770 | (asan_needs_odr_indicator_p): Likewise. | |
2771 | (is_odr_indicator): Likewise. | |
2772 | (asan_add_global): Introduce odr_indicator_ptr. Pass it into global's | |
2773 | constructor. | |
2774 | (asan_protect_global): Do not protect odr indicators. | |
2775 | ||
2776 | 2016-12-01 Jeff Law <law@redhat.com> | |
2777 | ||
2778 | * tree-ssa-threadedge.c | |
2779 | (record_temporary_equivalences_from_stmts_at_dest): Avoid temporary | |
2780 | propagation of operands if there are no operands. | |
2781 | ||
2782 | 2016-12-02 Jakub Jelinek <jakub@redhat.com> | |
2783 | ||
2784 | PR tree-optimization/78586 | |
2785 | * gimple-ssa-sprintf.c (format_integer): Don't handle NOP_EXPR, | |
2786 | CONVERT_EXPR or COMPONENT_REF here. Formatting fix. For | |
2787 | SSA_NAME_DEF_STMT with NOP_EXPR only change argtype if the rhs1's | |
2788 | type is INTEGER_TYPE or POINTER_TYPE. | |
2789 | ||
2790 | 2016-12-01 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
2791 | ||
2792 | PR target/78577 | |
2793 | * config/rs6000/vsx.md (vextuhlx): Revise mode of operand 2. | |
2794 | (vextuhrx): Likewise. | |
2795 | (vextuwlx): Likewise. | |
2796 | (vextuwrx): Likewise. | |
2797 | ||
2798 | 2016-12-01 David Malcolm <dmalcolm@redhat.com> | |
2799 | ||
2800 | * dwarf2out.c (dwarf2out_c_finalize): Reset early_dwarf and | |
2801 | early_dwarf_finished. | |
2802 | ||
2803 | 2016-12-01 Eric Botcazou <ebotcazou@adacore.com> | |
2804 | David S. Miller <davem@davemloft.net> | |
2805 | ||
2806 | * config/sparc/sparc.opt (mlra): New target option. | |
2807 | * config/sparc/sparc.c (TARGET_LRA_P): Define to... | |
2808 | (sparc_lra_p): ...this. New function. | |
2809 | (D_MODES, DF_MODES): Add missing cast. | |
2810 | * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not | |
2811 | provide these insns when flag_pic. | |
2812 | (sethi_di_medlow, losum_di_medlow, seth44, setm44, setl44, sethh, | |
2813 | setlm, sethm, setlo, embmedany_sethi, embmedany_losum, | |
2814 | embmedany_brsum, embmedany_textuhi, embmedany_texthi, | |
2815 | embmedany_textulo, embmedany_textlo): Likewise. | |
2816 | (sethi_di_medlow_embmedany_pic): Provide it only with flag_pic. | |
2817 | ||
2818 | 2016-12-01 David Edelsohn <dje.gcc@gmail.com> | |
2819 | ||
2820 | PR debug/66419 | |
2821 | PR c++/78235 | |
2822 | * dbxout.c (dbxout_type_fields): Skip TEMPLATE_DECLs. | |
2823 | ||
2824 | 2016-12-01 Richard Biener <rguenther@suse.de> | |
2825 | Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
2826 | ||
2827 | * vec.h (vec<T, A, vl_embed>::quick_grow_cleared): Guard call to | |
2828 | memset if len-oldlen != 0. | |
2829 | (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Likewise. | |
2830 | ||
2831 | 2016-12-01 Uros Bizjak <ubizjak@gmail.com> | |
2832 | ||
2833 | * config/i386/i386.md (*andndi3_doubleword): Depend on TARGET_SSE2. | |
2834 | ||
2835 | 2016-12-01 Georg-Johann Lay <avr@gjlay.de> | |
2836 | ||
2837 | * config/avr/avr.c: Fix coding rule glitches. | |
2838 | ||
2839 | 2016-12-01 Markus Trippelsdorf <markus@trippelsdorf.de> | |
2840 | ||
2841 | PR tree-optimization/78598 | |
2842 | * tree-ssa-loop-prefetch.c (ddown): Cast to signed to avoid | |
2843 | overflows. | |
2844 | ||
2845 | 2016-12-01 Markus Trippelsdorf <markus@trippelsdorf.de> | |
2846 | ||
2847 | PR rtl-optimization/78596 | |
2848 | * combine.c (simplify_comparison): Cast to unsigned to avoid | |
2849 | left shifting of negative value. | |
2850 | ||
2851 | 2016-12-01 Matthias Klose <doko@ubuntu.com> | |
2852 | ||
2853 | * doc/install.texi: Don't use pkg-config to check for bdw-gc. | |
2854 | ||
2855 | 2016-12-01 Richard Biener <rguenther@suse.de> | |
2856 | ||
2857 | * tree-ssa-alias.c (indirect_refs_may_alias_p): Do not | |
2858 | treat arrays with same type as objects that cannot overlap. | |
2859 | ||
2860 | 2016-12-01 Georg-Johann Lay <avr@gjlay.de> | |
2861 | ||
2862 | * config/avr/avr.c (avr_print_operand): Use SYMBOL_REF_P if possible. | |
2863 | (avr_handle_addr_attribute, avr_asm_output_aligned_decl_common) | |
2864 | (avr_asm_asm_output_aligned_bss, avr_addr_space_convert): Dito. | |
2865 | ||
2866 | 2016-12-01 Jakub Jelinek <jakub@redhat.com> | |
2867 | ||
2868 | PR debug/78587 | |
2869 | * dwarf2out.c (loc_descr_plus_const): For negative offset use | |
2870 | uint_loc_descriptor instead of int_loc_descriptor and perform negation | |
2871 | in unsigned HOST_WIDE_INT type. | |
2872 | (scompare_loc_descriptor): Shift UINTVAL left instead of INTVAL. | |
2873 | ||
2874 | PR target/78614 | |
2875 | * config/rs6000/rs6000.c (rs6000_frame_related): Call | |
2876 | set_used_flags (pat) before any simplifications. Clear used flag on | |
2877 | PARALLEL copy. Don't guard add_reg_note call. Call | |
2878 | copy_rtx_if_shared on pat before storing it into | |
2879 | REG_FRAME_RELATED_EXPR. | |
2880 | ||
2881 | 2016-12-01 Alan Modra <amodra@gmail.com> | |
2882 | ||
2883 | * gcc/config/rs6000/rs6000.c (insn_is_swappable_p): Properly | |
2884 | look inside UNSPEC_VSX_XXSPLTW vec. | |
2885 | ||
2886 | 2016-12-01 Segher Boessenkool <segher@kernel.crashing.org> | |
2887 | ||
2888 | PR rtl-optimization/78607 | |
2889 | * combine.c (try_combine): Emit a barrier after a unconditional trap. | |
2890 | ||
2891 | 2016-11-30 Michael Meissner <meissner@linux.vnet.ibm.com> | |
2892 | ||
2893 | PR target/78602 | |
2894 | * config/rs6000/rs6000.c (rs6000_expand_vector_extract): If the | |
2895 | element is not a constant or in a register, force it to a | |
2896 | register. | |
2897 | ||
2898 | PR target/78560 | |
2899 | * config/rs6000/rs6000.c (rs6000_expand_vector_set): Force value | |
2900 | that will be set to a vector element to be in a register. | |
2901 | * config/rs6000/vsx.md (vsx_set_<mode>_p9): Fix thinko that used | |
2902 | the wrong multiplier to convert the element number to a byte | |
2903 | offset. | |
2904 | ||
2905 | 2016-11-30 Vladimir Makarov <vmakarov@redhat.com> | |
2906 | ||
2907 | PR tree-optimization/77856 | |
2908 | * lra-constraints.c (inherit_in_ebb): Check original regno for | |
2909 | invalid invariant regs too. Set only clobbered hard regs for the | |
2910 | invalid invariant regs. | |
2911 | ||
2912 | 2016-11-30 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com> | |
2913 | ||
2914 | Commit files forgotten in r242966. | |
2915 | ||
2916 | * config/avr/avr-arch.h (avr_mcu_t) [flash_size]: New member. | |
2917 | * config/avr/avr-devices.c (avr_mcu_types): Add flash size info. | |
2918 | * config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded | |
2919 | prefix check to find wrap-around value, instead use MCU flash size. | |
2920 | For 8k flash devices, update link_pmem_wrap spec string to | |
2921 | add --pmem-wrap-around=8k. | |
2922 | * config/avr/specs.h (LINK_RELAX_SPEC): Move link_pmem_wrap from | |
2923 | here... | |
2924 | (LINK_SPEC): ...to here. | |
2925 | ||
2926 | 2016-11-30 David Malcolm <dmalcolm@redhat.com> | |
2927 | ||
2928 | PR c/78498 | |
2929 | * selftest.c (selftest::assert_strndup_eq): New function. | |
2930 | (selftest::test_strndup): New function. | |
2931 | (selftest::test_libiberty): New function. | |
2932 | (selftest::selftest_c_tests): Call test_libiberty. | |
2933 | ||
2934 | 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org> | |
2935 | ||
2936 | PR rtl-optimization/78610 | |
2937 | * ira.c (combine_and_move_insns): Don't substitute into TRAP_IF | |
2938 | instructions. | |
2939 | ||
2940 | 2016-11-30 Bin Cheng <bin.cheng@arm.com> | |
2941 | ||
2942 | PR tree-optimization/78574 | |
2943 | * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Skip loop | |
2944 | header PHI that doesn't define biv. | |
2945 | ||
2946 | 2016-11-30 Jakub Jelinek <jakub@redhat.com> | |
2947 | ||
2948 | * emit-rtl.c (verify_insn_sharing): Call verify_rtx_sharing instead of | |
2949 | reset_used_flags. | |
2950 | ||
2951 | * config/i386/i386.c (dimode_scalar_chain::convert_op): Avoid | |
2952 | sharing the SUBREG rtx between move and following insn. | |
2953 | ||
2954 | * ira.c (ira_update_equiv_info_by_shuffle_insn): Use copy_rtx | |
2955 | for REG_EQUIV argument. | |
2956 | ||
2957 | 2016-11-30 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2958 | ||
2959 | * config/arm/t-rmprofile: Add mappings for Cortex-M23 and Cortex-M33. | |
2960 | ||
2961 | 2016-11-30 Markus Trippelsdorf <markus@trippelsdorf.de> | |
2962 | ||
2963 | PR ipa/78555 | |
2964 | * real.c (real_hash): Add cast to avoid left | |
2965 | shifting of negative values. | |
2966 | ||
2967 | 2016-11-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
2968 | ||
2969 | PR target/78362 | |
2970 | * config/aarch64/aarch64.md (add<mode>3): Extract inner expression | |
2971 | from a subreg in operands[1] and don't call REGNO on a non-reg | |
2972 | expression when deciding to force operands[2] into a reg. | |
2973 | ||
2974 | 2016-11-30 Claudiu Zissulescu <claziss@synopsys.com> | |
2975 | Andrew Burgess <andrew.burgess@embecosm.com> | |
2976 | ||
2977 | * config/arc/arc-protos.h (arc_store_addr_hazard_p): Declare. | |
2978 | * config/arc/arc.c (arc_store_addr_hazard_p): New function. | |
2979 | (workaround_arc_anomaly): Call arc_store_addr_hazard_p for ARC700. | |
2980 | * config/arc/arc700.md: Add define_bypass for store/load. | |
2981 | ||
2982 | 2016-11-30 Martin Liska <mliska@suse.cz> | |
2983 | ||
2984 | * cgraph.c (symbol_table::initialize): Initialize | |
2985 | ipa_clones_dump_file. | |
2986 | (cgraph_node::remove): Report to ipa_clones_dump_file. | |
2987 | * cgraph.h: Add new argument (suffix) to cloning methods. | |
2988 | * cgraphclones.c (dump_callgraph_transformation): New function. | |
2989 | (cgraph_node::create_clone): New argument. | |
2990 | (cgraph_node::create_virtual_clone): Likewise. | |
2991 | (cgraph_node::create_version_clone): Likewise. | |
2992 | * dumpfile.c: Add .ipa-clones dump file. | |
2993 | * dumpfile.h (enum tree_dump_index): Add TDI_clones | |
2994 | * ipa-inline-transform.c (clone_inlined_nodes): Report operation | |
2995 | to dump_callgraph_transformation. | |
2996 | ||
2997 | 2016-11-30 Martin Liska <mliska@suse.cz> | |
2998 | ||
2999 | PR sanitizer/78541 | |
3000 | * asan.c (asan_expand_mark_ifn): Properly | |
3001 | select a VAR_DECL from FRAME.* component reference. | |
3002 | ||
3003 | 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org> | |
3004 | ||
3005 | PR rtl-optimization/78583 | |
3006 | * simplify-rtx.c (simplify_truncation): Add check missing from the | |
3007 | previous commit. | |
3008 | ||
3009 | 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org> | |
3010 | ||
3011 | PR rtl-optimization/78590 | |
3012 | * combine.c (change_zero_ext): Transform zero_extend of subregs only | |
3013 | if the subreg_reg is a scalar integer mode. | |
3014 | ||
3015 | 2016-11-30 Jakub Jelinek <jakub@redhat.com> | |
3016 | ||
3017 | PR tree-optimization/78586 | |
3018 | * gimple-ssa-sprintf.c (format_integer): Use TYPE_MAX_VALUE or | |
3019 | TYPE_MIN_VALUE or build_all_ones_cst instead of folding LSHIFT_EXPR. | |
3020 | Don't build_int_cst min/max twice. Formatting fix. | |
3021 | ||
3022 | 2016-11-30 Markus Trippelsdorf <markus@trippelsdorf.de> | |
3023 | ||
3024 | PR rtl-optimization/78588 | |
3025 | * combine.c (if_then_else_cond): Also guard against BLKmode. | |
3026 | * rtlanal.c (num_sign_bit_copies1): Add assert. | |
3027 | ||
3028 | 2016-11-29 Jeff Law <law@redhat.com> | |
3029 | ||
3030 | * common/config/arc/arc-common.c (arc_handle_option): Remove unused | |
3031 | variables. | |
3032 | ||
3033 | * lra-constraints.c (check_and_process_move): Constrain the | |
3034 | range of DCLASS and SCLASS to avoid false positive out of bounds | |
3035 | array index warning. | |
3036 | ||
3037 | 2016-11-29 David Malcolm <dmalcolm@redhat.com> | |
3038 | ||
3039 | * doc/install.texi (--with-target-bdw-gc): Remove stray '@'. | |
3040 | ||
3041 | 2016-11-29 David Malcolm <dmalcolm@redhat.com> | |
3042 | ||
3043 | PR preprocessor/78569 | |
3044 | * input.c (get_substring_ranges_for_loc): Fail gracefully if | |
3045 | line directives were present. | |
3046 | ||
3047 | 2016-11-30 Matthias Klose <doko@ubuntu.com> | |
3048 | ||
3049 | * doc/install.texi: Document configure options --enable-objc-gc | |
3050 | and --with-target-bdw-gc. | |
3051 | ||
3052 | 2016-11-29 Michael Meissner <meissner@linux.vnet.ibm.com> | |
3053 | ||
3054 | PR target/78594 | |
3055 | * config/rs6000/rs6000.md (mov<mode>_internal, QHI iterator): Add | |
3056 | 'x' to stxsi<wd>x print pattern, so that QImode and HImode values | |
3057 | residing in traditional altivec registers can be stored | |
3058 | correctly. | |
3059 | ||
3060 | 2016-11-29 Max Filippov <jcmvbkbc@gmail.com> | |
3061 | ||
3062 | PR target/78603 | |
3063 | * config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero | |
3064 | overhead loop start between a call and its CALL_ARG_LOCATION | |
3065 | note. | |
3066 | ||
3067 | 2016-11-29 Waldemar Brodkorb <wbx@openadk.org> | |
3068 | ||
3069 | * config/bfin/linux.h (CPP_SPEC): Define. | |
3070 | ||
3071 | 2016-11-29 Martin Sebor <msebor@redhat.com> | |
3072 | ||
3073 | PR tree-optimization/78512 | |
3074 | * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Remove. | |
3075 | * config/rs6000/linux.h: Same. | |
3076 | * config/rs6000/linux64.h: Same. | |
3077 | * config/sol2.h: Same. | |
3078 | * config/sol2.c (solaris_printf_pointer_format): Remove. | |
3079 | * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Remove. | |
3080 | * doc/tm.texi: Regenerate. | |
3081 | * gimple-ssa-sprintf.c (format_pointer): Rempove. | |
3082 | (pass_sprintf_length::compute_format_length): Return bool. | |
3083 | (pass_sprintf_length::handle_gimple_call): Adjust. | |
3084 | * target.def (printf_pointer_format): Remove. | |
3085 | * targhooks.c (default_printf_pointer_format): Remove. | |
3086 | (linux_printf_pointer_format): Same. | |
3087 | * targhooks.h (default_printf_pointer_format): Remove. | |
3088 | (linux_printf_pointer_format, solaris_printf_pointer_format): Same. | |
3089 | ||
3090 | 2016-11-29 Uros Bizjak <ubizjak@gmail.com> | |
3091 | ||
3092 | * config/i386/sse.md (UNSPEC_MASKOP): Move from i386.md. | |
3093 | (mshift): Ditto. | |
3094 | (SWI1248_AVX512BWDQ): Ditto. | |
3095 | (SWI1248_AVX512BW): Ditto. | |
3096 | (k<any_logic:code><mode>): Ditto. | |
3097 | (kandn<mode>): Ditto. | |
3098 | (kxnor<mode>): Ditto. | |
3099 | (knot<mode>): Ditto. | |
3100 | (*k<any_lshift:code><mode>): Ditto. | |
3101 | (kortestzhi, kortestchi): Ditto. | |
3102 | (kunpckhi, kunpcksi, kunpckdi): Ditto. | |
3103 | ||
3104 | 2016-11-29 Andrew Pinski <apinski@cavium.com> | |
3105 | ||
3106 | * tree-vrp.c (simplify_stmt_using_ranges): Use boolean_type_node | |
3107 | for the EQ_EXPR. | |
3108 | ||
3109 | 2016-11-29 Chen Gang <gang.chen.5i5j@gmail.com> | |
3110 | ||
3111 | PR target/71331 | |
3112 | * config/tilegx/tilegx.c (tilegx_function_profiler): Save r10 | |
3113 | to stack before call mcount. | |
3114 | (tilegx_can_use_return_insn_p): Clean up code. | |
3115 | ||
3116 | 2016-11-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com> | |
3117 | ||
3118 | * config/avr/avr-mcu.def: (avr_mcu_types): Add flash size info. | |
3119 | ||
3120 | 2016-11-29 David Malcolm <dmalcolm@redhat.com> | |
3121 | ||
3122 | PR c++/72774 | |
3123 | PR c++/72786 | |
3124 | PR c++/77922 | |
3125 | PR c++/78313 | |
3126 | * spellcheck.c (selftest::test_find_closest_string): Verify that | |
3127 | we don't offer the goal string as a suggestion. | |
3128 | * spellcheck.h (best_match::get_best_meaningful_candidate): Don't | |
3129 | offer the goal string as a suggestion. | |
3130 | ||
3131 | ||
3132 | 2016-11-29 Claudiu Zissulescu <claziss@synopsys.com> | |
3133 | ||
3134 | * config/arc/arc.c (arc_override_options): Avoid selection of | |
3135 | compact casesi for ARCv2. | |
3136 | ||
3137 | 2016-11-29 Richard Biener <rguenther@suse.de> | |
3138 | ||
3139 | * tree-cfg.c (lower_phi_internal_fn): Do not look for further | |
3140 | PHIs after a regular stmt. | |
3141 | (stmt_starts_bb_p): PHIs not preceeded by a PHI or a label | |
3142 | start a new BB. | |
3143 | ||
3144 | 2016-11-29 Martin Liska <mliska@suse.cz> | |
3145 | ||
3146 | PR gcov-profile/78582 | |
3147 | * tree-profile.c (gimple_gen_time_profiler): Make one extra BB | |
3148 | to prevent PHI argument clash. | |
3149 | ||
3150 | 2016-11-29 Claudiu Zissulescu <claziss@synopsys.com> | |
3151 | ||
3152 | * config/arc/arc.opt (marclinux): Fix typo. | |
3153 | (marclinux_prof): Likewise. | |
3154 | ||
3155 | 2016-11-29 Jiong Wang <jiong.wang@arm.com> | |
3156 | ||
3157 | * target.def (stack_protect_runtime_enabled_p): New. | |
3158 | * function.c (expand_function_end): Guard stack_protect_epilogue with | |
3159 | targetm.stack_protect_runtime_enabled_p. | |
3160 | * cfgexpand.c (pass_expand::execute): Likewise. | |
3161 | * calls.c (expand_call): Likewise. | |
3162 | * doc/tm.texi.in (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): Add it. | |
3163 | * doc/tm.texi: Regenerate. | |
3164 | ||
3165 | 2016-11-29 Richard Biener <rguenther@suse.de> | |
3166 | ||
3167 | PR middle-end/78546 | |
3168 | * match.pd: Add CST1 - (CST2 - A) -> CST3 + A missing case. | |
3169 | ||
3170 | 2016-11-29 Janus Weil <janus@gcc.gnu.org> | |
3171 | ||
3172 | * doc/contrib.texi: Add a few missing gfortran contributors. | |
3173 | ||
3174 | 2016-11-29 Segher Boessenkool <segher@kernel.crashing.org> | |
3175 | ||
3176 | * combine.c (change_zero_ext): Also handle extends from a subreg | |
3177 | to a mode bigger than that of the operand of the subreg. | |
3178 | ||
3179 | 2016-11-29 Segher Boessenkool <segher@kernel.crashing.org> | |
3180 | ||
3181 | PR target/77687 | |
3182 | * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Emit the | |
3183 | stack_restore_tie insn instead of stack_tie, for the SVR4 and | |
3184 | SPE ABIs. | |
3185 | * config/rs6000/rs6000.md (stack_restore_tie): New define_insn. | |
3186 | ||
3187 | 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org> | |
3188 | ||
3189 | * shrink-wrap.c (init_separate_shrink_wrap): Do not clear | |
3190 | head_components and tail_components. | |
3191 | (spread_components): New algorithm. | |
3192 | (emit_common_tails_for_components): Clear head_components and | |
3193 | tail_components. | |
3194 | (insert_prologue_epilogue_for_components): Write extra output to the | |
3195 | dump file for sibcalls and abnormal exits. | |
3196 | ||
3197 | 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org> | |
3198 | ||
3199 | PR rtl-optimization/78342 | |
3200 | * combine.c: Include "cfghooks.h". | |
3201 | (try_combine): If we create an unconditional trap, break the basic | |
3202 | block in two just after it, and remove the edge between; also, set | |
3203 | the *new_direct_jump_p flag so that cleanup_cfg is run. | |
3204 | ||
3205 | 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org> | |
3206 | ||
3207 | * simplify-rtx.c (simplify_truncation): Handle truncate of zero_extract | |
3208 | and sign_extract. | |
3209 | ||
3210 | 2016-11-28 Uros Bizjak <ubizjak@gmail.com> | |
3211 | ||
3212 | * config/i386/i386.md (*and<mode>_1): Merge insn pattern from | |
3213 | *andsi_1 and *andhi_1 using SWI24 mode iterator. Use multi-line | |
3214 | output template string. | |
3215 | (*anddi_1): Use multi-line output template string. | |
3216 | (*andqi_1): Ditto. | |
3217 | ||
3218 | 2016-11-28 Jakub Jelinek <jakub@redhat.com> | |
3219 | ||
3220 | PR middle-end/78540 | |
3221 | * rtl.h (remove_reg_equal_equiv_notes): Return bool instead of void. | |
3222 | * rtlanal.c (remove_reg_equal_equiv_notes): Return true if any | |
3223 | note has been removed. | |
3224 | * postreload.c (reload_combine_recognize_pattern): If | |
3225 | remove_reg_equal_equiv_notes returns true, call df_notes_rescan. | |
3226 | ||
3227 | 2016-11-28 Martin Sebor <msebor@redhat.com> | |
3228 | ||
3229 | PR middle-end/78520 | |
3230 | * gimple-ssa-sprintf.c (target_max_value): Remove. | |
3231 | (target_int_max, target_size_max): Use TYPE_MAX_VALUE. | |
3232 | (get_width_and_precision): New function. | |
3233 | (format_integer, format_floating, get_string_length, format_string): | |
3234 | Correct handling of width and precision with unknown value. | |
3235 | (format_directive): Add warning. | |
3236 | (pass_sprintf_length::compute_format_length): Allow for precision | |
3237 | to consist of a sole period with no asterisk or digits after it. | |
3238 | ||
3239 | 2016-11-28 Jakub Jelinek <jakub@redhat.com> | |
3240 | ||
3241 | PR rtl-optimization/78546 | |
3242 | * simplify-rtx.c (neg_const_int): When negating most negative | |
3243 | number in mode wider than HOST_BITS_PER_WIDE_INT, use | |
3244 | simplify_const_unary_operation to produce CONST_DOUBLE or | |
3245 | CONST_WIDE_INT. | |
3246 | (simplify_plus_minus): Handle the case where neg_const_int | |
3247 | doesn't return a CONST_INT. | |
3248 | ||
3249 | 2016-11-28 Markus Trippelsdorf <markus@trippelsdorf.de> | |
3250 | ||
3251 | PR target/78556 | |
3252 | * config/rs6000/rs6000.c (vspltis_constant): Add casts to avoid | |
3253 | left shifting of negative values. | |
3254 | ||
3255 | 2016-11-28 Jakub Jelinek <jakub@redhat.com> | |
3256 | ||
3257 | PR fortran/78298 | |
3258 | * tree-nested.c (convert_local_reference_stmt): After adding | |
3259 | shared (FRAME.NN) clause to omp parallel, task or target, | |
3260 | add it also to all outer omp parallel, task or target constructs. | |
3261 | ||
3262 | 2016-11-28 Uros Bizjak <ubizjak@gmail.com> | |
3263 | ||
3264 | * config/i386/i386.md (UNSPEC_KMASKOP): New. | |
3265 | (UNSPEC_KMOV): Remove. | |
3266 | (kmovw): Expand to plain HImode move. | |
3267 | (k<any_logic:code><mode>): Rename from *k<logic><mode>. Use | |
3268 | register_operand predicates. Tag pattern with UNSPEC_KMASKOP. | |
3269 | Remove corresponding clobber-removing splitter. | |
3270 | (*anddi_1): Remove mask register alternatives. | |
3271 | (*andsi_1): Ditto. | |
3272 | (*andhi_1): Ditto. | |
3273 | (*andqi_1): Ditto. | |
3274 | (*<any_or:code><mode>_1): Ditto. | |
3275 | (*<any_or:code>qi_1): Ditto. | |
3276 | (kandn<mode>): Use SWI1248_AVX512BW mode iterator. Remove | |
3277 | general register alternatives. Tag pattern with UNSPEC_KMASKOP. | |
3278 | Remove corresponding splitter to operation with general registers. | |
3279 | (*andn<SWI38:mode>): Rename from *bmi_andn_<mode>. | |
3280 | (*andn<SWI12:mode>): New pattern. | |
3281 | (*kxnor<mode>): Remove general register alternatives. Tag pattern | |
3282 | with UNSPEC_KMASKOP. Remove corresponding splitter to operation | |
3283 | with general registers. | |
3284 | (knot<mode>): New insn pattern. | |
3285 | (*one_cmpl<mode>2_1): Remove mask register alternatives. | |
3286 | (one_cmplqi2_1): Ditto. | |
3287 | (*k<any_lshift:code><mode>): Rename from *k<mshift><mode>3. | |
3288 | Tag pattern with UNSPEC_KMASKOP. Add mode attribute. | |
3289 | * config/i386/predicates.md (mask_reg_operand): Remove predicate. | |
3290 | * config/i386/sse.md (vec_unpacks_hi_hi): Update pattern | |
3291 | to generate kmaskop shift. | |
3292 | (vec_unpacks_hi_<mode>): Ditto. | |
3293 | * config/i386/i386-builtin.def (__builtin_ia32_kandhi): | |
3294 | Use CODE_FOR_kandhi. | |
3295 | (__builtin_ia32_knothi): Use CODE_FOR_knothi. | |
3296 | (__builtin_ia32_korhi): Use CODE_FOR_kiorhi. | |
3297 | (__builtin_ia32_kxorhi): Use CODE_FOR_kxorhi. | |
3298 | ||
3299 | 2016-11-28 Richard Biener <rguenther@suse.de> | |
3300 | ||
3301 | * tree-vrp.c (vrp_visit_assignment_or_call): Handle simplifications | |
3302 | to SSA names via extract_range_from_ssa_name if allowed. | |
3303 | ||
3304 | 2016-11-28 Richard Biener <rguenther@suse.de> | |
3305 | ||
3306 | PR tree-optimization/78542 | |
3307 | * tree-ssa-ccp.c (evaluate_stmt): Only valueize simplification | |
3308 | if allowed. | |
3309 | ||
3310 | 2016-11-28 Paolo Bonzini <bonzini@gnu.org> | |
3311 | ||
3312 | * combine.c (simplify_if_then_else): Simplify IF_THEN_ELSE that | |
3313 | isolates a single bit, even if the condition involves subregs. | |
3314 | ||
3315 | 2016-11-28 Tamar Christina <tamar.christina@arm.com> | |
3316 | ||
3317 | * config/aarch64/aarch64-simd-builtins.def | |
3318 | (BSL_P): Added di and v2di mode. | |
3319 | * config/aarch64/arm_neon.h | |
3320 | (vsriq_n_p64, vsri_n_p64): Added poly type. | |
3321 | (vextq_p64, vext_p64): Likewise. | |
3322 | (vceq_p64, vbslq_p64, vbsl_p64): Likewise. | |
3323 | ||
3324 | 2016-11-28 Tamar Christina <tamar.christina@arm.com> | |
3325 | ||
3326 | * config/aarch64/aarch64-builtins.c (TYPES_SETREGP): Added poly type. | |
3327 | (TYPES_GETREGP): Likewise. | |
3328 | (TYPES_SHIFTINSERTP): Likewise. | |
3329 | (TYPES_COMBINEP): Likewise. | |
3330 | (TYPES_STORE1P): Likewise. | |
3331 | * config/aarch64/aarch64-simd-builtins.def | |
3332 | (combine): Added poly generator. | |
3333 | (get_dregoi): Likewise. | |
3334 | (get_dregci): Likewise. | |
3335 | (get_dregxi): Likewise. | |
3336 | (ssli_n): Likewise. | |
3337 | (ld1): Likewise. | |
3338 | (st1): Likewise. | |
3339 | * config/aarch64/arm_neon.h | |
3340 | (poly64x1x2_t, poly64x1x3_t): New. | |
3341 | (poly64x1x4_t, poly64x2x2_t): Likewise. | |
3342 | (poly64x2x3_t, poly64x2x4_t): Likewise. | |
3343 | (poly64x1_t): Likewise. | |
3344 | (vcreate_p64, vcombine_p64): Likewise. | |
3345 | (vdup_n_p64, vdupq_n_p64): Likewise. | |
3346 | (vld2_p64, vld2q_p64): Likewise. | |
3347 | (vld3_p64, vld3q_p64): Likewise. | |
3348 | (vld4_p64, vld4q_p64): Likewise. | |
3349 | (vld2_dup_p64, vld3_dup_p64): Likewise. | |
3350 | (vld4_dup_p64, vsli_n_p64): Likewise. | |
3351 | (vsliq_n_p64, vst1_p64): Likewise. | |
3352 | (vst1q_p64, vst2_p64): Likewise. | |
3353 | (vst3_p64, vst4_p64): Likewise. | |
3354 | (__aarch64_vdup_lane_p64, __aarch64_vdup_laneq_p64): Likewise. | |
3355 | (__aarch64_vdupq_lane_p64, __aarch64_vdupq_laneq_p64): Likewise. | |
3356 | (vget_lane_p64, vgetq_lane_p64): Likewise. | |
3357 | (vreinterpret_p8_p64, vreinterpretq_p8_p64): Likewise. | |
3358 | (vreinterpret_p16_p64, vreinterpretq_p16_p64): Likewise. | |
3359 | (vreinterpret_p64_f16, vreinterpret_p64_f64): Likewise. | |
3360 | (vreinterpret_p64_s8, vreinterpret_p64_s16): Likewise. | |
3361 | (vreinterpret_p64_s32, vreinterpret_p64_s64): Likewise. | |
3362 | (vreinterpret_p64_f32, vreinterpret_p64_u8): Likewise. | |
3363 | (vreinterpret_p64_u16, vreinterpret_p64_u32): Likewise. | |
3364 | (vreinterpret_p64_u64, vreinterpret_p64_p8): Likewise. | |
3365 | (vreinterpretq_p64_f64, vreinterpretq_p64_s8): Likewise. | |
3366 | (vreinterpretq_p64_s16, vreinterpretq_p64_s32): Likewise. | |
3367 | (vreinterpretq_p64_s64, vreinterpretq_p64_f16): Likewise. | |
3368 | (vreinterpretq_p64_f32, vreinterpretq_p64_u8): Likewise. | |
3369 | (vreinterpretq_p64_u16, vreinterpretq_p64_u32): Likewise. | |
3370 | (vreinterpretq_p64_u64, vreinterpretq_p64_p8): Likewise. | |
3371 | (vreinterpret_f16_p64, vreinterpretq_f16_p64): Likewise. | |
3372 | (vreinterpret_f32_p64, vreinterpretq_f32_p64): Likewise. | |
3373 | (vreinterpret_f64_p64, vreinterpretq_f64_p64): Likewise. | |
3374 | (vreinterpret_s64_p64, vreinterpretq_s64_p64): Likewise. | |
3375 | (vreinterpret_u64_p64, vreinterpretq_u64_p64): Likewise. | |
3376 | (vreinterpret_s8_p64, vreinterpretq_s8_p64): Likewise. | |
3377 | (vreinterpret_s16_p64, vreinterpret_s32_p64): Likewise. | |
3378 | (vreinterpretq_s32_p64, vreinterpret_u8_p64): Likewise. | |
3379 | (vreinterpret_u16_p64, vreinterpretq_u16_p64): Likewise. | |
3380 | (vreinterpret_u32_p64, vreinterpretq_u32_p64): Likewise. | |
3381 | (vset_lane_p64, vsetq_lane_p64): Likewise. | |
3382 | (vget_low_p64, vget_high_p64): Likewise. | |
3383 | (vcombine_p64, vst2_lane_p64): Likewise. | |
3384 | (vst3_lane_p64, vst4_lane_p64): Likewise. | |
3385 | (vst2q_lane_p64, vst3q_lane_p64): Likewise. | |
3386 | (vst4q_lane_p64, vget_lane_p64): Likewise. | |
3387 | (vget_laneq_p64, vset_lane_p64): Likewise. | |
3388 | (vset_laneq_p64, vcopy_lane_p64): Likewise. | |
3389 | (vcopy_laneq_p64, vdup_n_p64): Likewise. | |
3390 | (vdupq_n_p64, vdup_lane_p64): Likewise. | |
3391 | (vdup_laneq_p64, vld1_p64): Likewise. | |
3392 | (vld1q_p64, vld1_dup_p64): Likewise. | |
3393 | (vld1q_dup_p64, vld1q_dup_p64): Likewise. | |
3394 | (vmov_n_p64, vmovq_n_p64): Likewise. | |
3395 | (vst3q_p64, vst4q_p64): Likewise. | |
3396 | (vld1_lane_p64, vld1q_lane_p64): Likewise. | |
3397 | (vst1_lane_p64, vst1q_lane_p64): Likewise. | |
3398 | (vcopy_laneq_p64, vcopyq_laneq_p64): Likewise. | |
3399 | (vdupq_laneq_p64): Likewise. | |
3400 | ||
3401 | 2016-11-28 Tamar Christina <tamar.christina@arm.com> | |
3402 | ||
3403 | * config/arm/arm_neon.h (vget_lane_p64): New. | |
3404 | ||
3405 | 2016-11-28 Iain Sandoe <iain@codesourcery.com> | |
3406 | ||
3407 | PR target/71767 | |
3408 | * configure.ac (with_ld64): Use portable method to extract the | |
3409 | major part of the version number. | |
3410 | * configure: Regenerated. | |
3411 | ||
3412 | 2016-11-28 Jakub Jelinek <jakub@redhat.com> | |
3413 | ||
3414 | * gimple-ssa-sprintf.c (build_intmax_type_nodes): Look at | |
3415 | UINTMAX_TYPE rather than SIZE_TYPE. Add gcc_unreachable if | |
3416 | intmax_t couldn't be determined. | |
3417 | (format_integer): Make {,u}intmax_type_node no longer static, | |
3418 | initialize them only when needed. For z and t use | |
3419 | signed_or_unsigned_type_for instead of assuming size_t and | |
3420 | ptrdiff_t have the same precision. | |
3421 | ||
3422 | PR lto/78211 | |
3423 | * ipa-icf.h (sem_item_optimizer): Add m_classes_vec member. | |
3424 | * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Initialize it. | |
3425 | (sem_item_optimizer::~sem_item_optimizer): Traverse m_classes_vec | |
3426 | vector instead of traversing m_classes hash table. Release | |
3427 | m_classes_vec. | |
3428 | (sem_item_optimizer::read_section, sem_item_optimizer::add_class): | |
3429 | Formatting fixes. | |
3430 | (sem_item_optimizer::get_group_by_hash): When inserting a new group, | |
3431 | add it also to m_classes_vec vector. | |
3432 | (sem_item_optimizer::remove_symtab_node, | |
3433 | sem_item_optimizer::build_hash_based_classes, | |
3434 | sem_item_optimizer::parse_nonsingleton_classes): Formatting fixes. | |
3435 | (sem_item_optimizer::subdivide_classes_by_equality, | |
3436 | sem_item_optimizer::subdivide_classes_by_sensitive_refs, | |
3437 | sem_item_optimizer::verify_classes): Traverse m_classes_vec vector | |
3438 | instead of traversing m_classes hash table. Formatting fixes. | |
3439 | (sem_item_optimizer::traverse_congruence_split, | |
3440 | sem_item_optimizer::do_congruence_step_for_index, | |
3441 | sem_item_optimizer::do_congruence_step): Formatting fixes. | |
3442 | (sem_item_optimizer::process_cong_reduction): Traverse m_classes_vec | |
3443 | vector instead of traversing m_classes hash table. | |
3444 | (sem_item_optimizer::dump_cong_classes): Likewise. Formatting fixes. | |
3445 | (sem_item_optimizer::merge_classes): Traverse m_classes_vec vector | |
3446 | instead of traversing m_classes hash table. | |
3447 | ||
3448 | 2016-11-28 Georg-Johann Lay <avr@gjlay.de> | |
3449 | ||
3450 | * config/avr/avr.c (out_movhi_r_mr) [REG_X + PLUS]: Only SBIW if | |
3451 | X is not unused after. | |
3452 | ||
3453 | 2016-11-28 Bernd Schmidt <bschmidt@redhat.com> | |
3454 | ||
3455 | PR rtl-optimization/78120 | |
3456 | * rtlanal.c (insn_rtx_cost): Revert previous change. | |
3457 | ||
3458 | 2016-11-28 Georg-Johann Lay <avr@gjlay.de> | |
3459 | ||
3460 | PR 41076 | |
3461 | * config/avr/avr.md (SPLIT34): New mode iterator. | |
3462 | (bitop): New code iterator. | |
3463 | (*iorhi3.ashift8-*). New insn-and-split patterns. | |
3464 | (*movhi): Post-reload split reg = 0. | |
3465 | [!MOVW]: Post-reload split reg = reg. | |
3466 | (*mov<mode>) [SI,SF,PSI,SQ,USQ,SA,USA]: Post-reload split reg = reg. | |
3467 | (andhi3, andpsi3, andsi3): Post-reload split reg-reg operations. | |
3468 | (iorhi3, iorpsi3, iorsi3): Same. | |
3469 | (xorhi3, xorpsi3, xorsi3): Same. | |
3470 | * config/avr/avr.c (avr_rtx_costs_1) [IOR && HImode]: Adjust rtx | |
3471 | costs to *iorhi3.ashift8-* patterns. | |
3472 | ||
3473 | 2016-11-27 Iain Sandoe <iain@codesourcery.com> | |
3474 | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
3475 | ||
3476 | PR target/67710 | |
3477 | * config.in: Regenerate | |
3478 | * config/darwin-driver.c (darwin_driver_init): Emit a version string | |
3479 | for the assembler. | |
3480 | * config/darwin.h(ASM_MMACOSX_VERSION_MIN_SPEC): New, new tests. | |
3481 | * config/darwin.opt(asm_macosx_version_min): New. | |
3482 | * config/i386/darwin.h: Handle ASM_MMACOSX_VERSION_MIN_SPEC. | |
3483 | * configure: Regenerate | |
3484 | * configure.ac: Check for mmacosx-version-min handling. | |
3485 | ||
3486 | 2016-11-27 Iain Sandoe <iain@codesourcery.com> | |
3487 | ||
3488 | PR target/57438 | |
3489 | * config/i386/i386.c (ix86_code_end): Note that we emitted code | |
3490 | where the function might otherwise appear empty for picbase thunks. | |
3491 | (ix86_output_function_epilogue): If we find a zero-sized function | |
3492 | assume that reaching it is UB and trap. If we find a trailing label | |
3493 | append a nop. | |
3494 | * config/rs6000/rs6000.c (rs6000_output_function_epilogue): If we | |
3495 | find a zero-sized function assume that reaching it is UB and trap. | |
3496 | If we find a trailing label, append a nop. | |
3497 | ||
3498 | 2016-11-27 Iain Sandoe <iain@codesourcery.com> | |
3499 | ||
3500 | PR target/71767 | |
3501 | * config/darwin-sections.def (picbase_thunk_section): New. | |
3502 | * config/darwin.c (darwin_init_sections): Set up picbase thunk | |
3503 | section. (darwin_rodata_section, darwin_objc2_section, | |
3504 | machopic_select_section, darwin_asm_declare_constant_name, | |
3505 | darwin_emit_weak_or_comdat, darwin_function_section): Don’t use | |
3506 | coalesced with newer linkers. | |
3507 | (darwin_override_options): Decide on usage of coalesed sections | |
3508 | on the basis of the target linker version. | |
3509 | * config/darwin.h (MIN_LD64_NO_COAL_SECTS): New. | |
3510 | * config/darwin.opt (mtarget-linker): New. | |
3511 | * config/i386/i386.c (ix86_code_end): Do not force the thunks into | |
3512 | a coalesced section, instead use a thunks section. | |
3513 | ||
3514 | 2016-11-27 Iain Sandoe <iain@codesourcery.com> | |
3515 | ||
3516 | PR target/71767 | |
3517 | * configure.ac (with-ld64): New var, set for Darwin, set on | |
3518 | detection of ld64, gcc_cv_ld64_export_dynamic: New, New test. | |
3519 | * config/darwin.h: Use LD64_HAS_DYNAMIC export. DEF_LD64: New, define. | |
3520 | * config/darwin10.h(DEF_LD64): Update for this target version. | |
3521 | * config/darwin12.h(LINK_GCC_C_SEQUENCE_SPEC): Remove rdynamic test. | |
3522 | (DEF_LD64): Update for this target version. | |
3523 | * configure: Regenerated. | |
3524 | * config.in: Regenerated. | |
3525 | ||
3526 | 2016-11-27 Iain Sandoe <iain@codesourcery.com> | |
3527 | ||
3528 | PR target/71767 | |
3529 | * config/darwin.c (imachopic_indirection_name): Make data | |
3530 | section indirections linker-visible. | |
3531 | * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make local | |
3532 | constant labels linker-visible. | |
3533 | ||
3534 | 2016-11-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
3535 | ||
3536 | * tree.c (build_common_tree_nodes): Initialize ptrdiff_type_node. | |
3537 | (free_lang_data): Remove assignment to ptrdiff_type_node. | |
3538 | ||
3539 | 2016-11-25 Jakub Jelinek <jakub@redhat.com> | |
3540 | ||
3541 | PR rtl-optimization/78526 | |
3542 | * simplify-rtx.c (simplify_immed_subreg): Don't use wi::extract_uhwi | |
3543 | beyond val's precision. | |
3544 | ||
3545 | PR rtl-optimization/78527 | |
3546 | * combine.c (make_compound_operation_int): Ignore LSHIFTRT with | |
3547 | out of bounds shift count. | |
3548 | ||
3549 | 2016-11-25 Martin Liska <mliska@suse.cz> | |
3550 | ||
3551 | PR web/71666 | |
3552 | * doc/invoke.texi (-fprofile-use): Fix reference to a section | |
3553 | where -fprofile-generate is documented. | |
3554 | ||
3555 | 2016-11-25 Martin Liska <mliska@suse.cz> | |
3556 | ||
3557 | PR gcov-profile/78086 | |
3558 | * coverage.c (build_init_ctor): Don't use priority {cd}tors if | |
3559 | not supported by a target. Set priority to 100 if possible. | |
3560 | (build_gcov_exit_decl): Likewise. | |
3561 | ||
3562 | 2016-11-25 Richard Biener <rguenther@suse.de> | |
3563 | ||
3564 | PR ipa/78515 | |
3565 | * ipa-prop.c (compute_complex_assign_jump_func): Properly identify | |
3566 | unary, binary and single RHSs. | |
3567 | * tree.def (BIT_INSERT_EXPR): Adjust tree code name. | |
3568 | ||
3569 | 2016-11-25 Bin Cheng <bin.cheng@arm.com> | |
3570 | ||
3571 | PR middle-end/78507 | |
3572 | PR middle-end/78510 | |
3573 | PR middle-end/78517 | |
3574 | * match.pd ((cond (cmp (convert1? @1) @3) (convert2? @1) @2)): Use | |
3575 | cmp directly, rather than cmp_code. Initialize code to ERROR_MARK | |
3576 | and set it to result code if transformation is valid. Use code EQ | |
3577 | directly in last simplification case. | |
3578 | ||
3579 | 2016-11-25 Richard Biener <rguenther@suse.de> | |
3580 | ||
3581 | * gimple-fold.c (fold_stmt_1): Check may_propagate_copy | |
3582 | before valueizing return stmts. | |
3583 | ||
3584 | 2016-11-24 Richard Biener <rguenther@suse.de> | |
3585 | ||
3586 | PR tree-optimization/78343 | |
3587 | * passes.def: Add CD-DCE pass after loop splitting. | |
3588 | * tree-ssa-dce.c (find_obviously_necessary_stmts): Move | |
3589 | SCEV init/finalize ... | |
3590 | (perform_tree_ssa_dce): ... here. Deal with being | |
3591 | executed inside the loop pipeline in aggressive mode. | |
3592 | ||
3593 | 2016-11-25 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
3594 | ||
3595 | * tree-ssa-math-opts.c (struct symbolic_number): Improve comment. | |
3596 | ||
3597 | 2016-11-25 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
3598 | ||
3599 | PR tree-optimization/77673 | |
3600 | * tree-ssa-math-opts.c (struct symbolic_number): Add new src field. | |
3601 | (init_symbolic_number): Initialize src field from src parameter. | |
3602 | (perform_symbolic_merge): Select most dominated statement as the | |
3603 | source statement. Set src field of resulting n structure from the | |
3604 | input src with the lowest address. | |
3605 | (find_bswap_or_nop): Rename source_stmt into ins_stmt. | |
3606 | (bswap_replace): Rename src_stmt into ins_stmt. Initially get source | |
3607 | of load from src field rather than insertion statement. Cancel | |
3608 | optimization if statement analyzed is not dominated by the insertion | |
3609 | statement. | |
3610 | (pass_optimize_bswap::execute): Rename src_stmt to ins_stmt. Compute | |
3611 | dominance information. | |
3612 | ||
3613 | 2016-11-25 Eric Botcazou <ebotcazou@adacore.com> | |
3614 | ||
3615 | PR ada/67205 | |
3616 | * config/mips/mips.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define. | |
3617 | ||
3618 | 2016-11-25 Martin Jambor <mjambor@suse.cz> | |
3619 | ||
3620 | PR tree-optimization/70965 | |
3621 | * passes.def (pass_build_ssa_passes): Add pass_rebuild_cgraph_edges. | |
3622 | ||
3623 | 2016-11-24 James Greenahlgh <james.greenhalgh@arm.com> | |
3624 | ||
3625 | PR target/78509 | |
3626 | * config/i386/i386.c (i386_excess_precision): Do not return | |
3627 | FLT_EVAL_METHOD_UNPREDICTABLE when "type" is | |
3628 | EXCESS_PRECISION_TYPE_STANDARD. | |
3629 | * target.def (excess_precision): Document that targets should | |
3630 | not return FLT_EVAL_METHOD_UNPREDICTABLE when "type" is | |
3631 | EXCESS_PRECISION_TYPE_STANDARD or EXCESS_PRECISION_TYPE_FAST. | |
3632 | Fix typo in first sentence. | |
3633 | * doc/tm.texi: Regenerate. | |
3634 | ||
3635 | 2016-11-25 Richard Biener <rguenther@suse.de> | |
3636 | ||
3637 | PR tree-optimization/78396 | |
3638 | * tree-vectorizer.c (vectorize_loops): When the if-converted | |
3639 | body contains masked loads or stores do not attempt to | |
3640 | basic-block-vectorize it. | |
3641 | ||
3642 | 2016-11-25 Richard Sandiford <richard.sandiford@arm.com> | |
3643 | Alan Hayward <alan.hayward@arm.com> | |
3644 | David Sherwood <david.sherwood@arm.com> | |
3645 | ||
3646 | * function.h (spill_slot_alignment): Declare. | |
3647 | * function.c (spill_slot_alignment): New function. | |
3648 | * lra-spills.c (slot): Add align and size fields. | |
3649 | (assign_mem_slot): Use them in the call to assign_stack_local. | |
3650 | (add_pseudo_to_slot): Update the fields. | |
3651 | (assign_stack_slot_num_and_sort_pseudos): Initialise the fields. | |
3652 | ||
3653 | 2016-11-25 Richard Sandiford <richard.sandiford@arm.com> | |
3654 | Alan Hayward <alan.hayward@arm.com> | |
3655 | David Sherwood <david.sherwood@arm.com> | |
3656 | ||
3657 | * stor-layout.c (layout_type): Allow the caller to set the mode of | |
3658 | a float type. Only choose one here if the mode is still VOIDmode. | |
3659 | * tree.c (build_common_tree_nodes): Set the type mode of decimal | |
3660 | floats before calling layout_type. | |
3661 | * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise. | |
3662 | ||
3663 | 2016-11-25 Richard Sandiford <richard.sandiford@arm.com> | |
3664 | ||
3665 | * tree-tailcall.c (find_tail_calls): Allow calls to reference | |
3666 | local variables if all references are known to be direct. | |
3667 | ||
3668 | 2016-11-25 Jakub Jelinek <jakub@redhat.com> | |
3669 | Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
3670 | ||
3671 | PR middle-end/78501 | |
3672 | * tree-vrp.c (extract_range_basic): Check for ptrdiff_type_node to be | |
3673 | non null and it's precision matches precision of lhs's type. | |
3674 | ||
3675 | 2016-11-24 Martin Sebor <msebor@redhat.com> | |
3676 | ||
3677 | PR tree-optimization/78476 | |
3678 | * gimple-ssa-sprintf.c (struct pass_sprintf_length::call_info): | |
3679 | Add a member. | |
3680 | (handle_gimple_call): Adjust signature. | |
3681 | (try_substitute_return_value): Remove calls to bounded functions | |
3682 | with zero buffer size whose result is known. | |
3683 | (pass_sprintf_length::execute): Adjust call to handle_gimple_call. | |
3684 | ||
3685 | 2016-11-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
3686 | ||
3687 | * varasm.c (assemble_start_function): Wrap align_log definition in | |
3688 | ASM_OUTPUT_MAX_SKIP_ALIGN. | |
3689 | ||
3690 | 2016-11-24 Uros Bizjak <ubizjak@gmail.com> | |
3691 | ||
3692 | * config/i386/i386.md (wide AND insn to QImode splitter): Use | |
3693 | explicit mode macros. | |
3694 | (wide OR insn to QImode splitter): Ditto. | |
3695 | ||
3696 | 2016-11-24 Vladimir Makarov <vmakarov@redhat.com> | |
3697 | ||
3698 | PR rtl-optimization/77541 | |
3699 | * lra-constraints.c (struct input_reload): Add field match_p. | |
3700 | (get_reload_reg): Check modes of input reloads to generate unique | |
3701 | value reload pseudo. | |
3702 | (match_reload): Add input reload pseudo for the current insn. | |
3703 | ||
3704 | 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com> | |
3705 | ||
3706 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Update | |
3707 | __FLT_EVAL_METHOD__ and __FLT_EVAL_METHOD_C99__ when we switch | |
3708 | architecture levels. | |
3709 | * config/aarch64/aarch64.c (aarch64_promoted_type): Only promote | |
3710 | the aarch64_fp16_type_node, not all HFmode types. | |
3711 | (aarch64_libgcc_floating_mode_supported_p): Support HFmode. | |
3712 | (aarch64_scalar_mode_supported_p): Likewise. | |
3713 | (aarch64_excess_precision): New. | |
3714 | (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define. | |
3715 | (TARGET_SCALAR_MODE_SUPPORTED_P): Likewise. | |
3716 | (TARGET_C_EXCESS_PRECISION): Likewise. | |
3717 | ||
3718 | 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com> | |
3719 | ||
3720 | * config/aarch64/aarch64-c.c (aarch64_scalar_mode_supported_p): New. | |
3721 | (TARGET_SCALAR_MODE_SUPPORTED_P): Define. | |
3722 | ||
3723 | 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com> | |
3724 | ||
3725 | * config/aarch64/aarch64.md (<optab>sihf2): Convert to expand. | |
3726 | (<optab>dihf2): Likewise. | |
3727 | (aarch64_fp16_<optab><mode>hf2): New. | |
3728 | ||
3729 | 2016-11-24 Alexander Monakov <amonakov@ispras.ru> | |
3730 | ||
3731 | PR target/67822 | |
3732 | * config/nvptx/mkoffload.c (main): Allow -fopenmp. | |
3733 | ||
3734 | 2016-11-24 Eric Botcazou <ebotcazou@adacore.com> | |
3735 | ||
3736 | * common/config/sparc/sparc-common.c (sparc_option_optimization_table): | |
3737 | Enable REE at -O2 and higher. | |
3738 | * config/sparc/sparc.c (sparc_option_override): Disable it by default | |
3739 | in 32-bit mode. | |
3740 | ||
3741 | 2016-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
3742 | ||
3743 | PR target/48863 | |
3744 | PR inline-asm/70184 | |
3745 | * tree-ssa-ter.c (temp_expr_table): Add reg_vars_cnt field. | |
3746 | (new_temp_expr_table): Initialise reg_vars_cnt. | |
3747 | (free_temp_expr_table): Release reg_vars_cnt. | |
3748 | (process_replaceable): Add reg_vars_cnt argument, set reg_vars_cnt | |
3749 | field of TAB. | |
3750 | (find_replaceable_in_bb): Use the above to record register variable | |
3751 | write occurrences and cancel replacement across them. | |
3752 | ||
3753 | 2016-11-24 Eric Botcazou <ebotcazou@adacore.com> | |
3754 | ||
3755 | PR rtl-optimization/78437 | |
3756 | * ree.c (get_uses): New function. | |
3757 | (combine_reaching_defs): When a copy is needed, return false if any | |
3758 | reaching use of the source register reads it in a mode larger than | |
3759 | the mode it is set in and WORD_REGISTER_OPERATIONS is true. | |
3760 | ||
3761 | 2016-11-24 Martin Liska <mliska@suse.cz> | |
3762 | ||
3763 | * gimple-pretty-print.c (dump_edge_probability): New function. | |
3764 | (dump_gimple_switch): Dump label edge probabilities. | |
3765 | (dump_gimple_cond): Likewise. | |
3766 | (dump_gimple_label): Dump | |
3767 | (dump_gimple_bb_header): Dump basic block frequency. | |
3768 | (pp_cfg_jump): Replace e->dest argument with e. | |
3769 | (dump_implicit_edges): Likewise. | |
3770 | * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): | |
3771 | Use gimple_bb (at) instead of at->bb. | |
3772 | ||
3773 | 2016-11-24 Bernd Schmidt <bschmidt@redhat.com> | |
3774 | ||
3775 | * common.opt (flimit-function-alignment): New. | |
3776 | * doc/invoke.texi (-flimit-function-alignment): Document. | |
3777 | * emit-rtl.h (struct rtl_data): Add max_insn_address field. | |
3778 | * final.c (shorten_branches): Set it. | |
3779 | * varasm.c (assemble_start_function): Limit alignment if | |
3780 | requested. | |
3781 | ||
3782 | 2016-11-24 Richard Biener <rguenther@suse.de> | |
3783 | ||
3784 | PR tree-optimization/71595 | |
3785 | * cfgloopmanip.h (remove_path): Add irred_invalidated and | |
3786 | loop_closed_ssa_invalidated parameters, defaulted to NULL. | |
3787 | * cfgloopmanip.c (remove_path): Likewise, pass them along to | |
3788 | called functions. Only fix irred flags if the caller didn't | |
3789 | request state. | |
3790 | * tree-ssa-loop-ivcanon.c (unloop_loops): Use add_bb_to_loop. | |
3791 | (unloop_loops): Pass irred_invalidated and loop_closed_ssa_invalidated | |
3792 | to remove_path. | |
3793 | ||
3794 | 2016-11-24 Bernd Schmidt <bschmidt@redhat.com> | |
3795 | ||
3796 | PR rtl-optimization/78120 | |
3797 | * ifcvt.c (noce_conversion_profitable_p): Check original cost in all | |
3798 | cases, and additionally test against max_seq_cost for speed | |
3799 | optimization. | |
3800 | (noce_process_if_block): Compute an estimate for the original cost when | |
3801 | optimizing for speed, using the minimum of then and else block costs. | |
3802 | ||
3803 | PR rtl-optimization/78120 | |
3804 | * rtlanal.c (insn_rtx_cost): Use set_rtx_cost. | |
3805 | ||
3806 | PR rtl-optimization/78120 | |
3807 | * config/i386/i386.c (ix86_rtx_costs): Fully handle SETs. | |
3808 | ||
3809 | 2016-11-24 Bin Cheng <bin.cheng@arm.com> | |
3810 | ||
3811 | * match.pd: Refine type conversion in result expr for below pattern: | |
3812 | (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)). | |
3813 | ||
3814 | 2016-11-24 Eric Botcazou <ebotcazou@adacore.com> | |
3815 | ||
3816 | PR middle-end/78429 | |
3817 | * tree.h (wi::fits_to_boolean_p): New predicate. | |
3818 | (wi::fits_to_tree_p): Use it for boolean types. | |
3819 | * tree.c (int_fits_type_p): Likewise. | |
3820 | ||
3821 | 2016-11-24 Martin Liska <mliska@suse.cz> | |
3822 | ||
3823 | * print-tree.c (struct bucket): Remove. | |
3824 | (print_node): Add new argument which drives whether a tree node | |
3825 | is printed briefly or not. | |
3826 | (debug_tree): Replace a custom hash table with hash_set<T>. | |
3827 | * print-tree.h (print_node): Add the argument. | |
3828 | ||
3829 | 2016-11-24 Chung-Lin Tang <cltang@codesourcery.com> | |
3830 | ||
3831 | * config/nios2/nios2.c (nios2_init_libfuncs): Add ATTRIBUTE_UNUSED. | |
3832 | ||
3833 | 2016-11-23 Peter Bergner <bergner@vnet.ibm.com> | |
3834 | ||
3835 | PR target/78458 | |
3836 | * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return MODE | |
3837 | if it is at least NREGS wide. | |
3838 | ||
3839 | 2016-11-23 Joseph Myers <joseph@codesourcery.com> | |
3840 | ||
3841 | * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): For | |
3842 | TARGET_E500_DOUBLE. handle TDmode, TImode and PTImode the same as | |
3843 | TFmode, IFmode and KFmode. | |
3844 | ||
3845 | 2016-11-23 Joseph Myers <joseph@codesourcery.com> | |
3846 | ||
3847 | * config/rs6000/spe.md (*frob_<SPE64:mode>_ti_8): New insn | |
3848 | pattern. | |
3849 | ||
3850 | 2016-11-23 Segher Boessenkool <segher@kernel.crashing.org> | |
3851 | ||
3852 | * combine.c (change_zero_ext): Only change the mode of a hard register | |
3853 | destination if can_change_dest_mode holds for that. | |
3854 | ||
3855 | 2016-11-23 Jeff Law <law@redhat.com> | |
3856 | ||
3857 | * varasm.c (assemble_name): Increase buffer size for name. | |
3858 | ||
3859 | * config/spu/spu.md (floatunsdidf2): Remove unused local variable. | |
3860 | ||
3861 | 2016-11-23 Jakub Kicinski <jakub.kicinski@netronome.com> | |
3862 | ||
3863 | * doc/extend.texi: Constify first argument to __builtin_object_size. | |
3864 | ||
3865 | 2016-11-23 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
3866 | ||
3867 | * opth-gen.awk: Use unsigned shifts for bit masks. Allow all bits | |
3868 | to be used. Add brackets around macro argument. | |
3869 | ||
3870 | 2016-11-23 Uros Bizjak <ubizjak@gmail.com> | |
3871 | ||
3872 | * config/i386/i386.md (*<any_or:code>hi_1): Fix operand 2 constraints. | |
3873 | ||
3874 | 2016-11-23 Jakub Jelinek <jakub@redhat.com> | |
3875 | ||
3876 | PR sanitizer/69278 | |
3877 | * opts.c (parse_sanitizer_options): For -fsanitize=undefined, | |
3878 | restore enabling also SANITIZE_UNREACHABLE and SANITIZE_RETURN. | |
3879 | ||
3880 | 2016-11-23 Jakub Jelinek <jakub@redhat.com> | |
3881 | ||
3882 | PR middle-end/69183 | |
3883 | * omp-low.c (build_outer_var_ref): Change lastprivate argument | |
3884 | to code, pass it recursively, adjust uses. For OMP_CLAUSE_PRIVATE | |
3885 | on worksharing constructs, treat it like clauses on simd construct. | |
3886 | Formatting fix. | |
3887 | (lower_rec_input_clauses): For OMP_CLAUSE_PRIVATE_OUTER_REF pass | |
3888 | OMP_CLAUSE_PRIVATE as last argument to build_outer_var_ref. | |
3889 | (lower_lastprivate_clauses): Pass OMP_CLAUSE_LASTPRIVATE instead | |
3890 | of true as last argument to build_outer_var_ref. | |
3891 | ||
3892 | 2016-11-23 Uros Bizjak <ubizjak@gmail.com> | |
3893 | ||
3894 | * config/i386/i386.md (*movqi_internal): Calculate mode | |
3895 | attribute of alternatives 7,8,9 depending on TARGET_AVX512DQ. | |
3896 | <TYPE_MSKMOV>: Emit kmovw for MODE_HI insn mode attribute. | |
3897 | (*k<logic><mode>): Calculate mode attribute depending on | |
3898 | TARGET_AVX512DQ. Emit k<logic>w for MODE_HI insn mode attribute. | |
3899 | (*andqi_1): Calculate mode attribute of alternative 3 depending | |
3900 | on TARGET_AVX512DQ. Emit kandw for MODE_HI insn mode attribute. | |
3901 | (kandn<mode>): Calculate mode attribute of alternative 2 depending | |
3902 | on TARGET_AVX512DQ. Emit kandnw for MODE_HI insn mode attribute. | |
3903 | (kxnor<mode>): Merge insn patterns using SWI1248_AVX512BW mode | |
3904 | iterator. Calculate mode attribute of alternative 1 depending | |
3905 | on TARGET_AVX512DQ. Emit kxnorw for MODE_HI insn mode attribute. | |
3906 | (*one_cmplqi2_1): Calculate mode attribute of alternative 2 depending | |
3907 | on TARGET_AVX512DQ. Emit knotw for MODE_HI insn mode attribute. | |
3908 | ||
3909 | 2016-11-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
3910 | ||
3911 | PR middle-end/78153 | |
3912 | * gimple-fold.c (fold_stmt_1): Handle case for GIMPLE_RETURN. | |
3913 | * tree-vrp.c (extract_range_basic): Handle case for | |
3914 | CFN_BUILT_IN_STRLEN. | |
3915 | ||
3916 | 2016-11-23 Jeff Law <law@redhat.com> | |
3917 | ||
3918 | * config/mcore/mcore.c (emit_new_cond_insn): Fix prototype. | |
3919 | ||
3920 | * config/iq2000/iq2000.c (iq2000_rtx_costs): Avoid multiplication | |
3921 | in boolean context warning. | |
3922 | ||
3923 | * config/ia64/ia64.c (ia64_emit_insn_before): Fix prototype. | |
3924 | ||
3925 | 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> | |
3926 | ||
3927 | PR target/63250 | |
3928 | * config/arm/arm-builtins.c (arm_simd_floatHF_type_node): Rename to... | |
3929 | (arm_fp16_type_node): ...This, make visibile. | |
3930 | (arm_simd_builtin_std_type): Rename arm_simd_floatHF_type_node to | |
3931 | arm_fp16_type_node. | |
3932 | (arm_init_simd_builtin_types): Likewise. | |
3933 | (arm_init_fp16_builtins): Likewise. | |
3934 | * config/arm/arm.c (arm_excess_precision): New. | |
3935 | (arm_floatn_mode): Likewise. | |
3936 | (TARGET_C_EXCESS_PRECISION): Likewise. | |
3937 | (TARGET_FLOATN_MODE): Likewise. | |
3938 | (arm_promoted_type): Only promote arm_fp16_type_node. | |
3939 | * config/arm/arm.h (arm_fp16_type_node): Declare. | |
3940 | ||
3941 | 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> | |
3942 | ||
3943 | * config/arm/arm.c (arm_convert_to_type): Delete. | |
3944 | (TARGET_CONVERT_TO_TYPE): Delete. | |
3945 | (arm_init_libfuncs): Enable trunc_optab from DFmode to HFmode. | |
3946 | (arm_libcall_uses_aapcs_base): Add trunc_optab from DF- to HFmode. | |
3947 | * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): New. | |
3948 | * config/arm/arm.md (truncdfhf2): Only convert through SFmode if we | |
3949 | are in fast math mode, and have no single step hardware instruction. | |
3950 | (extendhfdf2): Only expand through SFmode if we don't have a | |
3951 | single-step hardware instruction. | |
3952 | * config/arm/vfp.md (*truncdfhf2): New. | |
3953 | (extendhfdf2): Likewise. | |
3954 | ||
3955 | 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> | |
3956 | ||
3957 | * targhooks.c (default_floatn_mode): Enable _Float16 if a target | |
3958 | provides HFmode. | |
3959 | ||
3960 | 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> | |
3961 | ||
3962 | * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Delete. | |
3963 | * config/m68k/m68k.h (TARGET_FLT_EVAL_METHOD): Delete. | |
3964 | * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Delete. | |
3965 | * defaults.h (TARGET_FLT_EVAL_METHOD): Delete. | |
3966 | * doc/tm.texi.in (TARGET_FLT_EVAL_METHOD): Delete. | |
3967 | * doc/tm.texi: Regenerate. | |
3968 | * system.h (TARGET_FLT_EVAL_METHOD): Poison. | |
3969 | ||
3970 | 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> | |
3971 | ||
3972 | * toplev.c (init_excess_precision): Delete most logic. | |
3973 | * tree.c (excess_precision_type): Rewrite to use | |
3974 | TARGET_EXCESS_PRECISION. | |
3975 | * doc/invoke.texi (-fexcess-precision): Document behaviour in a | |
3976 | more generic fashion. | |
3977 | * ginclude/float.h: Wrap definition of FLT_EVAL_METHOD in | |
3978 | __STDC_WANT_IEC_60559_TYPES_EXT__. | |
3979 | ||
3980 | 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> | |
3981 | ||
3982 | * common.opt (fpermitted-flt-eval-methods): New. | |
3983 | * doc/invoke.texi (-fpermitted-flt-eval-methods): Document it. | |
3984 | * flag_types.h (permitted_flt_eval_methods): New. | |
3985 | ||
3986 | 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> | |
3987 | ||
3988 | * config/m68k/m68k.c (m68k_excess_precision): New. | |
3989 | (TARGET_C_EXCESS_PRECISION): Define. | |
3990 | ||
3991 | 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> | |
3992 | ||
3993 | * config/s390/s390.c (s390_excess_precision): New. | |
3994 | (TARGET_C_EXCESS_PRECISION): Define. | |
3995 | ||
3996 | 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> | |
3997 | ||
3998 | * config/i386/i386.c (ix86_excess_precision): New. | |
3999 | (TARGET_C_EXCESS_PRECISION): Define. | |
4000 | ||
4001 | 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> | |
4002 | ||
4003 | * target.def (excess_precision): New hook. | |
4004 | * target.h (flt_eval_method): New. | |
4005 | (excess_precision_type): Likewise. | |
4006 | * targhooks.c (default_excess_precision): New. | |
4007 | * targhooks.h (default_excess_precision): New. | |
4008 | * doc/tm.texi.in (TARGET_C_EXCESS_PRECISION): New. | |
4009 | * doc/tm.texi: Regenerate. | |
4010 | ||
4011 | 2016-11-23 Martin Sebor <msebor@redhat.com> | |
4012 | ||
4013 | PR middle-end/78461 | |
4014 | * gimple-ssa-sprintf.c (format_string): Correct the maxima and | |
4015 | set the minimum number of bytes for an unknown string to zero. | |
4016 | ||
4017 | 2016-11-23 Martin Jambor <mjambor@suse.cz> | |
4018 | Martin Liska <mliska@suse.cz> | |
4019 | ||
4020 | * hsa-builtins.def: New file. | |
4021 | * Makefile.in (BUILTINS_DEF): Add hsa-builtins.def dependency. | |
4022 | * builtins.def: Include hsa-builtins.def. | |
4023 | (DEF_HSA_BUILTIN): New macro. | |
4024 | * dumpfile.h (OPTGROUP_OPENMP): Define. | |
4025 | * dumpfile.c (optgroup_options): Added OPTGROUP_OPENMP. | |
4026 | * gimple.h (gf_mask): Added elements GF_OMP_FOR_GRID_INTRA_GROUP and | |
4027 | GF_OMP_FOR_GRID_GROUP_ITER. | |
4028 | (gimple_omp_for_grid_phony): Added checking assert. | |
4029 | (gimple_omp_for_set_grid_phony): Likewise. | |
4030 | (gimple_omp_for_grid_intra_group): New function. | |
4031 | (gimple_omp_for_set_grid_intra_group): Likewise. | |
4032 | (gimple_omp_for_grid_group_iter): Likewise. | |
4033 | (gimple_omp_for_set_grid_group_iter): Likewise. | |
4034 | * omp-low.c (check_omp_nesting_restrictions): Allow GRID loop where | |
4035 | previosuly only distribute loop was permitted. | |
4036 | (lower_lastprivate_clauses): Allow non tcc_comparison predicates. | |
4037 | (grid_get_kernel_launch_attributes): Support multiple HSA grid | |
4038 | dimensions. | |
4039 | (grid_expand_omp_for_loop): Likewise and also support standalone | |
4040 | distribute constructs. New parameter INTRA_GROUP, updated both users. | |
4041 | (grid_expand_target_grid_body): Support standalone distribute | |
4042 | constructs. | |
4043 | (pass_data_expand_omp): Changed optinfo_flags to OPTGROUP_OPENMP. | |
4044 | (pass_data_expand_omp_ssa): Likewise. | |
4045 | (pass_data_omp_device_lower): Likewsie. | |
4046 | (pass_data_lower_omp): Likewise. | |
4047 | (pass_data_diagnose_omp_blocks): Likewise. | |
4048 | (pass_data_oacc_device_lower): Likewise. | |
4049 | (pass_data_omp_target_link): Likewise. | |
4050 | (grid_lastprivate_predicate): New function. | |
4051 | (lower_omp_for_lastprivate): Call grid_lastprivate_predicate for | |
4052 | gridified loops. | |
4053 | (lower_omp_for): Support standalone distribute constructs. | |
4054 | (grid_prop): New type. | |
4055 | (grid_safe_assignment_p): Check for assignments to group_sizes, new | |
4056 | parameter GRID. | |
4057 | (grid_seq_only_contains_local_assignments): New parameter GRID, pass | |
4058 | it to callee. | |
4059 | (grid_find_single_omp_among_assignments_1): Likewise, improve missed | |
4060 | optimization info messages. | |
4061 | (grid_find_single_omp_among_assignments): Likewise. | |
4062 | (grid_find_ungridifiable_statement): Do not bail out for SIMDs. | |
4063 | (grid_parallel_clauses_gridifiable): New function. | |
4064 | (grid_inner_loop_gridifiable_p): Likewise. | |
4065 | (grid_dist_follows_simple_pattern): Likewise. | |
4066 | (grid_gfor_follows_tiling_pattern): Likewise. | |
4067 | (grid_call_permissible_in_distribute_p): Likewise. | |
4068 | (grid_handle_call_in_distribute): Likewise. | |
4069 | (grid_dist_follows_tiling_pattern): Likewise. | |
4070 | (grid_target_follows_gridifiable_pattern): Support standalone | |
4071 | distribute constructs. | |
4072 | (grid_var_segment): New enum. | |
4073 | (grid_mark_variable_segment): New function. | |
4074 | (grid_copy_leading_local_assignments): Call grid_mark_variable_segment | |
4075 | if a new argument says so. | |
4076 | (grid_process_grid_body): New function. | |
4077 | (grid_eliminate_combined_simd_part): Likewise. | |
4078 | (grid_mark_tiling_loops): Likewise. | |
4079 | (grid_mark_tiling_parallels_and_loops): Likewise. | |
4080 | (grid_process_kernel_body_copy): Support standalone distribute | |
4081 | constructs. | |
4082 | (grid_attempt_target_gridification): New grid variable holding overall | |
4083 | gridification state. Support standalone distribute constructs and | |
4084 | collapse clauses. | |
4085 | * doc/optinfo.texi (Optimization groups): Document OPTGROUP_OPENMP. | |
4086 | * hsa.h (hsa_bb): Add method method append_phi. | |
4087 | (hsa_insn_br): Renamed to hsa_insn_cbr, renamed all | |
4088 | occurences in all files too. | |
4089 | (hsa_insn_br): New class, now the ancestor of hsa_incn_cbr. | |
4090 | (is_a_helper <hsa_insn_br *>::test): New function. | |
4091 | (is_a_helper <hsa_insn_cbr *>::test): Adjust to only cover conditional | |
4092 | branch instructions. | |
4093 | (hsa_insn_signal): Make a direct descendant of | |
4094 | hsa_insn_basic. Add memorder constructor parameter and | |
4095 | m_memory_order and m_signalop member variables. | |
4096 | (hsa_insn_queue): Changed constructor parameters to common form. | |
4097 | Added m_segment and m_memory_order member variables. | |
4098 | (hsa_summary_t): Add private member function | |
4099 | process_gpu_implementation_attributes. | |
4100 | (hsa_function_summary): Rename m_binded_function to | |
4101 | m_bound_function. | |
4102 | (hsa_insn_basic_p): Remove typedef. | |
4103 | (hsa_op_with_type): Change hsa_insn_basic_p into plain pointers. | |
4104 | (hsa_op_reg_p): Remove typedef. | |
4105 | (hsa_function_representation): Change hsa_op_reg_p into plain | |
4106 | pointers. | |
4107 | (hsa_insn_phi): Removed new and delete operators. | |
4108 | (hsa_insn_br): Likewise. | |
4109 | (hsa_insn_cbr): Likewise. | |
4110 | (hsa_insn_sbr): Likewise. | |
4111 | (hsa_insn_cmp): Likewise. | |
4112 | (hsa_insn_mem): Likewise. | |
4113 | (hsa_insn_atomic): Likewise. | |
4114 | (hsa_insn_signal): Likewise. | |
4115 | (hsa_insn_seg): Likewise. | |
4116 | (hsa_insn_call): Likewise. | |
4117 | (hsa_insn_arg_block): Likewise. | |
4118 | (hsa_insn_comment): Likewise. | |
4119 | (hsa_insn_srctype): Likewise. | |
4120 | (hsa_insn_packed): Likewise. | |
4121 | (hsa_insn_cvt): Likewise. | |
4122 | (hsa_insn_alloca): Likewise. | |
4123 | * hsa.c (hsa_destroy_insn): Also handle instances of hsa_insn_br. | |
4124 | (process_gpu_implementation_attributes): New function. | |
4125 | (link_functions): Move some functionality into it. Adjust after | |
4126 | renaming m_binded_functions to m_bound_functions. | |
4127 | (hsa_insn_basic::op_output_p): Add BRIG_OPCODE_DEBUGTRAP | |
4128 | to the list of instructions with no output registers. | |
4129 | (get_in_type): Return this if it is a register of | |
4130 | matching size. | |
4131 | (hsa_get_declaration_name): Moved to... | |
4132 | * hsa-gen.c (hsa_get_declaration_name): ...here. Allocate | |
4133 | temporary string on an obstack instead from ggc. | |
4134 | (query_hsa_grid): Renamed to query_hsa_grid_dim, reimplemented, cut | |
4135 | down to two overloads. | |
4136 | (hsa_allocp_operand_address): Removed. | |
4137 | (hsa_allocp_operand_immed): Likewise. | |
4138 | (hsa_allocp_operand_reg): Likewise. | |
4139 | (hsa_allocp_operand_code_list): Likewise. | |
4140 | (hsa_allocp_operand_operand_list): Likewise. | |
4141 | (hsa_allocp_inst_basic): Likewise. | |
4142 | (hsa_allocp_inst_phi): Likewise. | |
4143 | (hsa_allocp_inst_mem): Likewise. | |
4144 | (hsa_allocp_inst_atomic): Likewise. | |
4145 | (hsa_allocp_inst_signal): Likewise. | |
4146 | (hsa_allocp_inst_seg): Likewise. | |
4147 | (hsa_allocp_inst_cmp): Likewise. | |
4148 | (hsa_allocp_inst_br): Likewise. | |
4149 | (hsa_allocp_inst_sbr): Likewise. | |
4150 | (hsa_allocp_inst_call): Likewise. | |
4151 | (hsa_allocp_inst_arg_block): Likewise. | |
4152 | (hsa_allocp_inst_comment): Likewise. | |
4153 | (hsa_allocp_inst_queue): Likewise. | |
4154 | (hsa_allocp_inst_srctype): Likewise. | |
4155 | (hsa_allocp_inst_packed): Likewise. | |
4156 | (hsa_allocp_inst_cvt): Likewise. | |
4157 | (hsa_allocp_inst_alloca): Likewise. | |
4158 | (hsa_allocp_bb): Likewise. | |
4159 | (hsa_obstack): New. | |
4160 | (hsa_init_data_for_cfun): Initialize obstack. | |
4161 | (hsa_deinit_data_for_cfun): Release memory of the obstack. | |
4162 | (hsa_op_immed::operator new): Use obstack instead of object_allocator. | |
4163 | (hsa_op_reg::operator new): Likewise. | |
4164 | (hsa_op_address::operator new): Likewise. | |
4165 | (hsa_op_code_list::operator new): Likewise. | |
4166 | (hsa_op_operand_list::operator new): Likewise. | |
4167 | (hsa_insn_basic::operator new): Likewise. | |
4168 | (hsa_insn_phi::operator new): Likewise. | |
4169 | (hsa_insn_br::operator new): Likewise. | |
4170 | (hsa_insn_sbr::operator new): Likewise. | |
4171 | (hsa_insn_cmp::operator new): Likewise. | |
4172 | (hsa_insn_mem::operator new): Likewise. | |
4173 | (hsa_insn_atomic::operator new): Likewise. | |
4174 | (hsa_insn_signal::operator new): Likewise. | |
4175 | (hsa_insn_seg::operator new): Likewise. | |
4176 | (hsa_insn_call::operator new): Likewise. | |
4177 | (hsa_insn_arg_block::operator new): Likewise. | |
4178 | (hsa_insn_comment::operator new): Likewise. | |
4179 | (hsa_insn_srctype::operator new): Likewise. | |
4180 | (hsa_insn_packed::operator new): Likewise. | |
4181 | (hsa_insn_cvt::operator new): Likewise. | |
4182 | (hsa_insn_alloca::operator new): Likewise. | |
4183 | (hsa_init_new_bb): Likewise. | |
4184 | (hsa_bb::append_phi): New function. | |
4185 | (gen_hsa_phi_from_gimple_phi): Use it. | |
4186 | (get_symbol_for_decl): Fix dinstinguishing between | |
4187 | global and local functions. Put local variables into a segment | |
4188 | according to their attribute or static flag, if there is one. | |
4189 | (hsa_insn_br::hsa_insn_br): New. | |
4190 | (hsa_insn_br::operator new): Likewise. | |
4191 | (hsa_insn_cbr::hsa_insn_cbr): Set width via ancestor constructor. | |
4192 | (query_hsa_grid_nodim): New function. | |
4193 | (multiply_grid_dim_characteristics): Likewise. | |
4194 | (gen_get_num_threads): Likewise. | |
4195 | (gen_get_num_teams): Reimplemented. | |
4196 | (gen_get_team_num): Likewise. | |
4197 | (gen_hsa_insns_for_known_library_call): Updated calls to the above | |
4198 | helper functions. | |
4199 | (get_memory_order_name): Removed. | |
4200 | (get_memory_order): Likewise. | |
4201 | (hsa_memorder_from_tree): New function. | |
4202 | (gen_hsa_ternary_atomic_for_builtin): Renamed to | |
4203 | gen_hsa_atomic_for_builtin, can also create signals. | |
4204 | (gen_hsa_insns_for_call): Handle many new builtins. Adjust to use | |
4205 | hsa_memory_order_from_tree and gen_hsa_atomic_for_builtin. | |
4206 | (hsa_insn_atomic): Fix function comment. | |
4207 | (hsa_insn_signal::hsa_insn_signal): Fix comment. Update call to | |
4208 | ancestor constructor and initialization of new member variables. | |
4209 | (hsa_insn_queue::hsa_insn_queue): Added initialization of new | |
4210 | member variables. | |
4211 | (hsa_get_host_function): Handle functions with no bound CPU | |
4212 | implementation. Fix binded to bound. | |
4213 | (get_brig_function_name): Likewise. | |
4214 | (HSA_SORRY_ATV): Remove semicolon after macro. | |
4215 | (HSA_SORRY_AT): Likewise. | |
4216 | (omp_simple_builtin::generate): Add missing semicolons. | |
4217 | (hsa_insn_phi::operator new): Removed. | |
4218 | (hsa_insn_br::operator new): Likewise. | |
4219 | (hsa_insn_cbr::operator new): Likewise. | |
4220 | (hsa_insn_sbr::operator new): Likewise. | |
4221 | (hsa_insn_cmp::operator new): Likewise. | |
4222 | (hsa_insn_mem::operator new): Likewise. | |
4223 | (hsa_insn_atomic::operator new): Likewise. | |
4224 | (hsa_insn_signal::operator new): Likewise. | |
4225 | (hsa_insn_seg::operator new): Likewise. | |
4226 | (hsa_insn_call::operator new): Likewise. | |
4227 | (hsa_insn_arg_block::operator new): Likewise. | |
4228 | (hsa_insn_comment::operator new): Likewise. | |
4229 | (hsa_insn_srctype::operator new): Likewise. | |
4230 | (hsa_insn_packed::operator new): Likewise. | |
4231 | (hsa_insn_cvt::operator new): Likewise. | |
4232 | (hsa_insn_alloca::operator new): Likewise. | |
4233 | (get_symbol_for_decl): Accept CONST_DECLs, put them to | |
4234 | readonly segment. | |
4235 | (gen_hsa_addr): Also process CONST_DECLs. | |
4236 | (gen_hsa_addr_insns): Process CONST_DECLs by creating private | |
4237 | copies. | |
4238 | (gen_hsa_unary_operation): Make sure the function does | |
4239 | not use bittype source type for firstbit and lastbit operations. | |
4240 | (gen_hsa_popcount_to_dest): Make sure the function uses a bittype | |
4241 | source type. | |
4242 | * hsa-brig.c (emit_insn_operands): Cope with zero operands in an | |
4243 | instruction. | |
4244 | (emit_branch_insn): Renamed to emit_cond_branch_insn. | |
4245 | Emit the width stored in the class. | |
4246 | (emit_generic_branch_insn): New function. | |
4247 | (emit_insn): Call emit_generic_branch_insn. | |
4248 | (emit_signal_insn): Remove obsolete comment. Update | |
4249 | member variable name, pick a type according to profile. | |
4250 | (emit_alloca_insn): Remove obsolete comment. | |
4251 | (emit_atomic_insn): Likewise. | |
4252 | (emit_queue_insn): Get segment and memory order from the IR object. | |
4253 | (hsa_brig_section): Make allocate_new_chunk, chunks | |
4254 | and cur_chunk provate, add a default NULL parameter to add method. | |
4255 | (hsa_brig_section::add): Added a new parameter, store pointer to | |
4256 | output data there if it is non-NULL. | |
4257 | (emit_function_directives): Use this new parameter instead of | |
4258 | calculating the pointer itself, fix function comment. | |
4259 | (hsa_brig_emit_function): Add forgotten endian conversion. | |
4260 | (hsa_output_kernels): Remove unnecessary building of | |
4261 | kernel_dependencies_vector_type. | |
4262 | (emit_immediate_operand): Declare. | |
4263 | (emit_directive_variable): Also emit initializers of CONST_DECLs. | |
4264 | (gen_hsa_insn_for_internal_fn_call): Also handle IFN_RSQRT. | |
4265 | (verify_function_arguments): Properly detect variadic | |
4266 | arguments. | |
4267 | * hsa-dump.c (hsa_width_specifier_name): New function. | |
4268 | (dump_hsa_insn_1): Dump generic branch instructions, update signal | |
4269 | member variable name. Special dumping for queue objects. | |
4270 | * ipa-hsa.c (process_hsa_functions): Adjust after renaming | |
4271 | m_binded_functions to m_bound_functions. Copy externally visible flag | |
4272 | to the node. | |
4273 | (ipa_hsa_write_summary): Likewise. | |
4274 | (ipa_hsa_read_section): Likewise. | |
4275 | ||
4276 | 2016-11-23 Richard Biener <rguenther@suse.de> | |
4277 | ||
4278 | PR tree-optimization/78396 | |
4279 | * tree-vectorizer.c (vectorize_loops): If an innermost loop didn't | |
4280 | vectorize try vectorizing an if-converted body using BB vectorization. | |
4281 | ||
4282 | 2016-11-23 Richard Sandiford <richard.sandiford@arm.com> | |
4283 | Alan Hayward <alan.hayward@arm.com> | |
4284 | David Sherwood <david.sherwood@arm.com> | |
4285 | ||
4286 | * rtlanal.c (subreg_get_info): Use more local variables. | |
4287 | Remark that for HARD_REGNO_NREGS_HAS_PADDING, each scalar unit | |
4288 | occupies at least one register. Assume that full hard registers | |
4289 | have consistent endianness. Share previously-duplicated if block. | |
4290 | Rework the main handling so that it operates on independently- | |
4291 | addressable YMODE-sized blocks. Use subreg_size_lowpart_offset | |
4292 | to check lowpart offsets, without trying to find an equivalent | |
4293 | integer mode first. Handle WORDS_BIG_ENDIAN != REG_WORDS_BIG_ENDIAN | |
4294 | as a final register-endianness correction. | |
4295 | ||
4296 | 2016-11-23 Segher Boessenkool <segher@kernel.crashing.org> | |
4297 | ||
4298 | PR target/77881 | |
4299 | PR bootstrap/78390 | |
4300 | PR target/78438 | |
4301 | PR bootstrap/78477 | |
4302 | * combine.c (make_compound_operation_int): Do not convert a subreg of | |
4303 | a non-constant logical shift right to a zero_extract. Handle the case | |
4304 | where some zero bits have been shifted into the range covered by that | |
4305 | subreg. | |
4306 | ||
4307 | 2016-11-23 Richard Sandiford <richard.sandiford@arm.com> | |
4308 | Alan Hayward <alan.hayward@arm.com> | |
4309 | David Sherwood <david.sherwood@arm.com> | |
4310 | ||
4311 | * rtl.h (subreg_size_offset_from_lsb): Declare. | |
4312 | (subreg_offset_from_lsb): New function. | |
4313 | (subreg_size_lowpart_offset): Declare. | |
4314 | (subreg_lowpart_offset): Turn into an inline function. | |
4315 | (subreg_size_highpart_offset): Declare. | |
4316 | (subreg_highpart_offset): Turn into an inline function. | |
4317 | * emit-rtl.c (subreg_size_lowpart_offset): New function. | |
4318 | (subreg_size_highpart_offset): Likewise | |
4319 | * rtlanal.c (subreg_size_offset_from_lsb): Likewise. | |
4320 | ||
4321 | 2016-11-23 Richard Biener <rguenther@suse.de> | |
4322 | ||
4323 | PR tree-optimization/78482 | |
4324 | * tree-cfgcleanup.c: Include tree-ssa-loop-niter.h. | |
4325 | (remove_forwarder_block_with_phi): When merging with a loop | |
4326 | header creates a new latch reset number of iteration information | |
4327 | of the loop. | |
4328 | ||
4329 | 2016-11-23 Eric Botcazou <ebotcazou@adacore.com> | |
4330 | ||
4331 | * config/sparc/sparc.md (*ashrsi3_extend): Rename to... | |
4332 | (*ashrsi3_extend0): ...this. Accept constant integers. | |
4333 | (*ashrsi3_extend2): Rename to... | |
4334 | (*ashrsi3_extend1): ...this. | |
4335 | (*ashrsi3_extend2): New pattern. | |
4336 | (*lshrsi3_extend1): Accept constant integers. | |
4337 | (*lshrsi3_extend2): Fix condition on operand 2. | |
4338 | ||
4339 | 2016-11-23 Martin Liska <mliska@suse.cz> | |
4340 | ||
4341 | * config/i386/i386.c: Initialize function pointer to NULL. | |
4342 | ||
4343 | 2016-11-23 Bin Cheng <bin.cheng@arm.com> | |
4344 | ||
4345 | * fold-const.c (fold_cond_expr_with_comparison): Move simplification | |
4346 | for A == C1 ? A : C2 to below. | |
4347 | * match.pd: Move from above to here: | |
4348 | (cond (eq (convert1? x) c1) (convert2? x) c2) | |
4349 | -> (cond (eq x c1) c1 c2). | |
4350 | ||
4351 | 2016-11-23 Bin Cheng <bin.cheng@arm.com> | |
4352 | ||
4353 | * fold-const.c (fold_cond_expr_with_comparison): Move simplification | |
4354 | for A cmp C1 ? A : C2 to below, also simplify remaining code. | |
4355 | * match.pd: Move and extend simplification from above to here: | |
4356 | (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)). | |
4357 | * tree-if-conv.c (ifcvt_follow_ssa_use_edges): New func. | |
4358 | (predicate_scalar_phi): Call fold_stmt using the new valueize func. | |
4359 | ||
4360 | 2016-11-23 Martin Liska <mliska@suse.cz> | |
4361 | Martin Jambor <mjambor@suse.cz> | |
4362 | ||
4363 | * doc/install.texi: Remove entry about --with-hsa-kmt-lib. | |
4364 | ||
4365 | 2016-11-23 Aldy Hernandez <aldyh@redhat.com> | |
4366 | ||
4367 | PR target/78213 | |
4368 | * opts.c (finish_options): Set -fsyntax-only if running self tests. | |
4369 | ||
4370 | 2016-11-23 Richard Biener <rguenther@suse.de> | |
4371 | ||
4372 | PR middle-end/71762 | |
4373 | * match.pd ((~X & Y) -> X < Y, (X & ~Y) -> Y < X, | |
4374 | (~X | Y) -> X <= Y, (X | ~Y) -> Y <= X): Remove. | |
4375 | ||
4376 | 2016-11-23 Richard Biener <rguenther@suse.de> | |
4377 | ||
4378 | PR lto/78472 | |
4379 | * tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized | |
4380 | fields. | |
4381 | ||
4382 | 2016-11-23 Richard Biener <rguenther@suse.de> | |
4383 | Prathamesh Kulkarni <prathamesh.kulkarni@linaro.rog> | |
4384 | ||
4385 | PR tree-optimization/78154 | |
4386 | * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Return true if function | |
4387 | returns it's argument and the argument is nonnull. | |
4388 | * builtin-attrs.def: Define ATTR_RETURNS_NONNULL, | |
4389 | ATT_RETNONNULL_NOTHROW_LEAF. | |
4390 | * builtins.def (BUILT_IN_MEMPCPY): Change attribute to | |
4391 | ATTR_RETNONNULL_NOTHROW_LEAF. | |
4392 | (BUILT_IN_STPCPY): Likewise. | |
4393 | (BUILT_IN_STPNCPY): Likewise. | |
4394 | (BUILT_IN_MEMPCPY_CHK): Likewise. | |
4395 | (BUILT_IN_STPCPY_CHK): Likewise. | |
4396 | (BUILT_IN_STPNCPY_CHK): Likewise. | |
4397 | (BUILT_IN_STRCAT): Change attribute to ATTR_RET1_NOTHROW_NONNULL_LEAF. | |
4398 | (BUILT_IN_STRNCAT): Likewise. | |
4399 | (BUILT_IN_STRNCPY): Likewise. | |
4400 | (BUILT_IN_MEMSET_CHK): Likewise. | |
4401 | (BUILT_IN_STRCAT_CHK): Likewise. | |
4402 | (BUILT_IN_STRCPY_CHK): Likewise. | |
4403 | (BUILT_IN_STRNCAT_CHK): Likewise. | |
4404 | (BUILT_IN_STRNCPY_CHK): Likewise. | |
4405 | ||
4406 | 2016-11-23 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> | |
4407 | ||
4408 | * fold-const.c (tree_expr_nonzero_p) : Make non-static. | |
4409 | * fold-const.h (tree_expr_nonzero_p) : Declare. | |
4410 | * match.pd (cmp (mult:c @0 @1) (mult:c @2 @1) : New Pattern. | |
4411 | ||
4412 | 2016-11-23 Paolo Bonzini <bonzini@gnu.org> | |
4413 | ||
4414 | * system.h (HAVE_DESIGNATED_INITIALIZERS, | |
4415 | HAVE_DESIGNATED_UNION_INITIALIZERS): Do not use | |
4416 | "defined" in macros. | |
4417 | * doc/cpp.texi (Defined): Mention -Wexpansion-to-defined. | |
4418 | * doc/cppopts.texi (Invocation): Document -Wexpansion-to-defined. | |
4419 | * doc/invoke.texi (Warning Options): Document -Wexpansion-to-defined. | |
4420 | ||
4421 | 2016-11-23 Georg-Johann Lay <avr@gjlay.de> | |
4422 | ||
4423 | PR target/60300 | |
4424 | * config/avr/constraints.md (Csp): Widen range to [-11..6]. | |
4425 | * config/avr/avr.c (avr_prologue_setup_frame): Limit number | |
4426 | of RCALLs in prologue to 3. | |
4427 | ||
4428 | 2016-11-22 Michael Collison <michael.collison@arm.com> | |
4429 | ||
4430 | * config/aarch64/aarch64-protos.h | |
4431 | (aarch64_and_split_imm1, aarch64_and_split_imm2) | |
4432 | (aarch64_and_bitmask_imm): New prototypes | |
4433 | * config/aarch64/aarch64.c (aarch64_and_split_imm1): | |
4434 | New overloaded function to create bit mask covering the | |
4435 | lowest to highest bits set. | |
4436 | (aarch64_and_split_imm2): New overloaded functions to create bit | |
4437 | mask of zeros between first and last bit set. | |
4438 | (aarch64_and_bitmask_imm): New function to determine if a integer | |
4439 | is a valid two instruction "and" operation. | |
4440 | * config/aarch64/aarch64.md:(and<mode>3): New define_insn and _split | |
4441 | allowing wider range of constants with "and" operations. | |
4442 | * (ior<mode>3, xor<mode>3): Use new LOGICAL2 iterator to prevent | |
4443 | "and" operator from matching restricted constant range used for | |
4444 | ior and xor operators. | |
4445 | * config/aarch64/constraints.md (UsO constraint): New SImode constraint | |
4446 | for constants in "and" operantions. | |
4447 | (UsP constraint): New DImode constraint for constants | |
4448 | in "and" operations. | |
4449 | * config/aarch64/iterators.md (lconst2): New mode iterator. | |
4450 | (LOGICAL2): New code iterator. | |
4451 | * config/aarch64/predicates.md (aarch64_logical_and_immediate): New | |
4452 | predicate. | |
4453 | (aarch64_logical_and_operand): New predicate allowing extended | |
4454 | constants for "and" operations. | |
4455 | ||
4456 | 2016-11-22 Walter Lee <walt@tilera.com> | |
4457 | ||
4458 | * config/tilegx/tilegx.md (trap): New pattern. | |
4459 | * config/tilepro/tilepro.md (trap): Likewise. | |
4460 | ||
4461 | 2016-11-22 Walter Lee <walt@tilera.com> | |
4462 | ||
4463 | * config/tilegx/tilegx.md (*zero_extract): Use | |
4464 | define_insn_and_split instead of define_insn; Handle pos + size > | |
4465 | 64. | |
4466 | (*sign_extract): Likewise. | |
4467 | ||
4468 | 2016-11-22 Marek Polacek <polacek@redhat.com> | |
4469 | ||
4470 | PR tree-optimization/78455 | |
4471 | * tree-ssa-uninit.c (can_chain_union_be_invalidated_p): Fix typo. | |
4472 | ||
4473 | 2016-11-22 Ian Lance Taylor <iant@golang.org> | |
4474 | ||
4475 | PR go/78431 | |
4476 | PR go/78432 | |
4477 | * godump.c (go_format_type): Always pass alignment as 1 when | |
4478 | calling go_append_padding at end of struct/union. | |
4479 | ||
4480 | 2016-11-22 Jakub Jelinek <jakub@redhat.com> | |
4481 | ||
4482 | PR target/78451 | |
4483 | * config/i386/avx512bwintrin.h (_mm512_setzero_qi, | |
4484 | _mm512_setzero_hi): Removed. | |
4485 | (_mm512_maskz_mov_epi16, _mm512_maskz_loadu_epi16, | |
4486 | _mm512_maskz_mov_epi8, _mm512_maskz_loadu_epi8, | |
4487 | _mm512_maskz_broadcastb_epi8, _mm512_maskz_set1_epi8, | |
4488 | _mm512_maskz_broadcastw_epi16, _mm512_maskz_set1_epi16, | |
4489 | _mm512_mulhrs_epi16, _mm512_maskz_mulhrs_epi16, _mm512_mulhi_epi16, | |
4490 | _mm512_maskz_mulhi_epi16, _mm512_mulhi_epu16, | |
4491 | _mm512_maskz_mulhi_epu16, _mm512_maskz_mullo_epi16, | |
4492 | _mm512_cvtepi8_epi16, _mm512_maskz_cvtepi8_epi16, _mm512_cvtepu8_epi16, | |
4493 | _mm512_maskz_cvtepu8_epi16, _mm512_permutexvar_epi16, | |
4494 | _mm512_maskz_permutexvar_epi16, _mm512_avg_epu8, _mm512_maskz_avg_epu8, | |
4495 | _mm512_maskz_add_epi8, _mm512_maskz_sub_epi8, _mm512_avg_epu16, | |
4496 | _mm512_maskz_avg_epu16, _mm512_subs_epi8, _mm512_maskz_subs_epi8, | |
4497 | _mm512_subs_epu8, _mm512_maskz_subs_epu8, _mm512_adds_epi8, | |
4498 | _mm512_maskz_adds_epi8, _mm512_adds_epu8, _mm512_maskz_adds_epu8, | |
4499 | _mm512_maskz_sub_epi16, _mm512_subs_epi16, _mm512_maskz_subs_epi16, | |
4500 | _mm512_subs_epu16, _mm512_maskz_subs_epu16, _mm512_maskz_add_epi16, | |
4501 | _mm512_adds_epi16, _mm512_maskz_adds_epi16, _mm512_adds_epu16, | |
4502 | _mm512_maskz_adds_epu16, _mm512_srl_epi16, _mm512_maskz_srl_epi16, | |
4503 | _mm512_packs_epi16, _mm512_sll_epi16, _mm512_maskz_sll_epi16, | |
4504 | _mm512_maddubs_epi16, _mm512_maskz_maddubs_epi16, _mm512_unpackhi_epi8, | |
4505 | _mm512_maskz_unpackhi_epi8, _mm512_unpackhi_epi16, | |
4506 | _mm512_maskz_unpackhi_epi16, _mm512_unpacklo_epi8, | |
4507 | _mm512_maskz_unpacklo_epi8, _mm512_unpacklo_epi16, | |
4508 | _mm512_maskz_unpacklo_epi16, _mm512_shuffle_epi8, | |
4509 | _mm512_maskz_shuffle_epi8, _mm512_min_epu16, _mm512_maskz_min_epu16, | |
4510 | _mm512_min_epi16, _mm512_maskz_min_epi16, _mm512_max_epu8, | |
4511 | _mm512_maskz_max_epu8, _mm512_max_epi8, _mm512_maskz_max_epi8, | |
4512 | _mm512_min_epu8, _mm512_maskz_min_epu8, _mm512_min_epi8, | |
4513 | _mm512_maskz_min_epi8, _mm512_max_epi16, _mm512_maskz_max_epi16, | |
4514 | _mm512_max_epu16, _mm512_maskz_max_epu16, _mm512_sra_epi16, | |
4515 | _mm512_maskz_sra_epi16, _mm512_srav_epi16, _mm512_maskz_srav_epi16, | |
4516 | _mm512_srlv_epi16, _mm512_maskz_srlv_epi16, _mm512_sllv_epi16, | |
4517 | _mm512_maskz_sllv_epi16, _mm512_maskz_packs_epi16, _mm512_packus_epi16, | |
4518 | _mm512_maskz_packus_epi16, _mm512_abs_epi8, _mm512_maskz_abs_epi8, | |
4519 | _mm512_abs_epi16, _mm512_maskz_abs_epi16, _mm512_dbsad_epu8, | |
4520 | _mm512_maskz_dbsad_epu8, _mm512_srli_epi16, _mm512_maskz_srli_epi16, | |
4521 | _mm512_slli_epi16, _mm512_maskz_slli_epi16, _mm512_shufflehi_epi16, | |
4522 | _mm512_maskz_shufflehi_epi16, _mm512_shufflelo_epi16, | |
4523 | _mm512_maskz_shufflelo_epi16, _mm512_srai_epi16, | |
4524 | _mm512_maskz_srai_epi16, _mm512_packs_epi32, | |
4525 | _mm512_maskz_packs_epi32, _mm512_packus_epi32, | |
4526 | _mm512_maskz_packus_epi32): Use _mm512_setzero_si512 instead of | |
4527 | _mm512_setzero_qi or _mm512_setzero_hi. | |
4528 | (_mm512_maskz_alignr_epi8, _mm512_dbsad_epu8, | |
4529 | _mm512_maskz_dbsad_epu8): Formatting fixes. | |
4530 | (_mm512_srli_epi16, _mm512_maskz_srli_epi16, _mm512_slli_epi16, | |
4531 | _mm512_maskz_slli_epi16, _mm512_shufflehi_epi16, | |
4532 | _mm512_maskz_shufflehi_epi16, _mm512_shufflelo_epi16, | |
4533 | _mm512_maskz_shufflelo_epi16, _mm512_srai_epi16, | |
4534 | _mm512_maskz_srai_epi16): Use _mm512_setzero_si512 instead of | |
4535 | _mm512_setzero_qi or _mm512_setzero_hi. | |
4536 | ||
4537 | 2016-11-22 Nathan Sidwell <nathan@acm.org> | |
4538 | ||
4539 | * gcc-ar.c (main): Fix indentation. | |
4540 | * gcov-io.c (gcov_write_summary): Remove extraneous {...} | |
4541 | * ggc-page.c (move_ptes_to_front): Fix formatting. | |
4542 | * hsa-dump.c (dump_has_cfun): Fix indentation. | |
4543 | * sel-sched-ir.h: Remove trailing blank lines. | |
4544 | ||
4545 | 2016-11-22 Jakub Jelinek <jakub@redhat.com> | |
4546 | Alexander Monakov <amonakov@ispras.ru> | |
4547 | ||
4548 | * internal-fn.c (expand_GOMP_USE_SIMT): New function. | |
4549 | * tree.c (omp_clause_num_ops): OMP_CLAUSE__SIMT_ has 0 operands. | |
4550 | (omp_clause_code_name): Add _simt_ name. | |
4551 | (walk_tree_1): Handle OMP_CLAUSE__SIMT_. | |
4552 | * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SIMT_. | |
4553 | * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__SIMT_. | |
4554 | (scan_omp_simd): New function. | |
4555 | (scan_omp_1_stmt): Use it in target regions if needed. | |
4556 | (omp_max_vf): Don't max with omp_max_simt_vf. | |
4557 | (lower_rec_simd_input_clauses): Use omp_max_simt_vf if | |
4558 | OMP_CLAUSE__SIMT_ is present. | |
4559 | (lower_rec_input_clauses): Compute maybe_simt from presence of | |
4560 | OMP_CLAUSE__SIMT_. | |
4561 | (lower_lastprivate_clauses): Likewise. | |
4562 | (expand_omp_simd): Likewise. Remove explicit offloaded region check. | |
4563 | (execute_omp_device_lower): Lower IFN_GOMP_USE_SIMT. | |
4564 | * internal-fn.def (GOMP_USE_SIMT): New internal function. | |
4565 | * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__SIMT_. | |
4566 | ||
4567 | 2016-11-22 Alexander Monakov <amonakov@ispras.ru> | |
4568 | ||
4569 | * internal-fn.c (expand_GOMP_SIMT_LANE): New. | |
4570 | (expand_GOMP_SIMT_VF): New. | |
4571 | (expand_GOMP_SIMT_LAST_LANE): New. | |
4572 | (expand_GOMP_SIMT_ORDERED_PRED): New. | |
4573 | (expand_GOMP_SIMT_VOTE_ANY): New. | |
4574 | (expand_GOMP_SIMT_XCHG_BFLY): New. | |
4575 | (expand_GOMP_SIMT_XCHG_IDX): New. | |
4576 | * internal-fn.def (GOMP_SIMT_LANE): New. | |
4577 | (GOMP_SIMT_VF): New. | |
4578 | (GOMP_SIMT_LAST_LANE): New. | |
4579 | (GOMP_SIMT_ORDERED_PRED): New. | |
4580 | (GOMP_SIMT_VOTE_ANY): New. | |
4581 | (GOMP_SIMT_XCHG_BFLY): New. | |
4582 | (GOMP_SIMT_XCHG_IDX): New. | |
4583 | * omp-low.c (omp_maybe_offloaded_ctx): New, outlined from... | |
4584 | (create_omp_child_function): ...here. Set "omp target entrypoint" | |
4585 | or "omp declare target" attribute based on is_gimple_omp_offloaded. | |
4586 | (omp_max_simt_vf): New. Use it... | |
4587 | (omp_max_vf): ...here. | |
4588 | (lower_rec_input_clauses): Add reduction lowering for SIMT execution. | |
4589 | (lower_lastprivate_clauses): Likewise, for "lastprivate" lowering. | |
4590 | (lower_omp_ordered): Likewise, for "ordered" lowering. | |
4591 | (expand_omp_simd): Add SIMT transforms. | |
4592 | (pass_data_lower_omp): Add PROP_gimple_lomp_dev. | |
4593 | (execute_omp_device_lower): New. | |
4594 | (pass_data_omp_device_lower): New. | |
4595 | (pass_omp_device_lower): New pass. | |
4596 | (make_pass_omp_device_lower): New. | |
4597 | * passes.def (pass_omp_device_lower): Position new pass. | |
4598 | * tree-pass.h (PROP_gimple_lomp_dev): Define. | |
4599 | (make_pass_omp_device_lower): Declare. | |
4600 | ||
4601 | 2016-11-22 Jakub Jelinek <jakub@redhat.com> | |
4602 | ||
4603 | PR target/78451 | |
4604 | * config/i386/avx512vlintrin.h (_mm_setzero_di): Removed. | |
4605 | (_mm_maskz_mov_epi64): Use _mm_setzero_si128 instead of | |
4606 | _mm_setzero_di. | |
4607 | (_mm_maskz_load_epi64): Likewise. | |
4608 | (_mm_setzero_hi): Removed. | |
4609 | (_mm_maskz_loadu_epi64): Use _mm_setzero_si128 instead of | |
4610 | _mm_setzero_di. | |
4611 | (_mm_abs_epi64, _mm_maskz_abs_epi64, _mm_maskz_srl_epi64, | |
4612 | _mm_maskz_unpackhi_epi64, _mm_maskz_unpacklo_epi64, | |
4613 | _mm_maskz_compress_epi64, _mm_srav_epi64, _mm_maskz_srav_epi64, | |
4614 | _mm_maskz_sllv_epi64, _mm_maskz_srlv_epi64, _mm_rolv_epi64, | |
4615 | _mm_maskz_rolv_epi64, _mm_rorv_epi64, _mm_maskz_rorv_epi64, | |
4616 | _mm_min_epi64, _mm_max_epi64, _mm_max_epu64, _mm_min_epu64, | |
4617 | _mm_lzcnt_epi64, _mm_maskz_lzcnt_epi64, _mm_conflict_epi64, | |
4618 | _mm_maskz_conflict_epi64, _mm_sra_epi64, _mm_maskz_sra_epi64, | |
4619 | _mm_maskz_sll_epi64, _mm_rol_epi64, _mm_maskz_rol_epi64, | |
4620 | _mm_ror_epi64, _mm_maskz_ror_epi64, _mm_alignr_epi64, | |
4621 | _mm_maskz_alignr_epi64, _mm_srai_epi64, _mm_maskz_slli_epi64): | |
4622 | Likewise. | |
4623 | (_mm_cvtepi32_epi8, _mm256_cvtepi32_epi8, _mm_cvtsepi32_epi8, | |
4624 | _mm256_cvtsepi32_epi8, _mm_cvtusepi32_epi8, _mm256_cvtusepi32_epi8, | |
4625 | _mm_cvtepi32_epi16, _mm256_cvtepi32_epi16, _mm_cvtsepi32_epi16, | |
4626 | _mm256_cvtsepi32_epi16, _mm_cvtusepi32_epi16, _mm256_cvtusepi32_epi16, | |
4627 | _mm_cvtepi64_epi8, _mm256_cvtepi64_epi8, _mm_cvtsepi64_epi8, | |
4628 | _mm256_cvtsepi64_epi8, _mm_cvtusepi64_epi8, _mm256_cvtusepi64_epi8, | |
4629 | _mm_cvtepi64_epi16, _mm256_cvtepi64_epi16, _mm_cvtsepi64_epi16, | |
4630 | _mm256_cvtsepi64_epi16, _mm_cvtusepi64_epi16, _mm256_cvtusepi64_epi16, | |
4631 | _mm_cvtepi64_epi32, _mm256_cvtepi64_epi32, _mm_cvtsepi64_epi32, | |
4632 | _mm256_cvtsepi64_epi32, _mm_cvtusepi64_epi32, _mm256_cvtusepi64_epi32, | |
4633 | _mm_maskz_set1_epi32, _mm_maskz_set1_epi64): Formatting fixes. | |
4634 | (_mm_maskz_cvtps_ph, _mm256_maskz_cvtps_ph): Use _mm_setzero_si128 | |
4635 | instead of _mm_setzero_hi. | |
4636 | (_mm256_permutex_pd, _mm256_maskz_permutex_epi64, _mm256_insertf32x4, | |
4637 | _mm256_maskz_insertf32x4, _mm256_inserti32x4, _mm256_maskz_inserti32x4, | |
4638 | _mm256_extractf32x4_ps, _mm256_maskz_extractf32x4_ps, | |
4639 | _mm256_shuffle_i32x4, _mm256_maskz_shuffle_i32x4, _mm256_shuffle_f64x2, | |
4640 | _mm256_maskz_shuffle_f64x2, _mm256_shuffle_f32x4, | |
4641 | _mm256_maskz_shuffle_f32x4, _mm256_maskz_shuffle_pd, | |
4642 | _mm_maskz_shuffle_pd, _mm256_maskz_shuffle_ps, _mm_maskz_shuffle_ps, | |
4643 | _mm256_maskz_srli_epi32, _mm_maskz_srli_epi32, _mm_maskz_srli_epi64, | |
4644 | _mm256_mask_slli_epi32, _mm256_maskz_slli_epi32, _mm256_mask_slli_epi64, | |
4645 | _mm256_maskz_slli_epi64, _mm256_roundscale_ps, | |
4646 | _mm256_maskz_roundscale_ps, _mm256_roundscale_pd, | |
4647 | _mm256_maskz_roundscale_pd, _mm_roundscale_ps, _mm_maskz_roundscale_ps, | |
4648 | _mm_roundscale_pd, _mm_maskz_roundscale_pd, _mm256_getmant_ps, | |
4649 | _mm256_maskz_getmant_ps, _mm_getmant_ps, _mm_maskz_getmant_ps, | |
4650 | _mm256_getmant_pd, _mm256_maskz_getmant_pd, _mm_getmant_pd, | |
4651 | _mm_maskz_getmant_pd, _mm256_maskz_shuffle_epi32, | |
4652 | _mm_maskz_shuffle_epi32, _mm256_rol_epi32, _mm256_maskz_rol_epi32, | |
4653 | _mm_rol_epi32, _mm_maskz_rol_epi32, _mm256_ror_epi32, | |
4654 | _mm256_maskz_ror_epi32, _mm_ror_epi32, _mm_maskz_ror_epi32, | |
4655 | _mm_maskz_alignr_epi32, _mm_maskz_alignr_epi64, | |
4656 | _mm256_maskz_srai_epi32, _mm_maskz_srai_epi32, _mm_srai_epi64, | |
4657 | _mm_maskz_srai_epi64, _mm256_maskz_permutex_pd, | |
4658 | _mm256_maskz_permute_pd, _mm256_maskz_permute_ps, _mm_maskz_permute_pd, | |
4659 | _mm_maskz_permute_ps, _mm256_permutexvar_ps): Formatting fixes. | |
4660 | (_mm_maskz_slli_epi64, _mm_rol_epi64, _mm_maskz_rol_epi64, | |
4661 | _mm_ror_epi64, _mm_maskz_ror_epi64): Use _mm_setzero_si128 instead of | |
4662 | _mm_setzero_di. | |
4663 | (_mm_maskz_cvtps_ph, _mm256_maskz_cvtps_ph): Use _mm_setzero_si128 | |
4664 | instead of _mm_setzero_hi. | |
4665 | * config/i386/avx512dqintrin.h (_mm512_broadcast_f64x2, | |
4666 | _mm512_broadcast_i64x2, _mm512_broadcast_f32x2, _mm512_broadcast_i32x2, | |
4667 | _mm512_broadcast_f32x8, _mm512_broadcast_i32x8): Formatting fixes. | |
4668 | (_mm512_extracti64x2_epi64, _mm512_maskz_extracti64x2_epi64): Use | |
4669 | _mm_setzero_si128 instead of _mm_setzero_di. | |
4670 | (_mm512_cvtt_roundpd_epi64, _mm512_mask_cvtt_roundpd_epi64, | |
4671 | _mm512_maskz_cvtt_roundpd_epi64, _mm512_cvtt_roundpd_epu64, | |
4672 | _mm512_mask_cvtt_roundpd_epu64, _mm512_maskz_cvtt_roundpd_epu64, | |
4673 | _mm512_cvtt_roundps_epi64, _mm512_mask_cvtt_roundps_epi64, | |
4674 | _mm512_maskz_cvtt_roundps_epi64, _mm512_cvtt_roundps_epu64, | |
4675 | _mm512_mask_cvtt_roundps_epu64, _mm512_maskz_cvtt_roundps_epu64, | |
4676 | _mm512_cvt_roundpd_epi64, _mm512_mask_cvt_roundpd_epi64, | |
4677 | _mm512_maskz_cvt_roundpd_epi64, _mm512_cvt_roundpd_epu64, | |
4678 | _mm512_mask_cvt_roundpd_epu64, _mm512_maskz_cvt_roundpd_epu64, | |
4679 | _mm512_cvt_roundps_epi64, _mm512_mask_cvt_roundps_epi64, | |
4680 | _mm512_maskz_cvt_roundps_epi64, _mm512_cvt_roundps_epu64, | |
4681 | _mm512_mask_cvt_roundps_epu64, _mm512_maskz_cvt_roundps_epu64, | |
4682 | _mm512_cvt_roundepi64_ps, _mm512_mask_cvt_roundepi64_ps, | |
4683 | _mm512_maskz_cvt_roundepi64_ps, _mm512_cvt_roundepu64_ps, | |
4684 | _mm512_mask_cvt_roundepu64_ps, _mm512_maskz_cvt_roundepu64_ps, | |
4685 | _mm512_cvt_roundepi64_pd, _mm512_mask_cvt_roundepi64_pd, | |
4686 | _mm512_maskz_cvt_roundepi64_pd, _mm512_cvt_roundepu64_pd, | |
4687 | _mm512_mask_cvt_roundepu64_pd, _mm512_maskz_cvt_roundepu64_pd, | |
4688 | _mm512_reduce_pd, _mm512_maskz_reduce_pd, _mm512_reduce_ps, | |
4689 | _mm512_maskz_reduce_ps, _mm512_extractf32x8_ps, | |
4690 | _mm512_maskz_extractf32x8_ps, _mm512_extractf64x2_pd, | |
4691 | _mm512_maskz_extractf64x2_pd, _mm512_extracti32x8_epi32, | |
4692 | _mm512_maskz_extracti32x8_epi32, _mm512_range_pd, | |
4693 | _mm512_maskz_range_pd, _mm512_range_ps, _mm512_maskz_range_ps, | |
4694 | _mm512_range_round_pd, _mm512_maskz_range_round_pd, | |
4695 | _mm512_range_round_ps, _mm512_maskz_range_round_ps, | |
4696 | _mm512_maskz_insertf64x2, _mm512_insertf32x8, | |
4697 | _mm512_maskz_insertf32x8): Formatting fixes. | |
4698 | (_mm512_extracti64x2_epi64, _mm512_maskz_extracti64x2_epi64): Use | |
4699 | _mm_setzero_si128 instead of _mm_setzero_di. | |
4700 | * config/i386/avx512vldqintrin.h (_mm_cvttpd_epi64, | |
4701 | _mm_cvttpd_epu64, _mm_cvtpd_epi64, _mm_cvtpd_epu64, | |
4702 | _mm_cvttps_epi64, _mm_maskz_cvttps_epi64, _mm_cvttps_epu64, | |
4703 | _mm_maskz_cvttps_epu64, _mm_maskz_mullo_epi64, _mm_cvtps_epi64, | |
4704 | _mm_maskz_cvtps_epi64, _mm_cvtps_epu64, _mm_maskz_cvtps_epu64, | |
4705 | _mm256_extracti64x2_epi64, _mm256_maskz_extracti64x2_epi64): Use | |
4706 | _mm_setzero_si128 instead of _mm_setzero_di. | |
4707 | (_mm256_extracti64x2_epi64, _mm256_maskz_extracti64x2_epi64): | |
4708 | Likewise in macros. | |
4709 | * config/i386/avx512vlbwintrin.h (_mm_maskz_mov_epi8, | |
4710 | _mm_maskz_loadu_epi16, _mm_maskz_mov_epi16, _mm_maskz_loadu_epi8, | |
4711 | _mm_permutexvar_epi16, _mm_maskz_maddubs_epi16): Use | |
4712 | _mm_setzero_si128 instead of _mm_setzero_hi. | |
4713 | (_mm_maskz_min_epu16, _mm_maskz_max_epu8, _mm_maskz_max_epi8, | |
4714 | _mm_maskz_min_epu8, _mm_maskz_min_epi8, _mm_maskz_max_epi16, | |
4715 | _mm_maskz_max_epu16, _mm_maskz_min_epi16): Use _mm_setzero_si128 | |
4716 | instead of _mm_setzero_di. | |
4717 | (_mm_dbsad_epu8, _mm_maskz_shufflehi_epi16, | |
4718 | _mm_maskz_shufflelo_epi16): Use _mm_setzero_si128 instead of | |
4719 | _mm_setzero_hi. | |
4720 | (_mm_maskz_shufflehi_epi16, _mm_maskz_shufflelo_epi16, | |
4721 | _mm_maskz_slli_epi16): Use _mm_setzero_si128 instead of | |
4722 | _mm_setzero_hi. | |
4723 | (_mm_maskz_alignr_epi8): Use _mm_setzero_si128 instead of | |
4724 | _mm_setzero_di. | |
4725 | (_mm_maskz_mulhi_epi16, _mm_maskz_mulhi_epu16, _mm_maskz_mulhrs_epi16, | |
4726 | _mm_maskz_mullo_epi16, _mm_srav_epi16, _mm_srlv_epi16, | |
4727 | _mm_sllv_epi16): Use _mm_setzero_si128 instead of _mm_setzero_hi. | |
4728 | ||
4729 | 2016-11-22 Carl Love <cel@us.ibm.com> | |
4730 | ||
4731 | * config/rs6000/rs6000-c.c: Add built-in support for vector compare | |
4732 | equal and vector compare not equal. The vector compares take two | |
4733 | arguments of type vector bool char, vector bool short, vector bool int, | |
4734 | vector bool long long with the same return type. | |
4735 | * doc/extend.texi: Update built-in documentation file for the new | |
4736 | powerpc built-ins. | |
4737 | ||
4738 | 2016-11-22 Uros Bizjak <ubizjak@gmail.com> | |
4739 | ||
4740 | * Makefile.in ($(lang_checks_parallelized)): Fix detection | |
4741 | of -j argument. | |
4742 | ||
4743 | 2016-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
4744 | ||
4745 | * config.gcc: Allow new rmprofile value for configure option | |
4746 | --with-multilib-list. | |
4747 | * config/arm/t-rmprofile: New file. | |
4748 | * doc/install.texi (--with-multilib-list): Document new rmprofile value | |
4749 | for ARM. | |
4750 | ||
4751 | 2016-11-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
4752 | ||
4753 | PR target/78439 | |
4754 | * config/arm/vfp.md (*movdi_vfp_cortexa8): Use 'q' constraints for the | |
4755 | register operand in alternatives 4,5,6. | |
4756 | ||
4757 | 2016-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
4758 | ||
4759 | PR target/77904 | |
4760 | * config/arm/arm.c (thumb1_compute_save_reg_mask): Mark frame pointer | |
4761 | in save register mask if it is needed. | |
4762 | ||
4763 | 2016-11-22 Jakub Jelinek <jakub@redhat.com> | |
4764 | ||
4765 | PR tree-optimization/78436 | |
4766 | * gimple-ssa-store-merging.c (zero_char_buf): Removed. | |
4767 | (shift_bytes_in_array, shift_bytes_in_array_right, | |
4768 | merged_store_group::apply_stores): Formatting fixes. | |
4769 | (clear_bit_region): Likewise. Use memset. | |
4770 | (encode_tree_to_bitpos): Formatting fixes. Fix comment typos - EPXR | |
4771 | instead of EXPR and inerted instead of inserted. Use memset instead | |
4772 | of zero_char_buf. For !BYTES_BIG_ENDIAN decrease byte_size by 1 | |
4773 | if shift_amnt is 0. | |
4774 | ||
4775 | PR middle-end/78416 | |
4776 | * expmed.c (expand_divmod): Use wide_int for computation of | |
4777 | op1_is_pow2. Don't set it if op1 is 0. Formatting fixes. | |
4778 | Use size <= HOST_BITS_PER_WIDE_INT instead of | |
4779 | HOST_BITS_PER_WIDE_INT >= size. | |
4780 | ||
4781 | PR tree-optimization/78445 | |
4782 | * tree-if-conv.c (tree_if_conversion): If any_pred_load_store or | |
4783 | any_complicated_phi, version loop even if flag_tree_loop_if_convert | |
4784 | is 1. Formatting fix. | |
4785 | ||
4786 | 2016-11-22 Martin Liska <mliska@suse.cz> | |
4787 | ||
4788 | PR ipa/78309 | |
4789 | * ipa-icf.c (void sem_item::set_hash): Update m_hash_set. | |
4790 | (sem_function::get_hash): Use the new field. | |
4791 | (sem_function::parse): Remove an argument from ctor. | |
4792 | (sem_variable::parse): Likewise. | |
4793 | (sem_variable::get_hash): Use the new field. | |
4794 | (sem_item_optimizer::read_section): Use new ctor and set hash. | |
4795 | * ipa-icf.h: _hash is removed from sem_item::sem_item, | |
4796 | sem_variable::sem_variable, sem_function::sem_function. | |
4797 | ||
4798 | 2016-11-21 Jeff Law <law@redhat.com> | |
4799 | ||
4800 | PR target/68538 | |
4801 | * config/cris/cris.md: Don't call copy_to_mode_reg unless | |
4802 | can_create_pseudo_p is true. | |
4803 | ||
4804 | 2016-11-21 Segher Boessenkool <segher@kernel.crashing.org> | |
4805 | ||
4806 | PR target/68803 | |
4807 | * config/rs6000/rs6000.md (*rotlsi3_insert_5, *rotldi3_insert_6, | |
4808 | *rotldi3_insert_7): New define_insns. | |
4809 | ||
4810 | 2016-11-21 Michael Meissner <meissner@linux.vnet.ibm.com> | |
4811 | ||
4812 | * config/rs6000/rs6000.md (movdi_internal32): Change constraints | |
4813 | so that DImode can be allocated to FP/vector registers in more | |
4814 | cases, and we can avoid direct move operations. If the register | |
4815 | needs reloading, prefer GPRs over FP/vector registers. In the | |
4816 | case of FPR vs. Altivec registers, prefer FPR registers unless we | |
4817 | have the ISA 3.0 reg+offset scalar instructions. | |
4818 | (movdi_internal64): Likewise. | |
4819 | ||
4820 | 2016-11-21 Jakub Jelinek <jakub@redhat.com> | |
4821 | ||
4822 | PR middle-end/67335 | |
4823 | * omp-simd-clone.c (simd_clone_adjust_argument_types): Use NULL prefix | |
4824 | for tmp simd array if DECL_NAME (parm) is NULL. | |
4825 | ||
4826 | 2016-11-20 Jeff Law <law@redhat.com> | |
4827 | ||
4828 | PR target/25128 | |
4829 | * config/m68k/predicates.md (swap_peephole_relational_operator): New | |
4830 | predicate. | |
4831 | * config/m68k/m68k.md (relational tests against 65535/65536): New | |
4832 | peephole2. | |
4833 | ||
4834 | 2016-11-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
4835 | ||
4836 | * tree-ssa-loop-prefetch.c: Delete FIXME after the includes. | |
4837 | ||
4838 | 2016-11-21 Martin Sebor <msebor@redhat.com> | |
4839 | ||
4840 | * doc/invoke.texi (-fprintf-return-value): Document that option | |
4841 | is enabled by default. | |
4842 | ||
4843 | 2016-11-21 Georg-Johann Lay <avr@gjlay.de> | |
4844 | ||
4845 | * config/avr/avr-c.c (avr_register_target_pragmas): Use C++ | |
4846 | for-loop declaration of loop variable. | |
4847 | (avr_register_target_pragmas, avr_cpu_cpp_builtins): Same. | |
4848 | * config/avr/avr.c (avr_popcount_each_byte) | |
4849 | (avr_init_expanders, avr_regs_to_save, sequent_regs_live) | |
4850 | (get_sequence_length, avr_prologue_setup_frame, avr_map_metric) | |
4851 | (avr_expand_epilogue, avr_function_arg_advance) | |
4852 | (avr_out_compare, avr_out_plus_1, avr_out_bitop, avr_out_fract) | |
4853 | (avr_rotate_bytes, _reg_unused_after, avr_assemble_integer) | |
4854 | (avr_adjust_reg_alloc_order, output_reload_in_const) | |
4855 | (avr_conditional_register_usage, avr_find_unused_d_reg) | |
4856 | (avr_map_decompose, avr_fold_builtin): Same. | |
4857 | ||
4858 | 2016-11-21 Georg-Johann Lay <avr@gjlay.de> | |
4859 | ||
4860 | * config/avr/avr.c (avr_popcount): Remove static function. | |
4861 | (avr_popcount_each_byte, avr_out_bitop): Use popcount_hwi instead. | |
4862 | ||
4863 | 2016-11-21 Richard Earnshaw <rearnsha@arm.com> | |
4864 | ||
4865 | * arm.opt (mapcs-float): Delete option. | |
4866 | * arm.c (arm_option_override): Remove hunk relating to | |
4867 | TARGET_APCS_FLOAT. | |
4868 | * doc/invoke.texi (arm options): Remove documentation for -mapcs-float. | |
4869 | ||
4870 | 2016-11-21 Richard Sandiford <richard.sandiford@arm.com> | |
4871 | ||
4872 | * tree-tailcall.c (process_assignment): Simplify the check for | |
4873 | a valid copy, allowing the source to be a local variable as | |
4874 | well as an SSA name. | |
4875 | (find_tail_calls): Allow copies between local variables to follow | |
4876 | the call. Allow the result to be stored in any local variable, | |
4877 | even if it's an aggregate. | |
4878 | (eliminate_tail_call): Check whether the result is an SSA name | |
4879 | before updating its SSA_NAME_DEF_STMT. | |
4880 | ||
4881 | 2016-11-21 David Malcolm <dmalcolm@redhat.com> | |
4882 | ||
4883 | PR preprocessor/78324 | |
4884 | * input.c (get_substring_ranges_for_loc): Fail gracefully if | |
4885 | -ftrack-macro-expansion has a value other than 2. | |
4886 | ||
4887 | 2016-11-21 Segher Boessenkool <segher@kernel.crashing.org> | |
4888 | ||
4889 | PR rtl-optimization/78400 | |
4890 | * shrink-wrap.c (try_shrink_wrapping_separate): Call | |
4891 | df_update_entry_exit_and_calls instead of df_update_entry_block_defs | |
4892 | and df_update_exit_block_uses. | |
4893 | ||
4894 | 2016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
4895 | ||
4896 | PR c++/71973 | |
4897 | * doc/invoke.texi (-Wno-builtin-declaration-mismatch): Document the | |
4898 | new default-enabled warning.. | |
4899 | * builtin-types.def (BT_CONST_TM_PTR): New primitive type. | |
4900 | (BT_PTR_CONST_STRING): Updated. | |
4901 | (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR): Removed. | |
4902 | (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_TM_PTR): New function type. | |
4903 | * builtins.def (DEF_TM_BUILTIN): Disable BOTH_P for TM builtins. | |
4904 | (strftime): Update builtin function. | |
4905 | * tree-core.h (TI_CONST_TM_PTR_TYPE): New enum value. | |
4906 | * tree.h (const_tm_ptr_type_node): New type node. | |
4907 | * tree.c (free_lang_data, build_common_tree_nodes): Initialize | |
4908 | const_tm_ptr_type_node. | |
4909 | ||
4910 | 2016-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
4911 | ||
4912 | PR tree-optimization/78413 | |
4913 | * tree-if-conv.c (versionable_outer_loop_p): Require that both | |
4914 | inner and outer loop latches have single predecessors. | |
4915 | ||
4916 | 2016-11-21 Georg-Johann Lay <avr@gjlay.de> | |
4917 | ||
4918 | PR target/78093 | |
4919 | * config/avr/avr.c (avr_decl_maybe_lds_p): New static function. | |
4920 | (avr_encode_section_info) [TARGET_ABSDATA && AVR_TINY]: Use it. | |
4921 | ||
4922 | 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
4923 | ||
4924 | * rtl.h: Adjust prototype. | |
4925 | * rtlanal.c (dead_or_set_p): Change argument type to rtx_insn *. | |
4926 | (dead_or_set_regno_p): Likewise. | |
4927 | ||
4928 | 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
4929 | ||
4930 | * rtl.h: Adjust prototype. | |
4931 | * rtlanal.c (add_int_reg_note): Change argument type to rtx_insn *. | |
4932 | ||
4933 | 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
4934 | ||
4935 | * function.c (contains): Change argument type to rtx_insn *. | |
4936 | (prologue_contains): Likewise. | |
4937 | (epilogue_contains): Likewise. | |
4938 | (prologue_epilogue_contains): Likewise. | |
4939 | * function.h: Adjust prototype. | |
4940 | ||
4941 | 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
4942 | ||
4943 | * optabs.c (emit_libcall_block): Change argument type to | |
4944 | rtx_insn *. | |
4945 | * optabs.h: Adjust prototype. | |
4946 | ||
4947 | 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
4948 | ||
4949 | * cfgrtl.c (delete_insn): Change argument type to rtx_insn *. | |
4950 | (fixup_reorder_chain): Adjust. | |
4951 | * cfgrtl.h: Adjust prototype. | |
4952 | ||
4953 | 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
4954 | ||
4955 | * rtl.h: Adjust prototype. | |
4956 | * rtlanal.c (replace_label_in_insn): Change argument type to | |
4957 | rtx_insn *. | |
4958 | ||
4959 | 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
4960 | ||
4961 | * config/v850/v850.c (expand_prologue): Adjust. | |
4962 | (expand_epilogue): Likewise. | |
4963 | * expr.c (init_expr_target): Likewise. | |
4964 | * genrecog.c (print_subroutine): Always make the argument type | |
4965 | rtx_insn *. | |
4966 | * recog.h: Adjust prototype. | |
4967 | ||
4968 | 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
4969 | ||
4970 | * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): split | |
4971 | up variables to make some rtx_insn *. | |
4972 | * config/alpha/alpha.c (emit_unlikely_jump): Likewise. | |
4973 | * config/arc/arc.c: Likewise. | |
4974 | * config/arm/arm.c: Likewise. | |
4975 | * config/mn10300/mn10300.c (mn10300_legitimize_pic_address): Likewise. | |
4976 | * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): | |
4977 | Likewise. | |
4978 | * config/spu/spu.c (spu_emit_branch_hint): Likewise. | |
4979 | ||
4980 | 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
4981 | ||
4982 | * config/arm/arm.c (legitimize_pic_address): Change to use | |
4983 | rtx_insn * as the type of variables. | |
4984 | (arm_pic_static_addr): Likewise. | |
4985 | (arm_emit_movpair): Likewise. | |
4986 | * config/c6x/c6x.c (reorg_split_calls): Likewise. | |
4987 | * config/darwin.c (machopic_legitimize_pic_address): Likewise. | |
4988 | * config/frv/frv.c (frv_optimize_membar_local): Likewise. | |
4989 | * config/frv/frv.md: Likewise. | |
4990 | * config/i386/i386-protos.h: Likewise. | |
4991 | * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise. | |
4992 | (ix86_split_fp_branch): Likewise. | |
4993 | (predict_jump): Likewise. | |
4994 | * config/ia64/ia64.c: Likewise. | |
4995 | * config/mcore/mcore.c: Likewise. | |
4996 | * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise. | |
4997 | * config/s390/s390.c: Likewise. | |
4998 | * config/s390/s390.md: Likewise. | |
4999 | * config/spu/spu.md: Likewise. | |
5000 | * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise. | |
5001 | * lower-subreg.c (resolve_simple_move): Likewise. | |
5002 | ||
5003 | 2016-11-20 Jeff Law <law@redhat.com> | |
5004 | ||
5005 | PR target/48551 | |
5006 | * reload.h (struct target_reload): Make x_double_reg_address_ok | |
5007 | be per-mode rather. | |
5008 | * reload.c (find_reloads_address): Check if double_reg_address_ok | |
5009 | is true for the mode of the memory reference. | |
5010 | * reload1.c (init_reload): Initialize double_reg_address_ok for | |
5011 | each mode. | |
5012 | ||
5013 | 2016-11-20 Aldy Hernandez <aldyh@redhat.com> | |
5014 | ||
5015 | PR middle-end/61409 | |
5016 | * tree-ssa-uninit.c: Define new global max_phi_args. | |
5017 | (compute_uninit_opnds_pos): Use max_phi_args. | |
5018 | (prune_uninit_phi_opnds): Same. | |
5019 | (use_pred_not_overlap_with_undef_path_pred): Remove reference to | |
5020 | missing NUM_PREDS in function comment. | |
5021 | (can_one_predicate_be_invalidated_p): New. | |
5022 | (can_chain_union_be_invalidated_p): New. | |
5023 | (flatten_out_predicate_chains): New. | |
5024 | (uninit_ops_invalidate_phi_use): New. | |
5025 | (is_use_properly_guarded): Call uninit_ops_invalidate_phi_use. | |
5026 | ||
5027 | 2016-11-20 Marc Glisse <marc.glisse@inria.fr> | |
5028 | ||
5029 | * fold-const.c (fold_comparison): Ignore EXACT_DIV_EXPR. | |
5030 | * match.pd (A /[ex] B CMP C): New simplifications. | |
5031 | ||
5032 | 2016-11-20 Marc Glisse <marc.glisse@inria.fr> | |
5033 | ||
5034 | * match.pd (0 / X, X / X, X % X): New simplifications. | |
5035 | ||
5036 | 2016-11-19 Jakub Jelinek <jakub@redhat.com> | |
5037 | ||
5038 | * config/i386/i386.c (ix86_can_inline_p): Use || instead of & | |
5039 | when checking if callee's isa flags are subset of caller's isa flags. | |
5040 | Fix comment wording. | |
5041 | ||
5042 | * config/i386/i386.c (ix86_valid_target_attribute_tree): Don't | |
5043 | clear opts->x_ix86_isa_flags, clear opts->x_ix86_isa_flags2 | |
5044 | instead and using = 0 instead of &= 0. | |
5045 | ||
5046 | * config/i386/i386.c (def_builtin, def_builtin2, def_builtin_const2, | |
5047 | ix86_add_new_builtins): Formatting fixes. | |
5048 | (ix86_expand_builtin): Use || instead of && for isa vs. isa2. | |
5049 | (ix86_get_builtin): Likewise. | |
5050 | ||
5051 | * config/i386/i386.c (ix86_expand_builtin): Remove msk_mov variable, | |
5052 | don't initialize it, don't use it for the case where it isn't | |
5053 | provable %{z} nor using the same argument, instead move merge | |
5054 | argument into a new pseudo and use that as target. Formatting fixes. | |
5055 | ||
5056 | 2016-11-19 Jeff Law <law@redhat.com> | |
5057 | ||
5058 | PR target/25111 | |
5059 | * config/m68k/m68k.md (bsetdreg): New pattern. | |
5060 | (bchgdreg, bclrdreg): Likewise. | |
5061 | ||
5062 | 2016-11-19 Kaz Kojima <kkojima@gcc.gnu.org> | |
5063 | ||
5064 | PR target/78426 | |
5065 | * config/sh/sh-mem.cc (sh_expand_cmpnstr): Use copy_to_mode_reg | |
5066 | instead of force_reg. | |
5067 | (sh_expand_setmem): Likewise. | |
5068 | ||
5069 | 2016-11-19 Krister Walfridsson <krister.walfridsson@gmail.com> | |
5070 | ||
5071 | * config.gcc (*-*-netbsd): Set use_gcc_stdint=wrap. | |
5072 | ||
5073 | 2016-11-18 Walter Lee <walt@tilera.com> | |
5074 | ||
5075 | * config/tilegx/tilegx.c (tilegx_gen_bundles): Preserve | |
5076 | end-of-bundle marker for consecutive barriers. | |
5077 | ||
5078 | 2016-11-18 Walter Lee <walt@tilera.com> | |
5079 | ||
5080 | * config/tilegx/tilegx.md (clzsi2): Fix for big-endian. | |
5081 | ||
5082 | 2016-11-18 Jakub Jelinek <jakub@redhat.com> | |
5083 | ||
5084 | PR middle-end/78419 | |
5085 | * multiple_target.c (get_attr_len): Start with argnum and increment | |
5086 | argnum on every arg. Use strchr in a loop instead of counting commas | |
5087 | manually. | |
5088 | (get_attr_str): Increment argnum for every comma in the string. | |
5089 | (separate_attrs): Use for instead of while loop, simplify. | |
5090 | (expand_target_clones): Rename defenition argument to definition. | |
5091 | Free attrs and attr_str even when diagnosing errors. Temporarily | |
5092 | change input_location around targetm.target_option.valid_attribute_p | |
5093 | calls. Don't emit warning or errors if that function fails. | |
5094 | ||
5095 | * dwarf2out.c (size_of_discr_list): Fix typo in function comment. | |
5096 | ||
5097 | PR debug/78191 | |
5098 | * dwarf2out.c (abbrev_opt_base_type_end): New variable. | |
5099 | (die_abbrev_cmp): Sort dies with die_abbrev smaller than | |
5100 | abbrev_opt_base_type_end only by increasing die_abbrev, before | |
5101 | any other dies. | |
5102 | (optimize_abbrev_table): Don't change abbrev numbers of | |
5103 | base types and CU or optimize implicit consts in them if | |
5104 | calc_base_type_die_sizes has been called during build_abbrev_table. | |
5105 | (calc_base_type_die_sizes): If abbrev_opt_start, set | |
5106 | abbrev_opt_base_type_end to one plus largest base type's die_abbrev. | |
5107 | ||
5108 | 2016-11-18 Jeff Law <law@redhat.com> | |
5109 | ||
5110 | PR target/25112 | |
5111 | * config/m68k/m68k.c (moveq feeding equality comparison): New | |
5112 | peepholes. | |
5113 | * config/m68k/predicates.md (addq_subq_operand): New predicate. | |
5114 | (equality_comparison_operator): Likewise. | |
5115 | ||
5116 | 2016-11-18 Richard Sandiford <richard.sandiford@arm.com> | |
5117 | ||
5118 | * rtlanal.c (load_extend_op): Move to... | |
5119 | * rtl.h: ...here and make inline. | |
5120 | ||
5121 | 2016-11-18 Terry Guo <terry.guo@arm.com> | |
5122 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
5123 | ||
5124 | * common/config/arm/arm-common.c (arm_target_thumb_only): New function. | |
5125 | * config/arm/arm-opts.h: Include arm-flags.h. | |
5126 | (struct arm_arch_core_flag): Define. | |
5127 | (arm_arch_core_flags): Define. | |
5128 | * config/arm/arm-protos.h: Include arm-flags.h | |
5129 | (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M, FL_MODE26, FL_MODE32, | |
5130 | FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED, FL_STRONG, FL_ARCH5E, | |
5131 | FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF, FL_ARCH6K, FL_THUMB2, FL_NOTM, | |
5132 | FL_THUMB_DIV, FL_VFPV3, FL_NEON, FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV, | |
5133 | FL_ARCH8, FL_CRC32, FL_SMALLMUL, FL_NO_VOLATILE_CE, FL_IWMMXT, | |
5134 | FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1, FL2_ARCH8_2, FL2_FP16INST, | |
5135 | FL_TUNE, FL_FOR_ARCH2, FL_FOR_ARCH3, FL_FOR_ARCH3M, FL_FOR_ARCH4, | |
5136 | FL_FOR_ARCH4T, FL_FOR_ARCH5, FL_FOR_ARCH5T, FL_FOR_ARCH5E, | |
5137 | FL_FOR_ARCH5TE, FL_FOR_ARCH5TEJ, FL_FOR_ARCH6, FL_FOR_ARCH6J, | |
5138 | FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK, FL_FOR_ARCH6KZ, | |
5139 | FL_FOR_ARCH6T2, FL_FOR_ARCH6M, FL_FOR_ARCH7, FL_FOR_ARCH7A, | |
5140 | FL_FOR_ARCH7VE, FL_FOR_ARCH7R, FL_FOR_ARCH7M, FL_FOR_ARCH7EM, | |
5141 | FL_FOR_ARCH8A, FL2_FOR_ARCH8_1A, FL2_FOR_ARCH8_2A, FL_FOR_ARCH8M_BASE, | |
5142 | FL_FOR_ARCH8M_MAIN, arm_feature_set, ARM_FSET_MAKE, | |
5143 | ARM_FSET_MAKE_CPU1, ARM_FSET_MAKE_CPU2, ARM_FSET_CPU1, ARM_FSET_CPU2, | |
5144 | ARM_FSET_EMPTY, ARM_FSET_ANY, ARM_FSET_HAS_CPU1, ARM_FSET_HAS_CPU2, | |
5145 | ARM_FSET_HAS_CPU, ARM_FSET_ADD_CPU1, ARM_FSET_ADD_CPU2, | |
5146 | ARM_FSET_DEL_CPU1, ARM_FSET_DEL_CPU2, ARM_FSET_UNION, ARM_FSET_INTER, | |
5147 | ARM_FSET_XOR, ARM_FSET_EXCLUDE, ARM_FSET_IS_EMPTY, | |
5148 | ARM_FSET_CPU_SUBSET): Move to ... | |
5149 | * config/arm/arm-flags.h: This new file. | |
5150 | * config/arm/arm.h (TARGET_MODE_SPEC_FUNCTIONS): Define. | |
5151 | (EXTRA_SPEC_FUNCTIONS): Add TARGET_MODE_SPEC_FUNCTIONS to its value. | |
5152 | (TARGET_MODE_SPECS): Define. | |
5153 | (DRIVER_SELF_SPECS): Add TARGET_MODE_SPECS to its value. | |
5154 | ||
5155 | 2016-11-18 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
5156 | ||
5157 | * config/arm/arm-protos.h (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M, | |
5158 | FL_MODE26, FL_MODE32, FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED, | |
5159 | FL_STRONG, FL_ARCH5E, FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF, | |
5160 | FL_ARCH6K, FL_THUMB2, FL_NOTM, FL_THUMB_DIV, FL_VFPV3, FL_NEON, | |
5161 | FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV, FL_ARCH8, FL_CRC32, FL_SMALLMUL, | |
5162 | FL_NO_VOLATILE_CE, FL_IWMMXT, FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1, | |
5163 | FL2_ARCH8_2, FL2_FP16INST): Reindent comment, add final dot when | |
5164 | missing and make value unsigned. | |
5165 | (arm_feature_set): Use unsigned entries instead of unsigned long. | |
5166 | ||
5167 | 2016-11-18 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
5168 | ||
5169 | Re-apply after PR bootstrap/77359 is fixed: | |
5170 | 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
5171 | ||
5172 | * explow.c (get_dynamic_stack_size): Take known alignment of stack | |
5173 | pointer + STACK_DYNAMIC_OFFSET into account when calculating the | |
5174 | size needed. | |
5175 | ||
5176 | 2016-11-18 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
5177 | ||
5178 | PR bootstrap/77359 | |
5179 | * config/rs6000/rs6000.c (rs6000_stack_info): Properly align local | |
5180 | variables in functions calling alloca. Also update the ASCII | |
5181 | drawings. | |
5182 | * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET) | |
5183 | (STACK_DYNAMIC_OFFSET): Likewise. | |
5184 | * config/rs6000/aix.h (STARTING_FRAME_OFFSET) | |
5185 | (STACK_DYNAMIC_OFFSET): Copy AIX specific versions of the rs6000.h | |
5186 | macros to aix.h. | |
5187 | ||
5188 | 2016-11-18 Richard Sandiford <richard.sandiford@arm.com> | |
5189 | Alan Hayward <alan.hayward@arm.com> | |
5190 | David Sherwood <david.sherwood@arm.com> | |
5191 | ||
5192 | * combine.c (try_combine): Use rtx_mode_t instead of std::make_pair. | |
5193 | * dwarf2out.c (mem_loc_descriptor, loc_descriptor): Likewise. | |
5194 | (add_const_value_attribute): Likewise. | |
5195 | * explow.c (plus_constant): Likewise. | |
5196 | * expmed.c (expand_mult, make_tree): Likewise. | |
5197 | * expr.c (convert_modes): Likewise. | |
5198 | * loop-doloop.c (doloop_optimize): Likewise. | |
5199 | * postreload.c (reload_cse_simplify_set): Likewise. | |
5200 | * simplify-rtx.c (simplify_const_unary_operation): Likewise | |
5201 | (simplify_binary_operation_1, simplify_const_binary_operation): | |
5202 | Likewise. | |
5203 | (simplify_const_relational_operation, simplify_immed_subreg): Likewise. | |
5204 | * wide-int.h: Update documentation to recommend rtx_mode_t | |
5205 | instead of std::make_pair. | |
5206 | ||
5207 | 2016-11-18 Richard Sandiford <richard.sandiford@arm.com> | |
5208 | Alan Hayward <alan.hayward@arm.com> | |
5209 | David Sherwood <david.sherwood@arm.com> | |
5210 | ||
5211 | * tree.h (SET_DECL_MODE): New macro. | |
5212 | * cfgexpand.c (avoid_deep_ter_for_debug): Use SET_DECL_MODE. | |
5213 | (expand_gimple_basic_block): Likewise. | |
5214 | * function.c (split_complex_args): Likeise. | |
5215 | * ipa-prop.c (ipa_modify_call_arguments): Likewise. | |
5216 | * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Likewise. | |
5217 | * stor-layout.c (layout_decl, relayout_decl): Likewise. | |
5218 | (finish_bitfield_representative): Likewise. | |
5219 | * tree.c (make_node_stat): Likewise. | |
5220 | * tree-inline.c (remap_ssa_name): Likewise. | |
5221 | (tree_function_versioning): Likewise. | |
5222 | * tree-into-ssa.c (rewrite_debug_stmt_uses): Likewise. | |
5223 | * tree-sra.c (sra_ipa_reset_debug_stmts): Likewise. | |
5224 | * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. | |
5225 | * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise. | |
5226 | * tree-ssa.c (insert_debug_temp_for_var_def): Likewise. | |
5227 | * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise. | |
5228 | * varasm.c (make_debug_expr_from_rtl): Likewise. | |
5229 | ||
5230 | 2016-11-18 Segher Boessenkool <segher@kernel.crashing.org> | |
5231 | ||
5232 | PR rtl-optimization/71785 | |
5233 | * bb-reorder.c (maybe_duplicate_computed_goto): New function. | |
5234 | (duplicate_computed_gotos): New function. | |
5235 | (pass_duplicate_computed_gotos::execute): Rewrite. | |
5236 | ||
5237 | 2016-11-17 Jeff Law <law@redhat.com> | |
5238 | ||
5239 | PR target/47192 | |
5240 | * config/m68k/m68k.c (m68k_expand_epilogue): Emit a scheduling | |
5241 | barrier prior to deallocating the stack. | |
5242 | ||
5243 | 2016-11-17 Andrew Burgess <andrew.burgess@embecosm.com> | |
5244 | ||
5245 | * config/arc/arc.md (cmem bit/sign-extend peephole2): New peephole | |
5246 | to make better use of cmem loads in the case where a single bit is | |
5247 | being accessed. | |
5248 | * config/arc/predicates.md (ge_lt_comparison_operator): New predicate. | |
5249 | ||
5250 | 2016-11-17 Andrew Senkevich <andrew.senkevich@intel.com> | |
5251 | ||
5252 | * config/i386/i386.c (processor_features): Add F_AVX5124VNNIW, | |
5253 | F_AVX5124FMAPS. | |
5254 | (isa_names_table): Handle new features. | |
5255 | ||
5256 | 2016-11-17 Kirill Yukhin <kirill.yukhin@gmail.com> | |
5257 | Andrew Senkevich <andrew.senkevich@intel.com> | |
5258 | ||
5259 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX5124FMAPS_SET, | |
5260 | OPTION_MASK_ISA_AVX5124FMAPS_UNSET, OPTION_MASK_ISA_AVX5124VNNIW_SET, | |
5261 | OPTION_MASK_ISA_AVX5124VNNIW_UNSET): New. | |
5262 | (ix86_handle_option): Handle OPT_mavx5124fmaps, OPT_mavx5124vnniw. | |
5263 | * config.gcc: Add avx5124fmapsintrin.h, avx5124vnniwintrin.h. | |
5264 | * config/i386/avx5124fmapsintrin.h: New file. | |
5265 | * config/i386/avx5124vnniwintrin.h: Ditto. | |
5266 | * config/i386/constraints.md (h): New constraint. | |
5267 | * config/i386/cpuid.h (bit_AVX5124VNNIW, bit_AVX5124FMAPS): New. | |
5268 | * config/i386/driver-i386.c (host_detect_local_cpu): | |
5269 | Detect avx5124fmaps, avx5124vnniw. | |
5270 | * config/i386/i386-builtin-types.def: Add types | |
5271 | V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF_V16SF_UHI, | |
5272 | V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF, | |
5273 | V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF, | |
5274 | V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF_V4SF_UQI, | |
5275 | V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI, | |
5276 | V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI_V16SI_UHI. | |
5277 | * config/i386/i386-builtin.def (__builtin_ia32_4fmaddps_mask, | |
5278 | __builtin_ia32_4fmaddps, __builtin_ia32_4fmaddss, | |
5279 | __builtin_ia32_4fmaddss_mask, __builtin_ia32_4fnmaddps_mask, | |
5280 | __builtin_ia32_4fnmaddps, __builtin_ia32_4fnmaddss, | |
5281 | __builtin_ia32_4fnmaddss_mask, __builtin_ia32_vp4dpwssd, | |
5282 | __builtin_ia32_vp4dpwssd_mask, __builtin_ia32_vp4dpwssds, | |
5283 | __builtin_ia32_vp4dpwssds_mask): New. | |
5284 | * config/i386/i386-c.c (ix86_target_macros_internal): | |
5285 | Define __AVX5124FMAPS__, __AVX5124VNNIW__. | |
5286 | * config/i386/i386-modes.def: Fixed comment typos, added new | |
5287 | modes (VECTOR_MODES (FLOAT, 256), VECTOR_MODE (INT, SI, 64)). | |
5288 | * config/i386/i386.c (ix86_target_string): Add -mavx5124fmaps, | |
5289 | -mavx5124vnniw. | |
5290 | (PTA_AVX5124FMAPS, PTA_AVX5124VNNIW): Define. | |
5291 | (ix86_option_override_internal): Handle new options. | |
5292 | (ix86_valid_target_attribute_inner_p): Add avx5124fmaps, | |
5293 | avx5124vnniw. | |
5294 | (ix86_expand_builtin): Handle new builtins. | |
5295 | (ix86_additional_allocno_class_p): New. | |
5296 | * config/i386/i386.h (TARGET_AVX5124FMAPS, TARGET_AVX5124FMAPS_P, | |
5297 | TARGET_AVX5124VNNIW, TARGET_AVX5124VNNIW_P): Define. | |
5298 | (reg_class): Add MOD4_SSE_REGS. | |
5299 | (MOD4_SSE_REG_P, MOD4_SSE_REGNO_P): New. | |
5300 | * config/i386/i386.opt: Add mavx5124fmaps, mavx5124vnniw. | |
5301 | * config/i386/immintrin.h: Include avx5124fmapsintrin.h, | |
5302 | avx5124vnniwintrin.h. | |
5303 | * config/i386/sse.md (unspec): Add UNSPEC_VP4FMADD, UNSPEC_VP4FNMADD, | |
5304 | UNSPEC_VP4DPWSSD, UNSPEC_VP4DPWSSDS. | |
5305 | (define_mode_iterator IMOD4): New. | |
5306 | (define_mode_attr imod4_narrow): Ditto. | |
5307 | (define_insn "mov<mode>"): Ditto. | |
5308 | (define_insn "avx5124fmaddps_4fmaddps"): Ditto. | |
5309 | (define_insn "avx5124fmaddps_4fmaddps_mask"): Ditto. | |
5310 | (define_insn "avx5124fmaddps_4fmaddps_maskz"): Ditto. | |
5311 | (define_insn "avx5124fmaddps_4fmaddss"): Ditto. | |
5312 | (define_insn "avx5124fmaddps_4fmaddss_mask"): Ditto. | |
5313 | (define_insn "avx5124fmaddps_4fmaddss_maskz"): Ditto. | |
5314 | (define_insn "avx5124fmaddps_4fnmaddps"): Ditto. | |
5315 | (define_insn "avx5124fmaddps_4fnmaddps_mask"): Ditto. | |
5316 | (define_insn "avx5124fmaddps_4fnmaddps_maskz"): Ditto. | |
5317 | (define_insn "avx5124fmaddps_4fnmaddss"): Ditto. | |
5318 | (define_insn "avx5124fmaddps_4fnmaddss_mask"): Ditto. | |
5319 | (define_insn "avx5124fmaddps_4fnmaddss_maskz"): Ditto. | |
5320 | (define_insn "avx5124vnniw_vp4dpwssd"): Ditto. | |
5321 | (define_insn "avx5124vnniw_vp4dpwssd_mask"): Ditto. | |
5322 | (define_insn "avx5124vnniw_vp4dpwssd_maskz"): Ditto. | |
5323 | (define_insn "avx5124vnniw_vp4dpwssds"): Ditto. | |
5324 | (define_insn "avx5124vnniw_vp4dpwssds_mask"): Ditto. | |
5325 | (define_insn "avx5124vnniw_vp4dpwssds_maskz"): Ditto. | |
5326 | * init-regs.c (initialize_uninitialized_regs): Add emit_clobber call. | |
5327 | * genmodes.c (mode_size_inline): Extend return type. | |
5328 | * machmode.h (mode_size, mode_base_align): Extend type. | |
5329 | ||
5330 | 2016-11-17 Michael Meissner <meissner@linux.vnet.ibm.com> | |
5331 | ||
5332 | PR target/78101 | |
5333 | * config/rs6000/predicates.md (fusion_addis_mem_combo_load): Add | |
5334 | the appropriate checks for SFmode/DFmode load/stores in GPR | |
5335 | registers. | |
5336 | (fusion_addis_mem_combo_store): Likewise. | |
5337 | * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Rename | |
5338 | fusion_fpr_* to fusion_vsx_* and add in support for ISA 3.0 scalar | |
5339 | d-form instructions for traditional Altivec registers. | |
5340 | (emit_fusion_p9_load): Likewise. | |
5341 | (emit_fusion_p9_store): Likewise. | |
5342 | * config/rs6000/rs6000.md (p9 fusion store peephole2): Remove | |
5343 | early clobber from scratch register. Do not match if the register | |
5344 | being stored is the scratch register. | |
5345 | (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Rename fusion_fpr_* | |
5346 | to fusion_vsx_* and add in support for ISA 3.0 scalar d-form | |
5347 | instructions for traditional Altivec registers. | |
5348 | (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise. | |
5349 | (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Likewise. | |
5350 | (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise. | |
5351 | ||
5352 | 2016-11-17 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
5353 | ||
5354 | PR target/77933 | |
5355 | * config/arm/arm.c (thumb1_expand_prologue): Distinguish between lr | |
5356 | being live in the function and lr needing to be saved. Distinguish | |
5357 | between already saved pushable registers and registers to push. | |
5358 | Check for LR being an available pushable register. | |
5359 | ||
5360 | 2016-11-17 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
5361 | ||
5362 | * config/i386/i386.md (cmpstrnsi): New test to bail out if neither | |
5363 | string input is a string constant. | |
5364 | * builtins.c (expand_builtin_strncmp): Attempt expansion of strncmp | |
5365 | via cmpstrnsi even if neither string is constant. | |
5366 | ||
5367 | 2016-11-17 Jakub Jelinek <jakub@redhat.com> | |
5368 | ||
5369 | PR middle-end/78201 | |
5370 | * varasm.c (default_use_anchors_for_symbol_p): Fix a comment typo. | |
5371 | Don't test decl != NULL. Don't look at DECL_SIZE, but DECL_SIZE_UNIT | |
5372 | instead, return false if it is NULL, or doesn't fit into uhwi, or | |
5373 | is larger or equal to targetm.max_anchor_offset. | |
5374 | ||
5375 | 2016-11-17 Pip Cet <pipcet@gmail.com> | |
5376 | Eric Botcazou <ebotcazou@adacore.com> | |
5377 | ||
5378 | PR rtl-optimization/78355 | |
5379 | * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Document that the macro only | |
5380 | needs to deal with unaligned accesses. | |
5381 | * doc/tm.texi: Regenerate. | |
5382 | * lra-constraints.c (simplify_operand_subreg): Only invoke | |
5383 | SLOW_UNALIGNED_ACCESS on innermode if the MEM is not aligned enough. | |
5384 | ||
5385 | 2016-11-17 David Malcolm <dmalcolm@redhat.com> | |
5386 | ||
5387 | * input.c (selftest::test_lexer_string_locations_long_line): New | |
5388 | function. | |
5389 | (selftest::test_lexer_string_locations_raw_string_multiline): New | |
5390 | function. | |
5391 | (selftest::input_c_tests): Call the new functions, via | |
5392 | for_each_line_table_case. | |
5393 | ||
5394 | 2016-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
5395 | ||
5396 | * config/aarch64/aarch64.md (mov<mode>): Call | |
5397 | aarch64_split_dimode_const_store on DImode constant stores. | |
5398 | * config/aarch64/aarch64-protos.h (aarch64_split_dimode_const_store): | |
5399 | New prototype. | |
5400 | * config/aarch64/aarch64.c (aarch64_split_dimode_const_store): New | |
5401 | function. | |
5402 | ||
5403 | 2016-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
5404 | Richard Biener <rguenther@suse.de> | |
5405 | ||
5406 | PR tree-optimization/77848 | |
5407 | * tree-if-conv.c (tree_if_conversion): Always version loops unless | |
5408 | the user specified -ftree-loop-if-convert. | |
5409 | ||
5410 | 2016-11-17 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
5411 | ||
5412 | PR target/77308 | |
5413 | * config/arm/arm.md (*thumb2_ldrd, *thumb2_ldrd_base, | |
5414 | *thumb2_ldrd_base_neg, *thumb2_strd, *thumb2_strd_base, | |
5415 | *thumb2_strd_base_neg): Recognize insn regardless of | |
5416 | current_tune->prefer_ldrd_strd. | |
5417 | * config/arm/ldrdstrd.md: Enable all ldrd/strd peephole rules | |
5418 | whenever possible. | |
5419 | ||
5420 | 2016-11-17 Claudiu Zissulescu <claziss@synopsys.com> | |
5421 | ||
5422 | * config/arc/arc.c (arc_ccfsm_post_advance): Handle return | |
5423 | instruction type. | |
5424 | ||
5425 | 2016-11-17 Claudiu Zissulescu <claziss@synopsys.com> | |
5426 | ||
5427 | * config/arc/arc-arches.def: Add FPX quarkse instruction as valid | |
5428 | for arcem. | |
5429 | * config/arc/arc-c.def (__ARC_FPX_QUARK__): Define. | |
5430 | * config/arc/arc-cpus.def (quarkse_em): Add. | |
5431 | * config/arc/arc-options.def (FL_FPX_QUARK, FL_QUARK): Likewise. | |
5432 | * config/arc/arc-opts.h (FPX_QK): Define. | |
5433 | * config/arc/arc-tables.opt: Regenerate. | |
5434 | * config/arc/arc.c (gen_compare_reg): Change. | |
5435 | (arc_register_move_cost): Avoid Dy,Dx moves. | |
5436 | * config/arc/arc.h (TARGET_HARD_FLOAT): Change. | |
5437 | (TARGET_FPX_QUARK, TARGET_FP_ASSIST): Define. | |
5438 | * config/arc/arc.md (divsf3, sqrtsf2, fix_truncsfsi2, floatsisf2): | |
5439 | New expands. | |
5440 | * config/arc/fpu.md (divsf3_fpu, sqrtsf2_fpu, floatsisf2_fpu) | |
5441 | (fix_truncsfsi2_fpu): Rename. | |
5442 | * config/arc/fpx.md (cmp_quark, cmpsf_quark_, cmpsf_quark_ord) | |
5443 | (cmpsf_quark_uneq, cmpsf_quark_eq, divsf3_quark, sqrtsf2_quark) | |
5444 | (fix_truncsfsi2_quark, floatsisf2_quark): New patterns. | |
5445 | * config/arc/t-multilib: Regenerate. | |
5446 | ||
5447 | 2016-11-17 Georg-Johann Lay <avr@gjlay.de> | |
5448 | ||
5449 | * config/avr/avr.c (avr_print_operand_address): Use CONST_INT_P if | |
5450 | appropriate. | |
5451 | (ashlqi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out): Same. | |
5452 | (ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Same. | |
5453 | (avr_rtx_costs_1, extra_constraint_Q): Same. | |
5454 | (avr_address_cost): Use SUBREG_P if possible. | |
5455 | ||
5456 | 2016-11-17 Richard Biener <rguenther@suse.de> | |
5457 | ||
5458 | PR middle-end/78383 | |
5459 | * tree-cfgcleanup.c (cleanup_control_flow_bb): Do not turn | |
5460 | non-local goto into CFG. | |
5461 | ||
5462 | 2016-11-17 Richard Biener <rguenther@suse.de> | |
5463 | ||
5464 | * common.opt (ftree-loop-if-convert-stores): Mark as preserved for | |
5465 | backward compatibility. | |
5466 | * doc/invoke.texi (ftree-loop-if-convert-stores): Remove. | |
5467 | * tree-if-conv.c (pass_if_conversion::gate): Do not test | |
5468 | flag_tree_loop_if_convert_stores. | |
5469 | (pass_if_conversion::execute): Likewise. | |
5470 | ||
5471 | 2016-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
5472 | ||
5473 | * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): Check for | |
5474 | const_double code before calling aarch64_float_const_zero_rtx_p. | |
5475 | ||
5476 | 2016-11-17 Richard Biener <rguenther@suse.de> | |
5477 | ||
5478 | PR tree-optimization/78306 | |
5479 | * ipa-inline-analysis.c (initialize_inline_failed): Do not | |
5480 | inhibit inlining if function calls cilk_spawn. | |
5481 | (can_inline_edge_p): Likewise. | |
5482 | ||
5483 | 2016-11-17 Richard Biener <rguenther@suse.de> | |
5484 | ||
5485 | PR middle-end/78305 | |
5486 | * fold-const.c (negate_expr_p): Fix multiplication case. | |
5487 | ||
5488 | 2016-11-17 Chung-Lin Tang <cltang@codesourcery.com> | |
5489 | ||
5490 | PR target/78357 | |
5491 | * config/nios2/nios2.c (nios2_init_libfuncs): Remove TARGET_LINUX_ABI | |
5492 | condition. | |
5493 | (TARGET_INIT_LIBFUNCS): Delete definition and... | |
5494 | * config/nios2/linux.h (TARGET_INIT_LIBFUNCS): ...move to here, add | |
5495 | comments. | |
5496 | ||
5497 | 2016-11-17 Krister Walfridsson <krister.walfridsson@gmail.com> | |
5498 | ||
5499 | * config/netbsd-stdint.h: New. | |
5500 | * config.gcc (i[34567]86-*-netbsd): Add netbsd-stdint.h to tm_file. | |
5501 | (x86_64-*-netbsd*): Likewise. | |
5502 | ||
5503 | 2016-11-16 Andrew PInski <apinski@cavium.com> | |
5504 | ||
5505 | * config/aarch64/aarch64.opt (mverbose-cost-dump): New option. | |
5506 | * config/aarch64/aarch64.c (aarch64_rtx_costs): Use | |
5507 | flag_aarch64_verbose_cost instead of checking for details dump. | |
5508 | (aarch64_rtx_costs_wrapper): Likewise. | |
5509 | ||
5510 | 2016-11-16 Jakub Jelinek <jakub@redhat.com> | |
5511 | ||
5512 | PR rtl-optimization/78378 | |
5513 | * combine.c (make_extraction): Use force_to_mode for non-{REG,MEM} | |
5514 | inner only if pos is 0. Fix up formatting. | |
5515 | ||
5516 | 2016-11-17 Alan Modra <amodra@gmail.com> | |
5517 | ||
5518 | PR rtl-optimization/78325 | |
5519 | PR rtl-optimization/70890 | |
5520 | * ira.c (combine_and_move_insns): Only remove REG_EQUIV notes | |
5521 | for dead regno. | |
5522 | ||
5523 | 2016-11-16 Jason Merrill <jason@redhat.com> | |
5524 | ||
5525 | * rtl.h: Declare gt_ggc_mx and gt_pch_nx. | |
5526 | ||
5527 | 2016-11-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
5528 | Richard Biener <rguenther@suse.de> | |
5529 | ||
5530 | PR tree-optimization/77848 | |
5531 | * tree-if-conv.c (version_loop_for_if_conversion): When versioning | |
5532 | an outer loop, only save basic block aux information for the inner | |
5533 | loop. | |
5534 | (versionable_outer_loop_p): New function. | |
5535 | (tree_if_conversion): Version the outer loop instead of the inner | |
5536 | one if the pattern will be recognized for outer-loop | |
5537 | vectorization. | |
5538 | ||
5539 | 2016-11-16 Andrew Burgess <andrew.burgess@embecosm.com> | |
5540 | ||
5541 | * gcc/bb-reorder.c: Remove 'toplev.h' include. | |
5542 | (pass_partition_blocks::gate): No longer check | |
5543 | user_defined_section_attribute, instead check the function decl | |
5544 | for a section attribute. | |
5545 | * gcc/c-family/c-attribs.c (handle_section_attribute): No longer | |
5546 | set user_defined_section_attribute. | |
5547 | * gcc/final.c (rest_of_handle_final): Likewise. | |
5548 | * gcc/toplev.c: Remove definition of user_defined_section_attribute. | |
5549 | * gcc/toplev.h: Remove declaration of | |
5550 | user_defined_section_attribute. | |
5551 | ||
5552 | 2016-11-16 Maciej W. Rozycki <macro@imgtec.com> | |
5553 | ||
5554 | * config/mips/mips.md (casesi_internal_mips16_<mode>): | |
5555 | Explicitly switch between JR and JRC for the table jump. Adjust | |
5556 | instruction count. | |
5557 | ||
5558 | 2016-11-16 Maciej W. Rozycki <macro@imgtec.com> | |
5559 | ||
5560 | * config/mips/mips.md (casesi_internal_mips16_<mode>): Set | |
5561 | `insn_count' to 11 rather than 16. | |
5562 | ||
5563 | 2016-11-16 Maciej W. Rozycki <macro@imgtec.com> | |
5564 | ||
5565 | * config/mips/mips.md (casesi_internal_mips16_<mode>): Use the | |
5566 | `ltu' rather than `leu' operation in the RTL pattern | |
5567 | ||
5568 | 2016-11-16 Maciej W. Rozycki <macro@imgtec.com> | |
5569 | ||
5570 | * config/mips/mips.md (casesi_internal_mips16_<mode>): Add | |
5571 | missing <d> instruction prefixes throughout. Correct | |
5572 | formatting. | |
5573 | ||
5574 | 2016-11-16 Maciej W. Rozycki <macro@imgtec.com> | |
5575 | ||
5576 | * config/mips/mips.c (mips_output_jump): Output R_MICROMIPS_JALR | |
5577 | rather than R_MIPS_JALR relocation in microMIPS code. Do not | |
5578 | cancel short delay slots in PIC call relaxation. | |
5579 | ||
5580 | 2016-11-16 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
5581 | ||
5582 | * config/arm/arm.md (arm_addsi3): Add alternative for addition of | |
5583 | general register with general register or ARM constant into SP | |
5584 | register. | |
5585 | ||
5586 | 2016-11-16 Jakub Jelinek <jakub@redhat.com> | |
5587 | ||
5588 | PR fortran/78299 | |
5589 | * omp-low.c (expand_omp_for_static_nochunk): Don't assert | |
5590 | that loop->header == body_bb if broken_loop. | |
5591 | ||
5592 | 2015-11-16 Wilco Dijkstra <wdijkstr@arm.com> | |
5593 | ||
5594 | * tree-ssa-math-opts.c (bswap_replace): Remove test | |
5595 | of SLOW_UNALIGNED_ACCESS. | |
5596 | ||
5597 | 2016-11-16 Alexander Monakov <amonakov@ispras.ru> | |
5598 | ||
5599 | * config/nvptx/mkoffload.c (main): Check that either OpenACC or OpenMP | |
5600 | is selected. Pass -mgomp to offload compiler in OpenMP case. | |
5601 | * config/nvptx/nvptx-protos.h (nvptx_shuffle_kind): Move enum | |
5602 | declaration from nvptx.c. | |
5603 | (nvptx_gen_shuffle): Declare. | |
5604 | (nvptx_output_set_softstack): Declare. | |
5605 | * config/nvptx/nvptx.c (nvptx_shuffle_kind): Move to nvptx-protos.h. | |
5606 | (need_softstack_decl): New variable. | |
5607 | (need_unisimt_decl): New variable. | |
5608 | (diagnose_openacc_conflict): New. Use it... | |
5609 | (nvptx_option_override): ...here. Handle TARGET_GOMP. | |
5610 | (nvptx_encode_section_info): Handle "shared" attribute. | |
5611 | (write_as_kernel): Restrict to OpenACC target regions. | |
5612 | (init_softstack_frame): New. | |
5613 | (nvptx_init_unisimt_predicate): New. | |
5614 | (write_omp_entry): New. Use it... | |
5615 | (nvptx_declare_function_name): ...here to emit OpenMP target region | |
5616 | entrypoints. Handle TARGET_SOFT_STACK. Call | |
5617 | nvptx_init_unisimt_predicate. | |
5618 | (nvptx_output_set_softstack): New. | |
5619 | (nvptx_get_drap_rtx): Return %argp as the DRAP if needed. | |
5620 | (nvptx_gen_shuffle): Export. | |
5621 | (nvptx_output_call_insn): Handle COND_EXEC patterns. Emit instruction | |
5622 | predicate. | |
5623 | (nvptx_print_operand): Fix handling of instruction predicates. | |
5624 | (nvptx_get_unisimt_master): New helper function. | |
5625 | (nvptx_get_unisimt_predicate): Ditto. | |
5626 | (nvptx_call_insn_is_syscall_p): Ditto. | |
5627 | (nvptx_unisimt_handle_set): Ditto. | |
5628 | (nvptx_reorg_uniform_simt): New. Transform code for -muniform-simt. | |
5629 | (nvptx_reorg): Call nvptx_reorg_uniform_simt. | |
5630 | (nvptx_handle_shared_attribute): New. Use it... | |
5631 | (nvptx_attribute_table): ... here (new entry). | |
5632 | (nvptx_record_offload_symbol): Handle NULL attributes. | |
5633 | (nvptx_file_end): Handle need_softstack_decl and need_unisimt_decl. | |
5634 | (nvptx_simt_vf): New. | |
5635 | (TARGET_SIMT_VF): Define. | |
5636 | * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Define | |
5637 | __nvptx_softstack or __nvptx_unisimt__ when -msoft-stack, or resp. | |
5638 | -muniform-simt option is active. | |
5639 | (STACK_SIZE_MODE): Define. | |
5640 | (FIXED_REGISTERS): Adjust. | |
5641 | (SOFTSTACK_SLOT_REGNUM): New. | |
5642 | (SOFTSTACK_PREV_REGNUM): New. | |
5643 | (REGISTER_NAMES): Adjust. | |
5644 | (struct machine_function): New fields. | |
5645 | * config/nvptx/nvptx.md (UNSPEC_SET_SOFTSTACK): New. | |
5646 | (UNSPEC_VOTE_BALLOT): Ditto. | |
5647 | (UNSPEC_LANEID): Ditto. | |
5648 | (UNSPECV_NOUNROLL): Ditto. | |
5649 | (atomic): New attribute. | |
5650 | (predicable): New attribute. Generate predicated forms via | |
5651 | define_cond_exec. | |
5652 | (br_true): Mark as not predicable. | |
5653 | (br_false): Ditto. | |
5654 | (br_true_uni): Ditto. | |
5655 | (br_false_uni): Ditto. | |
5656 | (return): Ditto. | |
5657 | (trap_if_true): Ditto. | |
5658 | (trap_if_false): Ditto. | |
5659 | (nvptx_fork): Ditto. | |
5660 | (nvptx_forked): Ditto. | |
5661 | (nvptx_joining): Ditto. | |
5662 | (nvptx_join): Ditto. | |
5663 | (nvptx_barsync): Ditto. | |
5664 | (epilogue): Emit stack restore if TARGET_SOFT_STACK. | |
5665 | (allocate_stack): Implement for TARGET_SOFT_STACK. Remove unused code. | |
5666 | (allocate_stack_<mode>): Remove unused pattern. | |
5667 | (set_softstack_insn): New pattern. | |
5668 | (restore_stack_block): Handle for TARGET_SOFT_STACK. | |
5669 | (nvptx_vote_ballot): New pattern. | |
5670 | (omp_simt_lane): Ditto. | |
5671 | (omp_simt_last_lane): Ditto. | |
5672 | (omp_simt_ordered): Ditto. | |
5673 | (omp_simt_vote_any): Ditto. | |
5674 | (omp_simt_xchg_bfly): Ditto. | |
5675 | (omp_simt_xchg_idx): Ditto. | |
5676 | (nvptx_nounroll): Ditto. | |
5677 | (atomic_compare_and_swap<mode>_1): Mark with atomic attribute. | |
5678 | (atomic_exchange<mode>): Ditto. | |
5679 | (atomic_fetch_add<mode>): Ditto. | |
5680 | (atomic_fetch_addsf): Ditto. | |
5681 | (atomic_fetch_<logic><mode>): Ditto. | |
5682 | * config/nvptx/nvptx.opt (msoft-stack): New option. | |
5683 | (muniform-simt): Ditto. | |
5684 | (mgomp): Ditto. | |
5685 | * config/nvptx/t-nvptx (MULTILIB_OPTIONS): New. | |
5686 | * doc/extend.texi (Nvidia PTX Variable Attributes): New section. | |
5687 | * doc/invoke.texi (msoft-stack): Document. | |
5688 | (muniform-simt): Document | |
5689 | (mgomp): Document. | |
5690 | * doc/tm.texi: Regenerate. | |
5691 | * doc/tm.texi.in (TARGET_SIMT_VF): New hook. | |
5692 | * target.def: Define it. | |
5693 | * target-insns.def (omp_simt_lane): New. | |
5694 | (omp_simt_last_lane): New. | |
5695 | (omp_simt_ordered): New. | |
5696 | (omp_simt_vote_any): New. | |
5697 | (omp_simt_xchg_bfly): New. | |
5698 | (omp_simt_xchg_idx): New. | |
5699 | ||
5700 | 2016-11-16 Maciej W. Rozycki <macro@imgtec.com> | |
5701 | ||
5702 | * config/mips/mips-protos.h (mips_set_text_contents_type): New | |
5703 | prototype. | |
5704 | * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): New macro. | |
5705 | (ASM_OUTPUT_CASE_END): Likewise. | |
5706 | * config/mips/mips.c (mips_set_text_contents_type): New function. | |
5707 | (mips16_emit_constants): Record the pool's initial label number | |
5708 | with the `consttable' insn. Emit a `consttable_end' insn at the end. | |
5709 | (mips_final_prescan_insn): Call `mips_set_text_contents_type' | |
5710 | for `consttable' insns. | |
5711 | (mips_final_postscan_insn): Call `mips_set_text_contents_type' | |
5712 | for `consttable_end' insns. | |
5713 | * config/mips/mips.md (unspec): Add UNSPEC_CONSTTABLE_END enum value. | |
5714 | (consttable): Add operand. | |
5715 | (consttable_end): New insn. | |
5716 | ||
5717 | 2016-11-16 Yuri Rumyantsev <ysrumyan@gmail.com> | |
5718 | ||
5719 | * params.def (PARAM_VECT_EPILOGUES_NOMASK): New. | |
5720 | * tree-if-conv.c (tree_if_conversion): Make public. | |
5721 | * * tree-if-conv.h: New file. | |
5722 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependences) Avoid | |
5723 | dynamic alias checks for epilogues. | |
5724 | * tree-vect-loop-manip.c (vect_do_peeling): Return created epilog. | |
5725 | * tree-vect-loop.c: include tree-if-conv.h. | |
5726 | (new_loop_vec_info): Add zeroing orig_loop_info field. | |
5727 | (vect_analyze_loop_2): Don't try to enhance alignment for epilogues. | |
5728 | (vect_analyze_loop): Add argument ORIG_LOOP_INFO which is not NULL | |
5729 | if epilogue is vectorized, set up orig_loop_info field of loop_vinfo | |
5730 | using passed argument. | |
5731 | (vect_transform_loop): Check if created epilogue should be returned | |
5732 | for further vectorization with less vf. If-convert epilogue if | |
5733 | required. Print vectorization success for epilogue. | |
5734 | * tree-vectorizer.c (vectorize_loops): Add epilogue vectorization | |
5735 | if it is required, pass loop_vinfo produced during vectorization of | |
5736 | loop body to vect_analyze_loop. | |
5737 | * tree-vectorizer.h (struct _loop_vec_info): Add new field | |
5738 | orig_loop_info. | |
5739 | (LOOP_VINFO_ORIG_LOOP_INFO): New. | |
5740 | (LOOP_VINFO_EPILOGUE_P): New. | |
5741 | (LOOP_VINFO_ORIG_VECT_FACTOR): New. | |
5742 | (vect_do_peeling): Change prototype to return epilogue. | |
5743 | (vect_analyze_loop): Add argument of loop_vec_info type. | |
5744 | (vect_transform_loop): Return created loop. | |
5745 | ||
5746 | 2016-11-16 Segher Boessenkool <segher@kernel.crashing.org> | |
5747 | ||
5748 | * config/rs6000/rs6000.c (rs6000_components_for_bb): Mark the LR | |
5749 | component as used also if LR_REGNO is a live input to the bb. | |
5750 | * df-scan.c (df_get_entry_block_def_set): Return immediately after | |
5751 | clearing the set if DF_SCAN_EMPTY_ENTRY_EXIT is set. | |
5752 | (df_get_exit_block_use_set): Ditto. | |
5753 | * df.h (df_scan_flags): New enum. | |
5754 | * shrink-wrap.c (try_shrink_wrapping_separate): Set | |
5755 | DF_SCAN_EMPTY_ENTRY_EXIT in df_scan->local_flags, and call | |
5756 | df_update_entry_block_defs and df_update_exit_block_uses | |
5757 | at the start; clear the flag and call those functions at the end. | |
5758 | ||
5759 | 2016-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
5760 | Alan Hayward <alan.hayward@arm.com> | |
5761 | David Sherwood <david.sherwood@arm.com> | |
5762 | ||
5763 | * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Set | |
5764 | nb_iterations to the number of latch iterations rather than the | |
5765 | number of loop iterations. | |
5766 | ||
5767 | 2016-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
5768 | Alan Hayward <alan.hayward@arm.com> | |
5769 | David Sherwood <david.sherwood@arm.com> | |
5770 | ||
5771 | * combine.c (maybe_swap_commutative_operands): New function. | |
5772 | (combine_simplify_rtx): Use it. | |
5773 | (change_zero_ext): Likewise. | |
5774 | (make_compound_operation_int): New function, split out of... | |
5775 | (make_compound_operation): ...here. Use | |
5776 | maybe_swap_commutative_operands for both. | |
5777 | ||
5778 | 2016-11-16 Richard Earnshaw <rearnsha@arm.com> | |
5779 | ||
5780 | * arm/arm-fpus.def (vfpv2): New FPU, currently an alias for 'vfp'. | |
5781 | (neon-vfpv3): New FPU, currently an alias for 'neon'. | |
5782 | * arm/arm-tables.opt: Regenerated. | |
5783 | * arm/t-aprofile (MULTILIB_REUSE): Add reuse rules for vfpv2 and | |
5784 | neon-vfpv3. | |
5785 | * doc/invoke.texi (ARM: -mfpu): Document new options. Note that 'vfp' | |
5786 | and 'neon' are aliases for specific implementations. | |
5787 | ||
5788 | 2016-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
5789 | Alan Hayward <alan.hayward@arm.com> | |
5790 | David Sherwood <david.sherwood@arm.com> | |
5791 | ||
5792 | * optabs.c (vector_compare_rtx): Add a cmp_mode parameter | |
5793 | and use it in the final call to gen_rtx_fmt_ee. | |
5794 | (expand_vec_cond_expr): Update accordingly. | |
5795 | (expand_vec_cmp_expr): Likewise. | |
5796 | ||
5797 | 2016-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
5798 | Alan Hayward <alan.hayward@arm.com> | |
5799 | David Sherwood <david.sherwood@arm.com> | |
5800 | ||
5801 | * cprop.c (local_cprop_find_used_regs): Use df_read_modify_subreg_p. | |
5802 | ||
5803 | 2016-11-16 Richard Biener <rguenther@suse.de> | |
5804 | ||
5805 | PR middle-end/78333 | |
5806 | * gimplify.c (gimplify_function_tree): Do not instrument | |
5807 | GNU extern inline functions. | |
5808 | ||
5809 | 2016-11-16 Martin Liska <mliska@suse.cz> | |
5810 | ||
5811 | PR sanitizer/78270 | |
5812 | * gimplify.c (gimplify_switch_expr): Always save previous | |
5813 | gimplify_ctxp->live_switch_vars. | |
5814 | ||
5815 | 2016-11-16 Andrew Burgess <andrew.burgess@embecosm.com> | |
5816 | ||
5817 | * config/arc/arc.md (movb peephole2): New peephole2 to merge two | |
5818 | zero_extract operations to allow a movb to occur. | |
5819 | * testsuite/gcc.target/arc/movb-1.c: Update little endian arc results. | |
5820 | * testsuite/gcc.target/arc/movb-2.c: Likewise. | |
5821 | * testsuite/gcc.target/arc/movb-5.c: Likewise. | |
5822 | * testsuite/gcc.target/arc/movh_cl-1.c: Extend test to cover | |
5823 | little endian arc. | |
5824 | ||
5825 | 2016-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
5826 | Alan Hayward <alan.hayward@arm.com> | |
5827 | David Sherwood <david.sherwood@arm.com> | |
5828 | ||
5829 | * expr.c (emit_group_load_1): Tighten check for whether an | |
5830 | access involves only one operand of a CONCAT. Use extract_bit_field | |
5831 | for constants if the bit range does span the whole operand. | |
5832 | ||
5833 | 2016-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
5834 | Alan Hayward <alan.hayward@arm.com> | |
5835 | David Sherwood <david.sherwood@arm.com> | |
5836 | ||
5837 | * rtlanal.c (rtx_addr_can_trap_p_1): Handle unknown sizes. | |
5838 | ||
5839 | 2016-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
5840 | Alan Hayward <alan.hayward@arm.com> | |
5841 | David Sherwood <david.sherwood@arm.com> | |
5842 | ||
5843 | * tree-vect-loop.c (vect_transform_loop): Protect the updates of | |
5844 | all three iteration counts with an any_* test. Use a single update | |
5845 | for each count. Fix the calculation of nb_iterations_estimate. | |
5846 | ||
5847 | 2016-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
5848 | ||
5849 | * config/pdp11/pdp11.c: Include dbxout.h. | |
5850 | ||
5851 | 2016-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
5852 | ||
5853 | * config/arc/arc.c (arc_loop_hazard): Add missing brackets. | |
5854 | ||
5855 | 2016-11-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
5856 | ||
5857 | PR target/78364 | |
5858 | * config/arm/arm.md (*extv_reg): Restrict operands 2 and 3 to the | |
5859 | proper ranges for an SBFX instruction. | |
5860 | (extzv_t2): Likewise for UBFX. | |
5861 | ||
5862 | 2016-11-16 Richard Biener <rguenther@suse.de> | |
5863 | ||
5864 | PR tree-optimization/78348 | |
5865 | * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMMOVE. | |
5866 | (generate_memcpy_builtin): Honor PKIND_MEMCPY on the partition. | |
5867 | (classify_partition): Set PKIND_MEMCPY if dependence analysis | |
5868 | revealed no dependency, PKIND_MEMMOVE otherwise. | |
5869 | ||
5870 | 2016-11-16 Jakub Jelinek <jakub@redhat.com> | |
5871 | ||
5872 | PR sanitizer/77823 | |
5873 | * ubsan.c (ubsan_build_overflow_builtin): Add DATAP argument, if | |
5874 | it points to non-NULL tree, use it instead of ubsan_create_data. | |
5875 | (instrument_si_overflow): Handle vector signed integer overflow | |
5876 | checking. | |
5877 | * ubsan.h (ubsan_build_overflow_builtin): Add DATAP argument. | |
5878 | * tree-vrp.c (simplify_internal_call_using_ranges): Punt for | |
5879 | vector IFN_UBSAN_CHECK_*. | |
5880 | * internal-fn.c (expand_addsub_overflow): Add DATAP argument, | |
5881 | pass it through to ubsan_build_overflow_builtin. | |
5882 | (expand_neg_overflow, expand_mul_overflow): Likewise. | |
5883 | (expand_vector_ubsan_overflow): New function. | |
5884 | (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB, | |
5885 | expand_UBSAN_CHECK_MUL): Use tit for vector arithmetics. | |
5886 | (expand_arith_overflow): Adjust expand_*_overflow callers. | |
5887 | ||
5888 | 2016-11-16 Matthias Klose <doko@ubuntu.com> | |
5889 | ||
5890 | * doc/install.texi: Remove references to java/libjava. | |
5891 | ||
5892 | 2016-11-16 Kugan Vivekanandarajah <kuganv@linaro.org> | |
5893 | ||
5894 | * tree-ssa-coalesce.c (register_default_def): Remove | |
5895 | register_ssa_partition. | |
5896 | (create_outofssa_var_map): Likewise. | |
5897 | * tree-ssa-live.c (register_ssa_partition_check): Remove. | |
5898 | * tree-ssa-live.h (register_ssa_partition): Likewise. | |
5899 | ||
5900 | 2016-11-15 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
5901 | ||
5902 | * genattrtab.c (attr_rtx_1): Avoid allocating new rtx objects. | |
5903 | Clear ATTR_CURR_SIMPLIFIED_P for re-used binary rtx objects. | |
5904 | Use DEF_ATTR_STRING for string arguments. Use RTL_HASH for | |
5905 | integer arguments. Only set ATTR_PERMANENT_P on newly hashed | |
5906 | rtx when all sub-rtx are also permanent. | |
5907 | (attr_eq): Simplify. | |
5908 | (attr_copy_rtx): Remove. | |
5909 | (make_canonical, get_attr_value): Use attr_equal_p. | |
5910 | (copy_boolean): Rehash NOT. | |
5911 | (simplify_test_exp_in_temp, | |
5912 | optimize_attrs): Remove call to attr_copy_rtx. | |
5913 | (attr_alt_intersection, attr_alt_union, | |
5914 | attr_alt_complement, mk_attr_alt): Rehash EQ_ATTR_ALT. | |
5915 | (make_automaton_attrs): Use attr_eq. | |
5916 | ||
5917 | 2016-11-15 Matthias Klose <doko@ubuntu.com> | |
5918 | ||
5919 | * doc/install.texi: Remove references to java/libjava. | |
5920 | * doc/sourcebuild.texi: Likewise. | |
5921 | * doc/invoke.texi: Likewise. | |
5922 | * doc/standards.texi: Likewise. | |
5923 | ||
5924 | 2016-11-15 Richard Sandiford <richard.sandiford@arm.com> | |
5925 | Alan Hayward <alan.hayward@arm.com> | |
5926 | David Sherwood <david.sherwood@arm.com> | |
5927 | ||
5928 | * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use Pmode instead | |
5929 | of VOIDmode. | |
5930 | * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Likewise. | |
5931 | * config/iq2000/iq2000.h (INCOMING_RETURN_ADDR_RTX): Likewise. | |
5932 | * config/m68k/m68k.h (INCOMING_RETURN_ADDR_RTX): Likewise. | |
5933 | * config/microblaze/microblaze.h (INCOMING_RETURN_ADDR_RTX): Likewise. | |
5934 | * config/mips/mips.h (INCOMING_RETURN_ADDR_RTX): Likewise. | |
5935 | * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Likewise. | |
5936 | * config/nios2/nios2.h (INCOMING_RETURN_ADDR_RTX): Likewise. | |
5937 | ||
5938 | 2016-11-15 Richard Sandiford <richard.sandiford@arm.com> | |
5939 | Alan Hayward <alan.hayward@arm.com> | |
5940 | David Sherwood <david.sherwood@arm.com> | |
5941 | ||
5942 | * dce.c (check_argument_store): Pass the size instead of | |
5943 | the memory reference. | |
5944 | (find_call_stack_args): Pass MEM_SIZE to check_argument_store. | |
5945 | ||
5946 | 2016-11-15 Richard Sandiford <richard.sandiford@arm.com> | |
5947 | Alan Hayward <alan.hayward@arm.com> | |
5948 | David Sherwood <david.sherwood@arm.com> | |
5949 | ||
5950 | * alias.c (canon_rtx): Use simplify_gen_binary. | |
5951 | ||
5952 | 2016-11-15 Richard Sandiford <richard.sandiford@arm.com> | |
5953 | Alan Hayward <alan.hayward@arm.com> | |
5954 | David Sherwood <david.sherwood@arm.com> | |
5955 | ||
5956 | * rtl.h (load_extend_op): Declare. | |
5957 | * rtlanal.c (load_extend_op): New function. | |
5958 | (nonzero_bits1): Use it. | |
5959 | (num_sign_bit_copies1): Likewise. | |
5960 | * cse.c (cse_insn): Likewise. | |
5961 | * fold-const.c (fold_single_bit_test): Likewise. | |
5962 | (fold_unary_loc): Likewise. | |
5963 | * fwprop.c (free_load_extend): Likewise. | |
5964 | * postreload.c (reload_cse_simplify_set): Likewise. | |
5965 | (reload_cse_simplify_operands): Likewise. | |
5966 | * combine.c (try_combine): Likewise. | |
5967 | (simplify_set): Likewise. Remove redundant SUBREG_BYTE and | |
5968 | subreg_lowpart_p checks. | |
5969 | ||
5970 | 2016-11-15 Richard Sandiford <richard.sandiford@arm.com> | |
5971 | Alan Hayward <alan.hayward@arm.com> | |
5972 | David Sherwood <david.sherwood@arm.com> | |
5973 | ||
5974 | * combine.c (simplify_shift_const_1): Use the number of bits | |
5975 | in the inner mode to determine the range of the shift. | |
5976 | When handling shifts of vectors, skip any rules that apply | |
5977 | only to scalars. | |
5978 | ||
5979 | 2016-11-15 Richard Sandiford <richard.sandiford@arm.com> | |
5980 | Alan Hayward <alan.hayward@arm.com> | |
5981 | David Sherwood <david.sherwood@arm.com> | |
5982 | ||
5983 | * rtlanal.c (num_sign_bit_copies1): Calculate bitwidth after | |
5984 | handling VOIDmode. | |
5985 | ||
5986 | 2016-11-15 Matthias Klose <doko@ubuntu.com> | |
5987 | ||
5988 | * doc/install.texi: Remove references to gcj/libjava. | |
5989 | * doc/invoke.texi: Likewise. | |
5990 | ||
5991 | 2016-11-15 Jeff Law <law@redhat.com> | |
5992 | ||
5993 | * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove unneeded | |
5994 | parameter. Callers changed. | |
5995 | (check-subpath_and_update_thread_path): Extracted from | |
5996 | fsm_find_control_statement_thread_paths. | |
5997 | (handle_phi, handle_assignment, handle_assignment_p): Likewise. | |
5998 | (handle_phi, handle_assignment): Allow any constant node, not | |
5999 | just INTEGER_CST. | |
6000 | ||
6001 | 2016-11-15 Claudiu Zissulescu <claziss@synopsys.com> | |
6002 | ||
6003 | * config/arc/arc-arch.h: New file. | |
6004 | * config/arc/arc-arches.def: Likewise. | |
6005 | * config/arc/arc-cpus.def: Likewise. | |
6006 | * config/arc/arc-options.def: Likewise. | |
6007 | * config/arc/t-multilib: Likewise. | |
6008 | * config/arc/genmultilib.awk: Likewise. | |
6009 | * config/arc/genoptions.awk: Likewise. | |
6010 | * config/arc/arc-tables.opt: Likewise. | |
6011 | * config/arc/driver-arc.c: Likewise. | |
6012 | * testsuite/gcc.target/arc/nps400-cpu-flag.c: Likewise. | |
6013 | * common/config/arc/arc-common.c (arc_handle_option): Trace | |
6014 | toggled options. | |
6015 | * config.gcc (arc*-*-*): Add arc-tables.opt to arc's extra | |
6016 | options; check for supported cpu against arc-cpus.def file. | |
6017 | (arc*-*-elf*, arc*-*-linux-uclibc*): Use new make fragment; define | |
6018 | TARGET_CPU_BUILD macro; add driver-arc.o as an extra object. | |
6019 | * config/arc/arc-c.def: Add emacs local variables. | |
6020 | * config/arc/arc-opts.h (processor_type): Use arc-cpus.def file. | |
6021 | (FPU_FPUS, FPU_FPUD, FPU_FPUDA, FPU_FPUDA_DIV, FPU_FPUDA_FMA) | |
6022 | (FPU_FPUDA_ALL, FPU_FPUS_DIV, FPU_FPUS_FMA, FPU_FPUS_ALL) | |
6023 | (FPU_FPUD_DIV, FPU_FPUD_FMA, FPU_FPUD_ALL): New defines. | |
6024 | (DEFAULT_arc_fpu_build): Define. | |
6025 | (DEFAULT_arc_mpy_option): Define. | |
6026 | * config/arc/arc-protos.h (arc_init): Delete. | |
6027 | * config/arc/arc.c (arc_cpu_name): New variable. | |
6028 | (arc_selected_cpu, arc_selected_arch, arc_arcem, arc_archs) | |
6029 | (arc_arc700, arc_arc600, arc_arc601): New variable. | |
6030 | (arc_init): Add static; remove selection of default tune value, | |
6031 | cleanup obsolete error messages. | |
6032 | (arc_override_options): Make use of .def files for selecting the | |
6033 | right cpu and option configurations. | |
6034 | * config/arc/arc.h (stdbool.h): Include. | |
6035 | (TARGET_CPU_DEFAULT): Define. | |
6036 | (CPP_SPEC): Remove mcpu=NPS400 handling. | |
6037 | (arc_cpu_to_as): Declare. | |
6038 | (EXTRA_SPEC_FUNCTIONS): Define. | |
6039 | (OPTION_DEFAULT_SPECS): Likewise. | |
6040 | (ASM_DEFAULT): Remove. | |
6041 | (ASM_SPEC): Use arc_cpu_to_as. | |
6042 | (DRIVER_SELF_SPECS): Remove deprecated options. | |
6043 | (arc_base_cpu): Declare. | |
6044 | (TARGET_ARC600, TARGET_ARC601, TARGET_ARC700, TARGET_EM) | |
6045 | (TARGET_HS, TARGET_V2, TARGET_ARC600): Make them use arc_base_cpu | |
6046 | variable. | |
6047 | (MULTILIB_DEFAULTS): Use ARC_MULTILIB_CPU_DEFAULT. | |
6048 | * config/arc/arc.md (attr_cpu): Remove. | |
6049 | * config/arc/arc.opt (mno-mpy): Deprecate. | |
6050 | (mcpu=ARC600, mcpu=ARC601, mcpu=ARC700, mcpu=NPS400, mcpu=ARCEM) | |
6051 | (mcpu=ARCHS): Remove. | |
6052 | (mcrc, mdsp-packa, mdvbf, mmac-d16, mmac-24, mtelephony, mrtsc): | |
6053 | Deprecate. | |
6054 | (mbarrel_shifte, mspfp_, mdpfp_, mdsp_pack, mmac_): Remove. | |
6055 | (arc_fpu): Use new defines. | |
6056 | (mpy-option): Change to use numeric or string like inputs. | |
6057 | * config/arc/t-arc (driver-arc.o): New target. | |
6058 | (arc-cpus, t-multilib, arc-tables.opt): Likewise. | |
6059 | * config/arc/t-arc-newlib: Delete. | |
6060 | * config/arc/t-arc-uClibc: Renamed to t-uClibc. | |
6061 | * doc/invoke.texi (ARC): Update arc options. | |
6062 | ||
6063 | 2016-11-15 Maciej W. Rozycki <macro@imgtec.com> | |
6064 | ||
6065 | * config/mips/mips.c (mips16_emit_constants): Emit `consttable' | |
6066 | insn at the beginning of the constant pool. | |
6067 | (mips_insert_insn_pseudos): New function. | |
6068 | (mips_machine_reorg2): Call it. | |
6069 | * config/mips/mips.md (unspec): Add UNSPEC_CONSTTABLE and | |
6070 | UNSPEC_INSN_PSEUDO enum values. | |
6071 | (insn_pseudo, consttable): New insns. | |
6072 | ||
6073 | 2016-11-15 Michael Matz <matz@suse.de> | |
6074 | ||
6075 | PR missed-optimization/77881 | |
6076 | * combine.c (simplify_comparison): Remove useless subregs | |
6077 | also inside the loop, not just after it. | |
6078 | (make_compound_operation): Recognize some subregs as being | |
6079 | masking as well. | |
6080 | ||
6081 | 2016-11-15 Richard Sandiford <richard.sandiford@arm.com> | |
6082 | Alan Hayward <alan.hayward@arm.com> | |
6083 | David Sherwood <david.sherwood@arm.com> | |
6084 | ||
6085 | * dwarf2out.c (mem_loc_descriptor): Fix GET_MODE_CLASS/ | |
6086 | GET_MODE_SIZE typo. | |
6087 | ||
6088 | 2016-11-14 Michael Meissner <meissner@linux.vnet.ibm.com> | |
6089 | ||
6090 | * config/rs6000/rs6000.c (rs6000_expand_vector_set): Add support | |
6091 | for using xxinsertw and vinsert{b,h} on ISA 3.0. | |
6092 | ||
6093 | * config/rs6000/vsx.md (vsx_extract_<mode>): Update comment. | |
6094 | (vsx_set_<mode>_p9): New insn to generate xxinsertw and | |
6095 | vinsert{b,h} on ISA 3.0. | |
6096 | ||
6097 | 2016-11-14 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
6098 | ||
6099 | * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg | |
6100 | and cmpnop in two steps: first the ones not accessed in original gimple | |
6101 | expression in a endian independent way and then the ones not accessed | |
6102 | in the final result in an endian-specific way. | |
6103 | (bswap_replace): Stop doing big endian adjustment. | |
6104 | ||
6105 | 2016-11-14 Uros Bizjak <ubizjak@gmail.com> | |
6106 | ||
6107 | * config/i386/i386.md (*andndi3_doubleword): Merge operand constraints. | |
6108 | (*ashl<mode>3_doubleword): Ditto. | |
6109 | ||
6110 | 2016-11-14 Martin Liska <mliska@suse.cz> | |
6111 | ||
6112 | * tree-ssa-dse.c (dse_optimize_stmt): Remove quotes and extra new line. | |
6113 | ||
6114 | 2016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com> | |
6115 | Richard Biener <rguenther@suse.de> | |
6116 | ||
6117 | * doc/invoke.texi (fgimple): Document. | |
6118 | * dumpfile.h (TDF_GIMPLE): Add. | |
6119 | * dumpfile.c (dump_options): Add gimple. | |
6120 | * gimple-pretty-print.c (dump_gimple_switch): Adjust dump | |
6121 | for TDF_GIMPLE. | |
6122 | (dump_gimple_label): Likewise. | |
6123 | (dump_gimple_phi): Likewise. | |
6124 | (dump_gimple_bb_header): Likewise. | |
6125 | (dump_phi_nodes): Likewise. | |
6126 | (pp_cfg_jump): Likewise. Pass in dump flags. | |
6127 | (dump_implicit_edges): Adjust. | |
6128 | * passes.c (pass_init_dump_file): Do not dump function header | |
6129 | for TDF_GIMPLE. | |
6130 | * tree-cfg.c (dump_function_to_file): Dump function return type | |
6131 | and __GIMPLE keyword for TDF_GIMPLE. Change guard for dumping | |
6132 | GIMPLE stmts. | |
6133 | * tree-pretty-print.c (dump_decl_name): Adjust dump for TDF_GIMPLE. | |
6134 | (dump_generic_node): Likewise. | |
6135 | * function.h (struct function): Add pass_startwith member. | |
6136 | * passes.c (execute_one_pass): Implement startwith. | |
6137 | * tree-ssanames.c (make_ssa_name_fn): New argument, check for version | |
6138 | and assign proper version for parsed ssa names. | |
6139 | * tree-ssanames.h (make_ssa_name_fn): Add new argument to the function. | |
6140 | * internal-fn.c (expand_PHI): New function. | |
6141 | * internal-fn.h (expand_PHI): Declared here. | |
6142 | * internal-fn.def: New defination for PHI. | |
6143 | * tree-cfg.c (lower_phi_internal_fn): New function. | |
6144 | (build_gimple_cfg): Call it. | |
6145 | (verify_gimple_call): Condition for passing label as arg in internal | |
6146 | function PHI. | |
6147 | * tree-into-ssa.c (rewrite_add_phi_arguments): Handle already | |
6148 | present PHIs with arguments. | |
6149 | ||
6150 | 2016-11-14 Martin Liska <mliska@suse.cz> | |
6151 | ||
6152 | PR bootstrap/78069 | |
6153 | * common.opt: Add prefer-atomic as a new enum value for | |
6154 | -fprofile-update. | |
6155 | * coretypes.h: Likewise. | |
6156 | * doc/invoke.texi: Document the new option value. | |
6157 | * gcc.c: Replace atomic with prefer-atomic. Remove warning. | |
6158 | * tree-profile.c (tree_profiling): Select default value | |
6159 | of -fprofile-update when 'prefer-atomic' is selected. | |
6160 | ||
6161 | 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com> | |
6162 | ||
6163 | * config/arm/cortex-a57.md (cortex_a57_alu): Move extend here, bfm... | |
6164 | (cortex_a57_alu_shift): ...here. | |
6165 | ||
6166 | 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com> | |
6167 | ||
6168 | * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3) | |
6169 | Use bfx attribute. | |
6170 | (aarch64_lshr_sisd_or_int_<mode>3): Likewise. | |
6171 | (aarch64_ashr_sisd_or_int_<mode>3): Likewise. | |
6172 | (<optab>si3_insn_uxtw): Likewise. | |
6173 | (<optab><mode>3_insn): Likewise. | |
6174 | (<ANY_EXTEND:optab><GPI:mode>_ashl<SHORT:mode>): Likewise. | |
6175 | (zero_extend<GPI:mode>_lshr<SHORT:mode>): Likewise. | |
6176 | (extend<GPI:mode>_ashr<SHORT:mode>): Likewise. | |
6177 | (<optab><mode>): Likewise. | |
6178 | (insv<mode>): Likewise. | |
6179 | (andim_ashift<mode>_bfiz): Likewise. | |
6180 | * config/aarch64/thunderx.md (thunderx_shift): Add bfx. | |
6181 | * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise. | |
6182 | * config/arm/cortex-a57.md (cortex_a57_alu): Add bfx. | |
6183 | * config/arm/exynos-m1.md (exynos_m1_alu): Add bfx. | |
6184 | (exynos_m1_alu_p): Likewise. | |
6185 | * config/arm/types.md: Add bfx. | |
6186 | * config/arm/xgene1.md (xgene1_bfm): Add bfx. | |
6187 | ||
6188 | 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com> | |
6189 | ||
6190 | * config/aarch64/aarch64.c (cortexa57_vector_cost): | |
6191 | Change vec_stmt_cost, vec_align_load_cost and vec_unalign_load_cost. | |
6192 | ||
6193 | 2016-11-14 Richard Biener <rguenther@suse.de> | |
6194 | ||
6195 | PR tree-optimization/78312 | |
6196 | * gimple-ssa-backprop.c (backprop::prepare_change): Reset | |
6197 | flow-sensitive info. | |
6198 | ||
6199 | 2016-11-14 Georg-Johann Lay <avr@gjlay.de> | |
6200 | ||
6201 | PR target/78093 | |
6202 | * doc/invoke.texi (AVR Options) [-mabsdata]: Document new option. | |
6203 | * config/avr/avr.opt (-mabsdata): New option. | |
6204 | * config/avr/avr-arch.h (avr_device_specific_features): Add AVR_ISA_LDS. | |
6205 | * config/avr/avr.c (avr_encode_section_info) [AVR_TINY]: If | |
6206 | -mabsdata & symbol is not progmem, tag as AVR_SYMBOL_FLAG_TINY_ABSDATA. | |
6207 | * config/avr/avr-mcus.def (attiny4/5/9/10/20): Use AVR_ISA_LDS. | |
6208 | * config/avr/gen-avr-mmcu-specs.c (print_mcu): Print cc1_absdata | |
6209 | spec depending on AVR_ISA_LDS. | |
6210 | * config/avr/specs.h (CC1_SPEC): Enhanced by cc1_absdata spec. | |
6211 | ||
6212 | 2016-11-13 Jakub Jelinek <jakub@redhat.com> | |
6213 | ||
6214 | * match.pd: Don't try to compare addresses of variables with | |
6215 | DECL_VALUE_EXPR. | |
6216 | ||
6217 | 2016-11-13 Kugan Vivekanandarajah <kuganv@linaro.org> | |
6218 | ||
6219 | * ipa-cp.c (ipa_get_jf_pass_through_result): Skip unary expressions. | |
6220 | (propagate_vr_accross_jump_function): Handle unary expressions. | |
6221 | * ipa-prop.c (ipa_set_jf_unary_pass_through): New. | |
6222 | (load_from_param_1): New. | |
6223 | (load_from_unmodified_param): Factor common part into load_from_param_1. | |
6224 | (load_from_param): New. | |
6225 | (compute_complex_assign_jump_func): Handle unary expressions. | |
6226 | (update_jump_functions_after_inlining): Likewise. | |
6227 | (ipa_write_jump_function): Likewise. | |
6228 | (ipa_read_jump_function): Likewise. | |
6229 | ||
6230 | 2016-11-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
6231 | ||
6232 | PR c/35503 | |
6233 | * doc/invoke.texi: Document Wrestrict. | |
6234 | * pretty-print.c (pp_format): Add case for "Z" specifier. | |
6235 | (test_pp_format): Test "Z" specifier. | |
6236 | ||
6237 | 2016-11-13 Eric Botcazou <ebotcazou@adacore.com> | |
6238 | ||
6239 | * ipa-icf.c (sem_function::merge): Do not create a wrapper also if the | |
6240 | original function needs a static chain. | |
6241 | ||
6242 | 2016-11-13 David Edelsohn <dje.gcc@gmail.com> | |
6243 | ||
6244 | PR target/78336 | |
6245 | * config/rs6000/rs6000.c (rs6000_asm_weaken_decl): Protect | |
6246 | ASM_OUTPUT_DEF. | |
6247 | ||
6248 | 2016-11-12 Segher Boessenkool <segher@kernel.crashing.org> | |
6249 | ||
6250 | PR target/77957 | |
6251 | * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't | |
6252 | return early if !optional_tbtab. | |
6253 | ||
6254 | 2016-11-11 Eric Botcazou <ebotcazou@adacore.com> | |
6255 | ||
6256 | PR rtl-optimization/59461 | |
6257 | * doc/rtl.texi (paradoxical subregs): Add missing word. | |
6258 | * combine.c (reg_nonzero_bits_for_combine): Do not discard results | |
6259 | in modes with precision larger than that of last_set_mode. | |
6260 | * rtlanal.c (nonzero_bits1) <SUBREG>: If WORD_REGISTER_OPERATIONS is | |
6261 | set and LOAD_EXTEND_OP is appropriate, propagate results from inner | |
6262 | REGs to paradoxical SUBREGs. | |
6263 | (num_sign_bit_copies1) <SUBREG>: Likewise. Check that the mode is not | |
6264 | larger than a word before invoking LOAD_EXTEND_OP on it. | |
6265 | ||
6266 | 2016-11-11 Michael Meissner <meissner@linux.vnet.ibm.com> | |
6267 | ||
6268 | PR target/78243 | |
6269 | * config/rs6000/vsx.md (vsx_extract_<mode>_p9): Correct the | |
6270 | element order for little endian ordering. | |
6271 | ||
6272 | * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Use | |
6273 | VECTOR_ELT_ORDER_BIG and not BYTES_BIG_ENDIAN to adjust element | |
6274 | number. | |
6275 | ||
6276 | 2016-11-11 Uros Bizjak <ubizjak@gmail.com> | |
6277 | ||
6278 | PR target/78310 | |
6279 | * config/i386/i386.md (rotate to rotatex splitter): Avoid overflow | |
6280 | when calculating operand 2. | |
6281 | (rotate to rotatex zext splitter): Ditto. | |
6282 | ||
6283 | 2016-11-11 Jeff Law <law@redhat.com> | |
6284 | ||
6285 | * gimple-ssa-isolate-paths.c (is_divmod_with_given_divisor): New | |
6286 | function. | |
6287 | (stmt_uses_name_in_undefined_way): New function, extracted from | |
6288 | find_implicit_erroneous_behavior and extended for div/mod case. | |
6289 | (stmt_uses_0_or_null_in_undefined_way): New function, extracted from | |
6290 | find_explicit_erroneous_behavior and extended for div/mod case. | |
6291 | (find_implicit_erroneous_behavior): Use new helper function. | |
6292 | (find_explicit_erroneous_behavior): Use new helper function. | |
6293 | ||
6294 | 2016-11-11 Richard Biener <rguenther@suse.de> | |
6295 | ||
6296 | PR tree-optimization/71575 | |
6297 | * graphite-isl-ast-to-gimple.c (copy_cond_phi_nodes): Remove | |
6298 | bogus assert. | |
6299 | ||
6300 | 2016-11-11 Richard Biener <rguenther@suse.de> | |
6301 | ||
6302 | PR middle-end/78295 | |
6303 | * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn | |
6304 | about uninitialized destination arg of BIT_INSERT_EXPR. | |
6305 | ||
6306 | 2016-11-10 Sandra Loosemore <sandra@codesourcery.com> | |
6307 | ||
6308 | PR c/37998 | |
6309 | * doc/invoke.texi (Code Gen Options) [-fno-common]: Use correct | |
6310 | terminology. Expand to remove ambiguity. | |
6311 | ||
6312 | 2016-11-10 Segher Boessenkool <segher@kernel.crashing.org> | |
6313 | ||
6314 | PR rtl-optimization/78232 | |
6315 | * combine.c (try_combine): Add a big comment about why reusing i2dest | |
6316 | is undesirable. | |
6317 | (change_zero_ext): Do not call simplify_gen_binary, do the | |
6318 | simplifications manually. | |
6319 | ||
6320 | 2016-11-10 Michael Meissner <meissner@linux.vnet.ibm.com> | |
6321 | ||
6322 | * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If ISA 3.0, | |
6323 | enable HImode and QImode to go in vector registers by default if | |
6324 | the -mvsx-small-integer option is enabled. | |
6325 | (rs6000_secondary_reload_simple_move): Likewise. | |
6326 | (rs6000_preferred_reload_class): Don't force integer constants to | |
6327 | be loaded into vector registers that we can easily make into | |
6328 | memory (or being created in the GPRs and moved over with direct move). | |
6329 | * config/rs6000/vsx.md (UNSPEC_P9_MEMORY): Delete, no longer used. | |
6330 | (vsx_extract_<mode>): Rework V4SImode, V8HImode, and V16QImode | |
6331 | vector extraction on ISA 3.0 when the scalar integer can be | |
6332 | allocated in vector registers. Generate the VEC_SELECT directy, | |
6333 | and don't use UNSPEC's to avoid having the scalar type in a vector | |
6334 | register. Make the expander target registers, and let the | |
6335 | combiner fold in results storing to memory, if the machine | |
6336 | supports stores. | |
6337 | (vsx_extract_<mode>_di): Likewise. | |
6338 | (vsx_extract_<mode>_p9): Likewise. | |
6339 | (vsx_extract_<mode>_di_p9): Likewise. | |
6340 | (vsx_extract_<mode>_store_p9): Likewise. | |
6341 | (vsx_extract_si): Likewise. | |
6342 | (vsx_extract_<mode>_p8): Likewise. | |
6343 | (p9_lxsi<wd>zx): Delete, no longer used. | |
6344 | (p9_stxsi<wd>x): Likewise. | |
6345 | * config/rs6000/rs6000.md (INT_ISA3): New mode iterator for | |
6346 | integers in vector registers for ISA 3.0. | |
6347 | (QHI): Update comment. | |
6348 | (zero_extendqi<mode>2): Add support for ISA 3.0 scalar load or | |
6349 | vector extract instructions in sign/zero extend. | |
6350 | (zero_extendhi<mode>): Likewise. | |
6351 | (extendqi<mode>): Likewise. | |
6352 | (extendhi<mode>2): Likewise. | |
6353 | (HImode splitter for load/sign extend in vector register): Likewise. | |
6354 | (float<QHI:mode><FP_ISA3:mode>2): Eliminate old method of | |
6355 | optimizing floating point conversions to/from small data types and | |
6356 | rewrite it to support QImode/HImode being allowed in vector | |
6357 | registers on ISA 3.0. | |
6358 | (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise. | |
6359 | (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise. | |
6360 | (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise. | |
6361 | (fix_trunc<SFDF:mode><QHI:mode>2): Likewise. | |
6362 | (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise. | |
6363 | (fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise. | |
6364 | (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise. | |
6365 | VSPLITISW on ISA 2.07. | |
6366 | (movhi_internal): Combine movhi_internal and movqi_internal into | |
6367 | one mov<mode>_internal with an iterator. Add support for QImode | |
6368 | and HImode being allowed in vector registers. Make large number | |
6369 | of attributes and constraints easier to read. | |
6370 | (movqi_internal): Likewise. | |
6371 | (mov<mode>_internal): Likewise. | |
6372 | (movdi_internal64): Fix constraint to allow loading -16..15 with | |
6373 | VSPLITISW on ISA 2.07. | |
6374 | (integer XXSPLTIB splitter): Add support for QI, HI, and SImode as | |
6375 | well as DImode. | |
6376 | ||
6377 | 2016-11-10 Pat Haugen <pthaugen@us.ibm.com> | |
6378 | ||
6379 | PR rtl-optimization/78241 | |
6380 | * loop-unroll.c (unroll_loop_runtime_iterations): Don't adjust 'niter', | |
6381 | but emit initial peel copy if niter expr is not reliable. | |
6382 | ||
6383 | 2016-11-10 Segher Boessenkool <segher@kernel.crashing.org> | |
6384 | ||
6385 | * dwarf2cfi.c (dump_cfi_row): Add forward declaration. | |
6386 | (maybe_record_trace_start): If the CFI is different on the new and | |
6387 | old paths, print out both to the dump file before ICEing. | |
6388 | ||
6389 | 2016-11-10 Vladimir Makarov <vmakarov@redhat.com> | |
6390 | ||
6391 | * target.def (additional_allocno_class_p): New. | |
6392 | * hooks.h (hook_bool_reg_class_t_false): New prototype. | |
6393 | * hooks.c (hook_bool_reg_class_t_false): New. | |
6394 | * ira.c (setup_allocno_and_important_classes): Use the new hook. | |
6395 | * doc/tm.texi.in (TARGET_ADDITIONAL_ALLOCNO_CLASS_P): Add it. | |
6396 | * doc/tm.texi: Update. | |
6397 | ||
6398 | 2016-11-10 Jason Merrill <jason@redhat.com> | |
6399 | ||
6400 | * gengtype.c (new_structure): Append to structures list. | |
6401 | (find_structure): Likewise. | |
6402 | ||
6403 | 2016-11-10 Jim Wilson <jim.wilson@linaro.org> | |
6404 | ||
6405 | * tree-loop-distribution.c (pg_add_dependence_edges): Return 2 if | |
6406 | this_dir is 2. Check for this_dir non-zero before dir != this_dir | |
6407 | check. | |
6408 | ||
6409 | 2016-11-10 Jakub Jelinek <jakub@redhat.com> | |
6410 | ||
6411 | * omp-low.c (lower_omp_target): Fix up argument to is_reference. | |
6412 | (expand_omp_ordered_sink): Handle TREE_PURPOSE of deps being | |
6413 | TRUNC_DIV_EXPR. | |
6414 | * gimplify.c (gimplify_scan_omp_clauses): Likewise. Set | |
6415 | ctx->target_map_scalars_firstprivate on OMP_TARGET even for Fortran. | |
6416 | Remove omp_no_lastprivate callers. Propagate lastprivate on combined | |
6417 | teams distribute parallel for simd even to distribute and teams | |
6418 | construct. For OMP_CLAUSE_DEPEND add missing break at the end of | |
6419 | OMP_CLAUSE_DEPEND_SINK case. | |
6420 | (omp_notice_variable): Use lang_hooks.decls.omp_scalar_p. | |
6421 | (omp_no_lastprivate): Removed. | |
6422 | (gimplify_adjust_omp_clauses): Remove omp_no_lastprivate callers. | |
6423 | (gimplify_omp_for): Likewise. | |
6424 | (computable_teams_clause): Fail for automatic vars from current | |
6425 | function not yet seen in bind expr. | |
6426 | * langhooks.c (lhd_omp_scalar_p): New function. | |
6427 | * langhooks.h (struct lang_hooks_for_decls): Add omp_scalar_p. | |
6428 | * varpool.c (varpool_node::get_create): Set node->offloading | |
6429 | even for DECL_EXTERNAL decls. | |
6430 | * langhooks-def.h (lhd_omp_scalar_p): New prototype. | |
6431 | (LANG_HOOKS_OMP_SCALAR_P): Define. | |
6432 | (LANG_HOOKS_DECLS): Use it. | |
6433 | ||
6434 | 2016-11-10 Martin Liska <mliska@suse.cz> | |
6435 | ||
6436 | PR sanitizer/78270 | |
6437 | * gimplify.c (gimplify_switch_expr): Create live_switch_vars | |
6438 | only when SWITCH_BODY is a BIND_EXPR. | |
6439 | ||
6440 | 2016-11-10 Pierre-Marie de Rodat <derodat@adacore.com> | |
6441 | ||
6442 | PR debug/78112 | |
6443 | * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl | |
6444 | on the context only when it has no DIE yet. | |
6445 | ||
6446 | 2016-11-10 Richard Earnshaw <rearnsha@arm.com> | |
6447 | ||
6448 | * arm.h (target_cpus): Delete. | |
6449 | * arm-opts.h (enum processor_type): Prefix entires with TARGET_CPU_. | |
6450 | * arm.c (all_cores): Prefix IDENT with TARGET_CPU_. | |
6451 | (all_architectures): Likewise. | |
6452 | (arm_option_override): Adjust use of CPU enums. | |
6453 | (arm_sched_reorder): Likewise. | |
6454 | * vfp.md (movdi_vfp, movdi_vfp_cortexa8): Likewise. | |
6455 | * arm.opt (mcpu, mtune): Adjust use of CPU enums. | |
6456 | * arm/genopt.sh (processor_type): Prefix enumeration entries with | |
6457 | TARGET_CPU_. | |
6458 | * arm-tables.opt: Regenerated. | |
6459 | ||
6460 | 2016-11-10 Siddhesh Poyarekar <siddhesh.poyarekar@linaro.org> | |
6461 | ||
6462 | * config/aarch64/aarch64-cores.def (qdf24xx): Update part number. | |
6463 | (falkor): New core. | |
6464 | * config/aarch64/aarch64-tune.md: Regenerated. | |
6465 | * config/arm/arm-cores.def (falkor): New core. | |
6466 | * config/arm/arm-tables.opt: Regenerated. | |
6467 | * config/arm/arm-tune.md: Regenerated. | |
6468 | * config/arm/bpabi.h (BE8_LINK_SPEC): Add falkor support. | |
6469 | * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise. | |
6470 | * doc/invoke.texi (AArch64 Options/-mtune): Document it. | |
6471 | (ARM Options/-mtune): Likewise. | |
6472 | ||
6473 | 2016-11-10 Kugan Vivekanandarajah <kuganv@linaro.org> | |
6474 | ||
6475 | Revert | |
6476 | 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org> | |
6477 | ||
6478 | * ipa-cp.c (ipa_get_jf_pass_through_result): Handle unary expressions. | |
6479 | (propagate_vr_accross_jump_function): Likewise. | |
6480 | * ipa-prop.c (ipa_set_jf_unary_pass_through): New. | |
6481 | (load_from_param_1): New. | |
6482 | (load_from_unmodified_param): Factor common part into load_from_param_1. | |
6483 | (load_from_param): New. | |
6484 | (compute_complex_assign_jump_func): Handle unary expressions. | |
6485 | (ipa_write_jump_function): Likewise. | |
6486 | (ipa_read_jump_function): Likewise. | |
6487 | ||
6488 | 2016-11-09 Segher Boessenkool <segher@kernel.crashing.org> | |
6489 | ||
6490 | * simplify-rtx.c (simplify_binary_operation_1): Simplify | |
6491 | (xor (and (xor A B) C) B) to (ior (and A C) (and B ~C)) and | |
6492 | (xor (and (xor A B) C) A) to (ior (and A ~C) (and B C)) if C | |
6493 | is a const_int. | |
6494 | ||
6495 | 2016-11-09 David Malcolm <dmalcolm@redhat.com> | |
6496 | ||
6497 | * print-rtl-function.c: Include varasm.h. | |
6498 | (print_any_param_name): New function. | |
6499 | (print_param): New function. | |
6500 | (print_rtx_function): Call print_param for each argument. | |
6501 | * print-rtl.c (rtx_writer::finish_directive): New function. | |
6502 | * print-rtl.h (rtx_writer::finish_directive): New decl. | |
6503 | ||
6504 | 2016-11-09 Uros Bizjak <ubizjak@gmail.com> | |
6505 | ||
6506 | PR target/78262 | |
6507 | * config/i386/i386.md (*<shift_insn><mode>3_doubleword): Mark | |
6508 | operand 0 as earlyclobber. | |
6509 | (*ashl<mode>3_doubleword): Ditto for all operand 0 alternatives. | |
6510 | ||
6511 | 2016-11-09 Martin Liska <mliska@suse.cz> | |
6512 | ||
6513 | * fold-const-call.c (fold_const_call): Fix up type of s0 and s1. | |
6514 | ||
6515 | 2016-11-09 Jakub Jelinek <jakub@redhat.com> | |
6516 | ||
6517 | PR target/77718 | |
6518 | * builtins.c (expand_builtin_memcmp): Formatting fix. | |
6519 | ||
6520 | * flag-types.h (enum sanitize_code): Add SANITIZE_SHIFT_BASE | |
6521 | and SANITIZE_SHIFT_EXPONENT, change SANITIZE_SHIFT to bitwise | |
6522 | or of them, renumber other enumerators. | |
6523 | * opts.c (sanitizer_opts): Add shift-base and shift-exponent. | |
6524 | * doc/invoke.texi: Document -fsanitize=shift-base and | |
6525 | -fsanitize-shift-exponent, document -fsanitize=shift as | |
6526 | having those 2 suboptions. | |
6527 | ||
6528 | 2016-11-09 Richard Biener <rguenther@suse.de> | |
6529 | ||
6530 | * fold-const.c (tree_swap_operands_p): Remove unused arg. | |
6531 | * fold-const.c (tree_swap_operands_p): Likewise. | |
6532 | (fold_binary_loc): Adjust. | |
6533 | (fold_ternary_loc): Likewise. | |
6534 | * genmatch.c (dt_operand::gen_gimple_exp): Likewise. | |
6535 | * gimple-fold.c (fold_stmt_1): Likewise. | |
6536 | * gimple-match-head.c (gimple_resimplify2): Likewise. | |
6537 | (gimple_resimplify3): Likewise. | |
6538 | (gimple_simplify): Likewise. | |
6539 | * tree-ssa-dom.c (record_equality): Likewise. | |
6540 | * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Likewise. | |
6541 | * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise. | |
6542 | * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): Likewise. | |
6543 | ||
6544 | 2016-11-09 Richard Biener <rguenther@suse.de> | |
6545 | ||
6546 | * tree-ssa-dom.c (canonicalize_comparison): Remove. | |
6547 | (optimize_stmt): Remove redundant pre-propagation canonicalization | |
6548 | of comparison operand order. | |
6549 | ||
6550 | 2016-11-09 Martin Liska <mliska@suse.cz> | |
6551 | ||
6552 | * fold-const-call.c (fold_const_call): Fix the folding. | |
6553 | ||
6554 | 2016-11-09 Richard Biener <rguenther@suse.de> | |
6555 | ||
6556 | * common.opt (flag_evaluation_order): Remove. | |
6557 | * expr.c (expand_operands): Remove code guarded by | |
6558 | flag_evaluation_order. | |
6559 | * fold-const.c (reorder_operands_p): Remove, it always returns | |
6560 | true. | |
6561 | (negate_expr_p): Remove calls to reorder_operands_p. | |
6562 | (fold_negate_expr): Likewise. | |
6563 | (tree_swap_operands_p): Likewise. | |
6564 | (fold_binary_loc): Likewise. | |
6565 | ||
6566 | 2016-11-09 Andreas Schwab <schwab@suse.de> | |
6567 | ||
6568 | PR target/78254 | |
6569 | * config/m68k/m68k.md: Reject out-of-range bit pos in bit-fields | |
6570 | insns operating on a register. | |
6571 | ||
6572 | 2016-11-09 Richard Biener <rguenther@suse.de> | |
6573 | ||
6574 | PR tree-optimization/78007 | |
6575 | * tree-vect-stmts.c (vectorizable_bswap): New function. | |
6576 | (vectorizable_call): Call vectorizable_bswap for | |
6577 | BUILT_IN_BSWAP{16,32,64} if arguments are not promoted. | |
6578 | ||
6579 | 2016-11-09 Richard Biener <rguenther@suse.de> | |
6580 | ||
6581 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): | |
6582 | Look at the DR_BASE_ADDRESS object for forcing alignment. | |
6583 | ||
6584 | 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org> | |
6585 | ||
6586 | * ipa-cp.c (ipa_get_jf_pass_through_result): Handle unary expressions. | |
6587 | (propagate_vr_accross_jump_function): Likewise. | |
6588 | * ipa-prop.c (ipa_set_jf_unary_pass_through): New. | |
6589 | (load_from_param_1): New. | |
6590 | (load_from_unmodified_param): Factor common part into load_from_param_1. | |
6591 | (load_from_param): New. | |
6592 | (compute_complex_assign_jump_func): Handle unary expressions. | |
6593 | (ipa_write_jump_function): Likewise. | |
6594 | (ipa_read_jump_function): Likewise. | |
6595 | ||
6596 | 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org> | |
6597 | ||
6598 | PR ipa/78121 | |
6599 | * ipa-cp.c (propagate_vr_accross_jump_function): Pass param type. | |
6600 | Also fold constant passed as argument while computing value range. | |
6601 | (propagate_constants_accross_call): Pass param type. | |
6602 | * ipa-prop.c: export ipa_get_callee_param_type. | |
6603 | * ipa-prop.h: export ipa_get_callee_param_type. | |
6604 | ||
6605 | 2016-11-09 Maxim Ostapenko <m.ostapenko@samsung.com> | |
6606 | ||
6607 | * asan.h (asan_intercepted_p): Handle BUILT_IN_STRCSPN, | |
6608 | BUILT_IN_STRPBRK, BUILT_IN_STRSPN and BUILT_IN_STRSTR. | |
6609 | ||
6610 | 2016-11-09 Maxim Ostapenko <m.ostapenko@samsung.com> | |
6611 | ||
6612 | * asan.h (ASAN_STACK_MAGIC_PARTIAL): Remove. | |
6613 | * asan.c (ASAN_STACK_MAGIC_PARTIAL): Replace with | |
6614 | ASAN_STACK_MAGIC_MIDDLE. | |
6615 | (asan_global_struct): Increase the size of fields. | |
6616 | (asan_add_global): Add new field constructor. | |
6617 | * sanitizer.def (__asan_version_mismatch_check_v6): Replace with | |
6618 | __asan_version_mismatch_check_v8. | |
6619 | ||
6620 | 2016-11-08 David Edelsohn <dje.gcc@gmail.com> | |
6621 | ||
6622 | * dwarf2asm.c (USE_LINKONCE_INDIRECT): Test XCOFF_DEBUGGING_INFO | |
6623 | at runtime. | |
6624 | ||
6625 | 2016-11-08 Uros Bizjak <ubizjak@gmail.com> | |
6626 | ||
6627 | PR target/70799 | |
6628 | * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): | |
6629 | Handle ASHIFT and LSHIFTRT. | |
6630 | (dimode_scalar_chain::compute_convert_gain): Ditto. | |
6631 | (dimode_scalar_chain::convert_insn): Ditto. | |
6632 | ||
6633 | 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
6634 | ||
6635 | * gimple-ssa-store-merging.c: Include selftest.h | |
6636 | (verify_array_eq): New function. | |
6637 | (verify_shift_bytes_in_array): Likewise. | |
6638 | (verify_shift_bytes_in_array_right): Likewise. | |
6639 | (verify_clear_bit_region): Likewise. | |
6640 | (verify_clear_bit_region_be): Likewise. | |
6641 | (store_merging_c_tests): Likewise. | |
6642 | * selftest.h (store_merging_c_tests): Declare prototype. | |
6643 | * selftest-run-tests.c (selftest::run_tests): Run | |
6644 | store_merging_c_tests. | |
6645 | ||
6646 | 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
6647 | ||
6648 | * config/arm/arm.opt (mold-rtx-costs): Delete. | |
6649 | (mnew-generic-costs): Delete. | |
6650 | * config/arm/arm-protos.h (struct tune_params): Delete rtx_costs field. | |
6651 | * config/arm/arm.c (arm_rtx_costs_1): Delete. | |
6652 | (arm_size_rtx_costs): Likewise. | |
6653 | (arm_slowmul_rtx_costs): Likewise. | |
6654 | (arm_fastmul_rtx_costs): Likewise. | |
6655 | (arm_xscale_rtx_costs): Likewise. | |
6656 | (arm_9e_rtx_costs): Likewise. | |
6657 | (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune, | |
6658 | arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune, | |
6659 | arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune, | |
6660 | arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune, | |
6661 | arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune | |
6662 | arm_cortex_a5_tune, arm_xgene1_tune, arm_marvell_pj4_tune, | |
6663 | arm_cortex_a35_tune, arm_exynosm1_tune, arm_cortex_a73_tune, | |
6664 | arm_cortex_m7_tune): | |
6665 | Delete rtx_costs field. | |
6666 | (arm_new_rtx_costs): Rename to... | |
6667 | (arm_rtx_costs_internal): ... This. | |
6668 | (arm_rtx_costs): Remove old way of doing rtx costs. | |
6669 | ||
6670 | 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
6671 | ||
6672 | * config/arm/arm.c (arm_slowmul_tune): Use generic_extra_costs. | |
6673 | (arm_fastmul_tune): Likewise. | |
6674 | (arm_strongarm_tune): Likewise. | |
6675 | (arm_xscale_tune): Likewise. | |
6676 | (arm_9e_tune): Likewise. | |
6677 | (arm_marvell_pj4_tune): Likewise. | |
6678 | (arm_v6t2_tune): Likewise. | |
6679 | (arm_v6m_tune): Likewise. | |
6680 | (arm_fa726te_tune): Likewise. | |
6681 | ||
6682 | 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
6683 | ||
6684 | PR tree-optimization/78234 | |
6685 | * gimple-ssa-store-merging.c (clear_bit_region): Fix off-by-one error | |
6686 | in start != 0 case. | |
6687 | ||
6688 | 2016-11-08 Martin Liska <mliska@suse.cz> | |
6689 | ||
6690 | PR testsuite/78242 | |
6691 | * dbgcnt.def: Add new debug counter asan_use_after_scope. | |
6692 | * gimplify.c (gimplify_decl_expr): Do not sanitize vars | |
6693 | with a value expr. Do not add artificial variables to | |
6694 | live_switch_vars. Use the debug counter. | |
6695 | (gimplify_target_expr): Use the debug counter. | |
6696 | * internal-fn.def: Remove ECF_TM_PURE from ASAN_MARK builtin. | |
6697 | * sanitizer.def: Set ATTR_NOTHROW_LEAF_LIST to | |
6698 | BUILT_IN_ASAN_CLOBBER_N and BUILT_IN_ASAN_UNCLOBBER_N. | |
6699 | ||
6700 | 2016-11-08 Richard Biener <rguenther@suse.de> | |
6701 | ||
6702 | * tree-vect-stmts.c (get_group_load_store_type): If the | |
6703 | access is aligned do not trigger peeling for gaps. | |
6704 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not | |
6705 | force alignment of vars with DECL_USER_ALIGN. | |
6706 | ||
6707 | 2016-11-08 James Greenhalgh <james.greenhalgh@arm.com> | |
6708 | ||
6709 | * config/aarch64/t-aarch64 (aarch64-c.o): Depend on TARGET_H. | |
6710 | ||
6711 | 2016-11-08 Richard Biener <rguenther@suse.de> | |
6712 | ||
6713 | PR tree-optimization/78205 | |
6714 | * tree-vect-stmts.c (vectorizable_load): Move check whether | |
6715 | we may run into gaps when BB vectorizing SLP permutations ... | |
6716 | * tree-vect-slp.c (vect_supported_load_permutation_p): ... | |
6717 | here where we can do a more precise check. | |
6718 | ||
6719 | 2016-11-08 Richard Biener <rguenther@suse.de> | |
6720 | ||
6721 | PR tree-optimization/78224 | |
6722 | * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): | |
6723 | Split the fallthru edge in case its successor may have PHIs. | |
6724 | Do not free dominance info. | |
6725 | ||
6726 | 2016-11-07 Jakub Jelinek <jakub@redhat.com> | |
6727 | ||
6728 | PR target/78229 | |
6729 | * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust | |
6730 | EH info even for bzhi and pdep/pext. | |
6731 | ||
6732 | 2016-11-07 Peter Bergner <bergner@vnet.ibm.com> | |
6733 | ||
6734 | * config.gcc (powerpc*-*-*, rs6000*-*-*): Remove setting of | |
6735 | INCLUDE_EXTRA_SPEC for Advance Toolchain builds. | |
6736 | ||
6737 | 2016-11-07 Segher Boessenkool <segher@kernel.crashing.org> | |
6738 | ||
6739 | * config/rs6000/rs6000.md (div<mode>3): Expand using rs6000_emit_swdiv | |
6740 | if appropriate. | |
6741 | * config/rs6000/vector.md (div<mode>3): Ditto. | |
6742 | ||
6743 | 2016-11-07 David Edelsohn <dje.gcc@gmail.com> | |
6744 | ||
6745 | * configure.ac (.hidden): Change to conftest_s string. Provide string | |
6746 | for AIX assembler. | |
6747 | (gcc_cv_ld_hidden): Yes for AIX. | |
6748 | * configure: Regenerate. | |
6749 | ||
6750 | * dwarf2asm.c (USE_LINKONCE_INDIRECT): Don't set for AIX (XCOFF). | |
6751 | ||
6752 | * config/rs6000/rs6000-protos.h (rs6000_asm_weaken_decl): Declare | |
6753 | (rs6000_xcoff_asm_output_aligned_decl_common): Declare. | |
6754 | * config/rs6000/xcoff.h (TARGET_ASM_GLOBALIZE_DECL_NAME): Define. | |
6755 | (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. | |
6756 | (ASM_OUTPUT_ALIGNED_COMMON): Delete. | |
6757 | * config/rs6000/rs6000.c (rs6000_init_builtins): Change clog rename | |
6758 | from #if to if. | |
6759 | (rs6000_xcoff_visibility): New. | |
6760 | (rs6000_xcoff_declare_function_name): Add visibility support. | |
6761 | (rs6000_xcoff_asm_globalize_decl_name): New. | |
6762 | (rs6000_xcoff_asm_output_aligned_decl_common): New. | |
6763 | (rs6000_asm_weaken_decl): New. | |
6764 | (rs6000_code_end): Disable HIDDEN_LINKONCE on XCOFF. | |
6765 | config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Change definition to | |
6766 | reference function. | |
6767 | ||
6768 | 2016-11-07 Jack Howarth <howarth.at.gcc@gmail.com> | |
6769 | ||
6770 | PR driver/78206 | |
6771 | * incpath.c (remove_dup): Also silently ignore EPERM. | |
6772 | ||
6773 | 2016-11-07 Martin Jambor <mjambor@suse.cz> | |
6774 | ||
6775 | * tree.c (verify_type_variant): Use pointer comparison to check that | |
6776 | TYPE_SIZE_UNIT match. | |
6777 | ||
6778 | 2016-11-07 Jakub Jelinek <jakub@redhat.com> | |
6779 | ||
6780 | PR target/77834 | |
6781 | * dse.c (dse_step5): Call scan_reads even if just | |
6782 | insn_info->frame_read. Improve and fix dump file messages. | |
6783 | ||
6784 | PR target/78227 | |
6785 | * config/i386/i386.c (ix86_expand_sse_cmp): Force dest into | |
6786 | cmp_mode argument even for -O0 if cmp_mode != mode and maskcmp. | |
6787 | ||
6788 | 2016-11-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
6789 | ||
6790 | PR middle-end/35691 | |
6791 | * match.pd: Add following two patterns: | |
6792 | (x == 0 & y == 0) -> (x | typeof(x)(y)) == 0. | |
6793 | (x != 0 | y != 0) -> (x | typeof(x)(y)) != 0. | |
6794 | ||
6795 | 2016-11-07 Bernd Schmidt <bschmidt@redhat.com> | |
6796 | ||
6797 | * emit-rtl.c (emit_copy_of_insn_after): Duplicate notes in order. | |
6798 | * sel-sched-ir.c (create_copy_of_insn_rtx): Likewise. | |
6799 | * rtl.h (duplicate_reg_notes): Declare. | |
6800 | * rtlanal.c (duplicate_reg_note): New function. | |
6801 | ||
6802 | PR rtl-optimization/77309 | |
6803 | * combine.c (make_compound_operation): Allow EQ for IN_CODE, and | |
6804 | don't assume an equality comparison for plain COMPARE. | |
6805 | (simplify_comparison): Pass a more accurate code to | |
6806 | make_compound_operation. | |
6807 | ||
6808 | 2016-11-07 Pat Haugen <pthaugen@us.ibm.com> | |
6809 | ||
6810 | * target.def (compute_pressure_classes): New target hook. | |
6811 | * doc/tm.texi.in: Document it. | |
6812 | * doc/tm.texi: Regenerate. | |
6813 | * ira.c (setup_pressure_classes): Call target hook if defined. | |
6814 | ||
6815 | 2016-11-07 David Malcolm <dmalcolm@redhat.com> | |
6816 | ||
6817 | * print-rtl.c (rtx_writer::operand_has_default_value_p): New | |
6818 | method. | |
6819 | (rtx_writer::print_rtx): In compact mode, omit trailing operands | |
6820 | that have the default values. | |
6821 | * print-rtl.h (rtx_writer::operand_has_default_value_p): New | |
6822 | method. | |
6823 | * rtl-tests.c (selftest::test_dumping_insns): Remove empty | |
6824 | label string from expected dump. | |
6825 | (seltest::test_uncond_jump): Remove trailing "(nil)" for REG_NOTES | |
6826 | from expected dump. | |
6827 | ||
6828 | 2016-11-07 Jakub Jelinek <jakub@redhat.com> | |
6829 | ||
6830 | PR target/77834 | |
6831 | * alias.c (nonoverlapping_memrefs_p): If one decl is | |
6832 | FUNCTION_DECL or LABEL_DECL and the other is not, return 1. | |
6833 | ||
6834 | 2016-11-07 Richard Biener <rguenther@suse.de> | |
6835 | ||
6836 | PR target/78229 | |
6837 | * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust | |
6838 | EH info. | |
6839 | ||
6840 | 2016-11-07 Richard Biener <rguenther@suse.de> | |
6841 | ||
6842 | PR tree-optimization/78218 | |
6843 | * gimple-ssa-store-merging.c | |
6844 | (pass_store_merging::terminate_all_aliasing_chains): | |
6845 | Drop unused argument, fix alias check to also consider uses. | |
6846 | (pass_store_merging::execute): Adjust. | |
6847 | ||
6848 | 2016-11-07 Richard Biener <rguenther@suse.de> | |
6849 | ||
6850 | PR tree-optimization/78228 | |
6851 | * tree-ssa-phiopt.c (abs_replacement): Avoid introducing | |
6852 | undefined behavior. | |
6853 | ||
6854 | 2016-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
6855 | ||
6856 | PR target/77822 | |
6857 | * config/aarch64/aarch64.md (*tb<optab><mode>1): Use | |
6858 | aarch64_simd_shift_imm_<mode> predicate for operand 1. | |
6859 | (<optab>, ANY_EXTRACT): Use tighter predicates on operands 2 and 3 | |
6860 | to restrict them to an appropriate range and add FAIL check if the | |
6861 | region they specify is out of range. Delete useless constraint | |
6862 | strings. | |
6863 | (*<optab><mode>, ANY_EXTRACT): Add appropriate predicates on operands | |
6864 | 2 and 3 to restrict their range and add pattern predicate. | |
6865 | ||
6866 | 2016-11-07 Martin Liska <mliska@suse.cz> | |
6867 | ||
6868 | * asan.c (enum asan_check_flags): Move the enum to header file. | |
6869 | (asan_init_shadow_ptr_types): Make type creation more generic. | |
6870 | (shadow_mem_size): New function. | |
6871 | (asan_emit_stack_protection): Use newly added ASAN_SHADOW_GRANULARITY. | |
6872 | Rewritten stack unpoisoning code. | |
6873 | (build_shadow_mem_access): Add new argument return_address. | |
6874 | (instrument_derefs): Instrument local variables if use after scope | |
6875 | sanitization is enabled. | |
6876 | (asan_store_shadow_bytes): New function. | |
6877 | (asan_expand_mark_ifn): Likewise. | |
6878 | (asan_sanitize_stack_p): Moved from asan_sanitize_stack_p. | |
6879 | * asan.h (enum asan_mark_flags): Moved here from asan.c | |
6880 | (asan_protect_stack_decl): Protect all declaration that need | |
6881 | to live in memory. | |
6882 | (asan_sanitize_use_after_scope): New function. | |
6883 | (asan_no_sanitize_address_p): Likewise. | |
6884 | * cfgexpand.c (partition_stack_vars): Consider | |
6885 | asan_sanitize_use_after_scope in condition. | |
6886 | (expand_stack_vars): Likewise. | |
6887 | * common.opt (-fsanitize-address-use-after-scope): New option. | |
6888 | * doc/invoke.texi (use-after-scope-direct-emission-threshold): | |
6889 | Explain the parameter. | |
6890 | * flag-types.h (enum sanitize_code): Define SANITIZE_USE_AFTER_SCOPE. | |
6891 | * gimplify.c (build_asan_poison_call_expr): New function. | |
6892 | (asan_poison_variable): Likewise. | |
6893 | (gimplify_bind_expr): Generate poisoning/unpoisoning for local | |
6894 | variables that have address taken. | |
6895 | (gimplify_decl_expr): Likewise. | |
6896 | (gimplify_target_expr): Likewise for C++ temporaries. | |
6897 | (sort_by_decl_uid): New function. | |
6898 | (gimplify_expr): Unpoison all variables for a label we can jump | |
6899 | from outside of a scope. | |
6900 | (gimplify_switch_expr): Unpoison variables defined in the switch | |
6901 | context. | |
6902 | (gimplify_function_tree): Clear asan_poisoned_variables. | |
6903 | (asan_poison_variables): New function. | |
6904 | (warn_switch_unreachable_r): Handle IFN_ASAN_MARK. | |
6905 | * internal-fn.c (expand_ASAN_MARK): New function. | |
6906 | * internal-fn.def (ASAN_MARK): Declare. | |
6907 | * opts.c (finish_options): Handle -fstack-reuse if | |
6908 | -fsanitize-address-use-after-scope is enabled. | |
6909 | (common_handle_option): Enable address sanitization if | |
6910 | -fsanitize-address-use-after-scope is enabled. | |
6911 | * params.def (PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): | |
6912 | New parameter. | |
6913 | * params.h: Likewise. | |
6914 | * sancov.c (pass_sanopt::execute): Handle IFN_ASAN_MARK. | |
6915 | * sanitizer.def: Define __asan_poison_stack_memory and | |
6916 | __asan_unpoison_stack_memory functions. | |
6917 | * asan.c (asan_mark_poison_p): New function. | |
6918 | (transform_statements): Handle asan_mark_poison_p calls. | |
6919 | * gimple.c (nonfreeing_call_p): Handle IFN_ASAN_MARK. | |
6920 | ||
6921 | 2016-11-07 Tamar Christina <tamar.christina@arm.com> | |
6922 | ||
6923 | PR driver/78196 | |
6924 | * Makefile.in (SELFTEST_FLAGS): Added -o /dev/null. | |
6925 | ||
6926 | 2016-11-07 Martin Liska <mliska@suse.cz> | |
6927 | ||
6928 | * tree-profile.c (gimple_gen_time_profiler): Set proper type | |
6929 | to time_profiler_counter_ptr. | |
6930 | ||
6931 | 2016-11-07 Richard Biener <rguenther@suse.de> | |
6932 | ||
6933 | PR tree-optimization/37150 | |
6934 | * tree-vectorizer.h (vect_transform_slp_perm_load): Add n_perms | |
6935 | parameter. | |
6936 | * tree-vect-slp.c (vect_supported_load_permutation_p): Adjust. | |
6937 | (vect_analyze_slp_cost_1): Account for the real number of | |
6938 | permutations emitted and for dead loads. | |
6939 | (vect_transform_slp_perm_load): Add n_perms parameter counting | |
6940 | the number of emitted permutations. | |
6941 | * tree-vect-stmts.c (vectorizable_load): Adjust. | |
6942 | ||
6943 | 2016-11-07 Richard Biener <rguenther@suse.de> | |
6944 | ||
6945 | PR tree-optimization/78189 | |
6946 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Fix | |
6947 | alignment computation. | |
6948 | ||
6949 | 2016-11-06 Kugan Vivekanandarajah <kuganv@linaro.org> | |
6950 | ||
6951 | * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove unreachable code. | |
6952 | ||
6953 | 2016-11-05 Martin Sebor <msebor@redhat.com> | |
6954 | ||
6955 | * doc/invoke.texi (Warning Options): Correct typos in -Walloca | |
6956 | documentation. | |
6957 | ||
6958 | 2016-11-05 David Edelsohn <dje.gcc@gmail.com> | |
6959 | ||
6960 | PR bootstrap/78188 | |
6961 | PR c++/71848 | |
6962 | * ipa-comdats.c (pass_ipa_comdats::gate): Require HAVE_COMDAT_GROUP. | |
6963 | ||
6964 | 2016-11-04 Jakub Jelinek <jakub@redhat.com> | |
6965 | ||
6966 | PR target/77834 | |
6967 | * alias.c (nonoverlapping_memrefs_p): Return 0 if exprx or expry | |
6968 | doesn't have rtl set. | |
6969 | ||
6970 | 2016-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
6971 | ||
6972 | * config/rs6000/rs6000.c (gimple-ssa.h): New #include. | |
6973 | (TARGET_GIMPLE_FOLD_BUILTIN): Define as | |
6974 | rs6000_gimple_fold_builtin. | |
6975 | (rs6000_gimple_fold_builtin): New function. Add handling for | |
6976 | early expansion of vector addition builtins. | |
6977 | ||
6978 | 2016-11-04 Eric Botcazou <ebotcazou@adacore.com> | |
6979 | ||
6980 | * expr.h (copy_blkmode_from_reg): Delete. | |
6981 | * expr.c (copy_blkmode_from_reg): Make static. | |
6982 | ||
6983 | 2016-11-04 Eric Botcazou <ebotcazou@adacore.com> | |
6984 | ||
6985 | * defaults.h (LOAD_EXTEND_OP): Define if not already defined. | |
6986 | * combine.c (LOAD_EXTEND_OP): Delete. | |
6987 | (simplify_comparison): Fix comment about LOAD_EXTEND_OP. | |
6988 | * cse.c (LOAD_EXTEND_OP): Delete. | |
6989 | * fold-const.c (LOAD_EXTEND_OP): Likewise. | |
6990 | * fwprop.c (free_load_extend): Remove #ifdef LOAD_EXTEND_OP/#endif. | |
6991 | * postreload.c (LOAD_EXTEND_OP): Delete. | |
6992 | * reload.c (push_reload): Remove #ifdef LOAD_EXTEND_OP/#endif. | |
6993 | Convert conditional compilation based on WORD_REGISTER_OPERATIONS. | |
6994 | (find_reloads): Likewise. | |
6995 | * reload1.c (eliminate_regs_1): Likewise. | |
6996 | * rtlanal.c (nonzero_bits1): Remove #ifdef LOAD_EXTEND_OP/#endif. | |
6997 | (num_sign_bit_copies1): Likewise. | |
6998 | ||
6999 | 2016-11-04 David Malcolm <dmalcolm@redhat.com> | |
7000 | ||
7001 | * config/i386/i386.c: Include "selftest.h" and "selftest-rtl.h". | |
7002 | (selftest::ix86_test_dumping_hard_regs): New function. | |
7003 | (selftest::ix86_run_selftests): New function. | |
7004 | (TARGET_RUN_TARGET_SELFTESTS): When CHECKING_P, wire this up to | |
7005 | selftest::ix86_run_selftests. | |
7006 | * doc/tm.texi.in (TARGET_RUN_TARGET_SELFTESTS): New. | |
7007 | * doc/tm.texi: Regenerate | |
7008 | * selftest-rtl.h: New file. | |
7009 | * rtl-tests.c: Include "selftest-rtl.h". | |
7010 | (selftest::assert_rtl_dump_eq): Make non-static. | |
7011 | (ASSERT_RTL_DUMP_EQ): Move to selftest-rtl.h. | |
7012 | (selftest::test_dumping_regs): Update comment. | |
7013 | * selftest-run-tests.c: Include "target.h". | |
7014 | (selftest::run_tests): If non-NULL, call | |
7015 | targetm.run_target_selftests. | |
7016 | * target.def (run_target_selftests): New hook. | |
7017 | ||
7018 | 2016-11-04 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
7019 | ||
7020 | * config/arm/arm-arches.def (armv8-m.main+dsp): Set Cortex-M33 as | |
7021 | representative core for this architecture. | |
7022 | * config/arm/arm-cores.def (cortex-m33): Define new processor. | |
7023 | * config/arm/arm-tables.opt: Regenerate. | |
7024 | * config/arm/arm-tune.md: Likewise. | |
7025 | * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M33 to the list of | |
7026 | valid -mcpu options. | |
7027 | * doc/invoke.texi (ARM Options): Document new Cortex-M33 processor. | |
7028 | ||
7029 | 2016-11-04 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
7030 | ||
7031 | * config/arm/arm-arches.def (armv8-m.base): Set Cortex-M23 as | |
7032 | representative core for this architecture. | |
7033 | * config/arm/arm-cores.def (cortex-m23): Define new processor. | |
7034 | * config/arm/arm-tables.opt: Regenerate. | |
7035 | * config/arm/arm-tune.md: Likewise. | |
7036 | * config/arm/arm.c (arm_v6m_tune): Add Cortex-M23 to the list of cores | |
7037 | this tuning parameters apply to in the comment. | |
7038 | * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M23 to the list of | |
7039 | valid -mcpu options. | |
7040 | * doc/invoke.texi (ARM Options): Document new Cortex-M23 processor. | |
7041 | ||
7042 | 2016-11-04 Bin Cheng <bin.cheng@arm.com> | |
7043 | ||
7044 | * fold-const.c (fold_cond_expr_with_comparison): Remove call | |
7045 | to pedantic_non_lvalue_loc. Remove useless code for lvalue | |
7046 | where cond_expr can't be a lvalue. | |
7047 | ||
7048 | 2016-11-04 Claudiu Zissulescu <claziss@synopsys.com> | |
7049 | ||
7050 | * config/arc/arc.c (arc_process_double_reg_moves): Use | |
7051 | gen_dexcl_2op call. | |
7052 | * config/arc/arc.md (movsi_insn): Disable unsupported move | |
7053 | instructions for ARCv2 cores. | |
7054 | (movdi): Use prepare_move_operands. | |
7055 | (movsf, movdf): Use move_dest_operand predicate. | |
7056 | * config/arc/constraints.md (Chs): Enable when barrel shifter is | |
7057 | present. | |
7058 | * config/arc/fpu.md (divsf3): Change to divsf3_fpu. | |
7059 | * config/arc/fpx.md (dexcl_3op_peep2_insn): Dx data register is | |
7060 | also a destination. | |
7061 | (dexcl_3op_peep2_insn_nores): Likewise. | |
7062 | * config/arc/arc.h (SHIFT_COUNT_TRUNCATED): Define to one. | |
7063 | (LINK_COMMAND_SPEC): Remove. | |
7064 | ||
7065 | 2016-11-04 Richard Biener <rguenther@suse.de> | |
7066 | ||
7067 | PR middle-end/78185 | |
7068 | * loop-invariant.c (find_exits): Record entering inner | |
7069 | loops as possibly exiting to handle infinite sub-loops. | |
7070 | * tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h. | |
7071 | (fill_always_executed_in_1): Honor infinite child loops. | |
7072 | ||
7073 | 2016-11-03 Michael Meissner <meissner@linux.vnet.ibm.com> | |
7074 | ||
7075 | PR target/78192 | |
7076 | * config/rs6000/vsx.md (vsx_extract_<mode>_di): The element number | |
7077 | has already been adjusted for endianness, so don't adjust it any | |
7078 | further. | |
7079 | ||
7080 | PR target/77993 | |
7081 | * config/rs6000/rs6000.h (FLOAT128_IBM_P): Do not allow IFmode or | |
7082 | ICmode unless we have standard PowerPC floating point. | |
7083 | * config/rs6000/rs6000.md (FP iterator): Likewise. | |
7084 | (FMOVE128 iterator): Likewise. | |
7085 | ||
7086 | 2016-11-03 Jakub Jelinek <jakub@redhat.com> | |
7087 | Alexandre Oliva <aoliva@redhat.com> | |
7088 | Jason Merrill <jason@redhat.com> | |
7089 | ||
7090 | PR debug/28767 | |
7091 | PR debug/56974 | |
7092 | * langhooks.h (struct lang_hooks_for_types): Add type_dwarf_attribute | |
7093 | langhook. | |
7094 | * langhooks.c (lhd_type_dwarf_attribute): New function. | |
7095 | * langhooks-def.h (lhd_type_dwarf_attribute): Declare. | |
7096 | (LANG_HOOKS_TYPE_DWARF_ATTRIBUTE): Define. | |
7097 | (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add | |
7098 | LANG_HOOKS_TYPE_DWARF_ATTRIBUTE. | |
7099 | (check_qualified_type, check_aligned_type): Call it. | |
7100 | * dwarf2out.c (modified_type_die): Don't use type_main_variant | |
7101 | for FUNCTION_TYPE or METHOD_TYPE, instead walk over variants with | |
7102 | check_base_type and check_lang_type. | |
7103 | (gen_ptr_to_mbr_type_die): If lookup_type_die is already non-NULL, | |
7104 | return early. For pointer-to-data-member add DW_AT_use_location | |
7105 | attribute. | |
7106 | (gen_subroutine_type_die): Add DW_AT_{,rvalue_}reference attribute | |
7107 | if needed. | |
7108 | (gen_type_die_with_usage): Don't use type_main_variant | |
7109 | for FUNCTION_TYPE or METHOD_TYPE, instead walk over variants with | |
7110 | check_base_type and check_lang_type. Formatting fixes. Call | |
7111 | get_debug_type langhook. | |
7112 | ||
7113 | 2016-11-03 Jason Merrill <jason@redhat.com> | |
7114 | ||
7115 | * tree.c (check_lang_type): New. | |
7116 | (check_qualified_type): Use it. | |
7117 | (check_aligned_type): Use it. | |
7118 | * tree.h: Declare it. | |
7119 | ||
7120 | 2016-11-03 Richard Earnshaw <rearnsha@arm.com> | |
7121 | ||
7122 | * config.gcc (arm-wrs-vxworks): Set target_cpu_cname. | |
7123 | (arm*-freebsd*): Likewise. | |
7124 | (arm*-*-netbsdelf*): Likewise. | |
7125 | (arm*-*-linux*): Likewise. | |
7126 | (arm*-*-uclinux*eabi*): Likewise. | |
7127 | (arm*-*-phoenix*): Likewise. | |
7128 | (arm*-*-eabi*, arm*-*-symbianelf*, arm*-*-rtems*): Likewise. | |
7129 | (arm*-*-*): Don't clobber target_cpu_cname when --with-cpu is not | |
7130 | specified. Default to arm6 if target_cpu_cname is not set. | |
7131 | * arm/arm.c (arm_option_override): Simplify logic. Assert that the | |
7132 | default cpu has been correctly configured. | |
7133 | * arm/arm.h (TARGET_CPU_DEFAULT): Delete. | |
7134 | (target_cpus): Delete TARGET_CPU_generic, add TARGET_CPU_num_cores. | |
7135 | * arm/freebsd.h (SUBTARGET_CPU_DEFAULT): Delete. | |
7136 | * arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Delete. | |
7137 | * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Delete. | |
7138 | * arm/symbian.h (SUBTARGET_CPU_DEFAULT): Delete. | |
7139 | * arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Delete. | |
7140 | ||
7141 | 2016-11-03 Jiong Wang <jiong.wang@arm.com> | |
7142 | ||
7143 | * reg-notes.def (CFA_VAL_EXPRESSION): New entry. | |
7144 | * dwarf2cfi.c (dwarf2out_frame_debug_cfa_val_expression): New function. | |
7145 | (dwarf2out_frame_debug): Support REG_CFA_VAL_EXPRESSION. | |
7146 | (output_cfa_loc): Support DW_CFA_val_expression. | |
7147 | (output_cfa_loc_raw): Likewise. | |
7148 | (output_cfi): Likewise. | |
7149 | (output_cfi_directive): Likewise. | |
7150 | * dwarf2out.c (dw_cfi_oprnd1_desc): Support DW_CFA_val_expression. | |
7151 | (dw_cfi_oprnd2_desc): Likewise. | |
7152 | (mem_loc_descriptor): Recognize new pattern generated for value | |
7153 | expression. | |
7154 | ||
7155 | 2016-11-03 Segher Boessenkool <segher@kernel.crashing.org> | |
7156 | ||
7157 | PR rtl-optimization/78186 | |
7158 | * combine.c (change_zero_ext): Mask the RHS of a zero_extract as | |
7159 | well, when converting to IOR. | |
7160 | ||
7161 | 2016-11-03 Eric Botcazou <ebotcazou@adacore.com> | |
7162 | ||
7163 | * config/sparc/sparc.md (vec_interleave_lowv8qi): Delete. | |
7164 | (vec_interleave_highv8qi): Likewise. | |
7165 | ||
7166 | 2016-11-03 Martin Liska <mliska@suse.cz> | |
7167 | ||
7168 | * profile.c (instrument_values): Fix coding style. | |
7169 | (branch_prob): Use renamed function. | |
7170 | * tree-profile.c (init_ic_make_global_vars): Likewise. | |
7171 | (gimple_init_edge_profiler): Rename to | |
7172 | gimple_init_gcov_profiler. | |
7173 | tree_time_profiler_counter variable declaration. | |
7174 | (gimple_gen_time_profiler): Rewrite to do a direct gimple code | |
7175 | emission. | |
7176 | * value-prof.h: Remove an argument. | |
7177 | ||
7178 | 2016-11-03 Richard Biener <rguenther@suse.de> | |
7179 | ||
7180 | * config/rs6000/rs6000.c (rs6000_xcoff_declare_object_name): Use | |
7181 | symtab_node::get_create. | |
7182 | ||
7183 | 2016-11-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
7184 | ||
7185 | * rtlanal.c (nonzero_bits1): Fix WORD_REGISTER_OPERATIONS condition. | |
7186 | Move comments into more natural position. | |
7187 | ||
7188 | 2016-11-03 Vineet Gupta <vgupta@synopsys.com> | |
7189 | ||
7190 | * config/arc/arc.h (SIZE_TYPE): Define as unsigned int. | |
7191 | (PTRDIFF_TYPE): Define as int. | |
7192 | ||
7193 | 2016-11-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
7194 | ||
7195 | * ccmp.c (expand_ccmp_expr_1): Adjust. | |
7196 | (expand_ccmp_expr): Likewise. | |
7197 | (expand_ccmp_next): Likewise. | |
7198 | * config/aarch64/aarch64.c (aarch64_gen_ccmp_next): Likewise. | |
7199 | (aarch64_gen_ccmp_first): Likewise. | |
7200 | * doc/tm.texi: Regenerate. | |
7201 | * target.def (gen_ccmp_first): Change argument types to rtx_insn *. | |
7202 | (gen_ccmp_next): Likewise. | |
7203 | ||
7204 | 2016-11-03 Bin Cheng <bin.cheng@arm.com> | |
7205 | ||
7206 | * tree-vect-loop.c (destroy_loop_vec_info): Handle cond_expr. | |
7207 | (vect_is_simple_reduction): Swap cond_reduction by inversion. | |
7208 | ||
7209 | 2016-11-02 Uros Bizjak <ubizjak@gmail.com> | |
7210 | ||
7211 | * config/i386/i386.c (ix86_init_libfuncs): New. Call | |
7212 | darwin_rename_builtins here. | |
7213 | (ix86_expand_divmod_libfunc): New. | |
7214 | (TARGET_INIT_LIBFUNCS): Unconditionally define to ix86_init_libfuncs. | |
7215 | (TARGET_EXPAND_DIVMOD_LIBFUNC): Define. | |
7216 | ||
7217 | 2016-11-02 Cesar Philippidis <cesar@codesourcery.com> | |
7218 | Nathan Sidwell <nathan@acm.org> | |
7219 | ||
7220 | * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): Set to zero. | |
7221 | ||
7222 | 2016-11-02 Max Filippov <jcmvbkbc@gmail.com> | |
7223 | ||
7224 | * config/xtensa/xtensa.c (xtensa_output_integer_literal_parts): | |
7225 | New function. | |
7226 | (xtensa_output_literal): Use xtensa_output_integer_literal_parts | |
7227 | to format MODE_INT and MODE_PARTIAL_INT literals. | |
7228 | ||
7229 | 2016-11-02 Segher Boessenkool <segher@kernel.crashing.org> | |
7230 | ||
7231 | PR target/78168 | |
7232 | * config/r6000/rs6000.c (rs6000_get_separate_components): Return | |
7233 | NULL if TARGET_SPE_ABI. | |
7234 | ||
7235 | 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
7236 | ||
7237 | * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Don't forget to | |
7238 | clear padding bits even when they're less than a byte. | |
7239 | ||
7240 | 2016-11-02 Richard Biener <rguenther@suse.de> | |
7241 | ||
7242 | * gimple-ssa-store-merging.c: Include gimplify-me.h. | |
7243 | (imm_store_chain_info::output_merged_stores): Force base_addr | |
7244 | to be proper GIMPLE for a MEM_REF address. | |
7245 | (pass_store_merging::execute): Restrict negative bitpos | |
7246 | handling to non-MEM_REF bases. Remove TREE_THIS_VOLATILE | |
7247 | check. Take into account non-NULL_TREE offset if the base | |
7248 | is already addressable. | |
7249 | ||
7250 | 2016-11-26 Wilco Dijkstra <wdijkstr@arm.com> | |
7251 | ||
7252 | * config/aarch64/aarch64-simd.md (aarch64_crypto_sha1hv4si): | |
7253 | New pattern. | |
7254 | (aarch64_be_crypto_sha1hv4si): New pattern. | |
7255 | ||
7256 | 2016-11-02 Wilco Dijkstra <wdijkstr@arm.com> | |
7257 | ||
7258 | * config/aarch64/aarch64.md (add<mode>3): Remove | |
7259 | redundant code. Don't split frame based additions. | |
7260 | ||
7261 | 2016-11-02 Richard Biener <rguenther@suse.de> | |
7262 | ||
7263 | * gimple-ssa-store-merging.c (struct store_immediate_info): Remove | |
7264 | redundant val and dest members. | |
7265 | (store_immediate_info::store_immediate_info): Adjust. | |
7266 | (merged_store_group::merged_store_group): Adjust. | |
7267 | (merged_store_group::apply_stores): Likewise. | |
7268 | (struct imm_store_chain_info): Add base_addr field. | |
7269 | (imm_store_chain_info::imm_store_chain_info): New constructor. | |
7270 | (imm_store_chain_info::terminate_and_process_chain): Do not pass base. | |
7271 | (imm_store_chain_info::output_merged_store): Likewise. Use | |
7272 | addr_base which is already the address. | |
7273 | (imm_store_chain_info::output_merged_stores): Likewise. | |
7274 | (pass_tree_store_merging::terminate_all_aliasing_chains): Take | |
7275 | imm_store_chain_info instead of base. Fix alias check. | |
7276 | (pass_tree_store_merging::terminate_and_release_chain): Likewise. | |
7277 | (imm_store_chain_info::coalesce_immediate_stores): Adjust. | |
7278 | (pass_store_merging::execute): Refuse to operate on TARGET_MEM_REF. | |
7279 | use the address of the base and adjust for other changes. | |
7280 | ||
7281 | 2016-11-02 Martin Liska <mliska@suse.cz> | |
7282 | ||
7283 | * fold-const-call.c (host_size_t_cst_p): Test whether | |
7284 | t is convertible to size_t. | |
7285 | ||
7286 | 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
7287 | ||
7288 | PR tree-optimization/78170 | |
7289 | * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Truncate padding | |
7290 | introduced by native_encode_expr on little-endian as well. | |
7291 | ||
7292 | 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
7293 | ||
7294 | PR tree-optimization/78162 | |
7295 | * gimple-ssa-store-merging.c (execute): Mark stores with bitpos < 0 | |
7296 | as invalid. | |
7297 | ||
7298 | 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
7299 | ||
7300 | * config/aarch64/aarch64.c (aarch64_register_saved_on_entry): Add | |
7301 | function comment. | |
7302 | (aarch64_next_callee_save): Likewise. | |
7303 | (aarch64_pushwb_single_reg): Likewise. | |
7304 | (aarch64_gen_storewb_pair): Likewise. | |
7305 | (aarch64_push_regs): Likewise. | |
7306 | (aarch64_gen_loadwb_pair): Likewise. | |
7307 | (aarch64_pop_regs): Likewise. | |
7308 | (aarch64_gen_store_pair): Likewise. | |
7309 | (aarch64_gen_load_pair): Likewise. | |
7310 | (aarch64_save_callee_saves): Likewise. | |
7311 | (aarch64_restore_callee_saves): Likewise. | |
7312 | ||
7313 | 2016-11-02 Richard Biener <rguenther@suse.de> | |
7314 | ||
7315 | PR tree-optimization/78035 | |
7316 | PR tree-optimization/77964 | |
7317 | * gimple-pretty-print.c (pp_points_to_solution): Print | |
7318 | vars_contains_interposable. | |
7319 | * tree-ssa-alias.c: Include varasm.h. | |
7320 | (ptrs_compare_unequal): Check vars_contains_interposable and | |
7321 | decl_binds_to_current_def_p. | |
7322 | (dump_points_to_solution): Dump vars_contains_interposable. | |
7323 | * tree-ssa-alias.h (struct pt_solution): Add vars_contains_interposable | |
7324 | flag. | |
7325 | * tree-ssa-structalias.c: Include varasm.h. | |
7326 | (set_uids_in_ptset): Record whether vars contains a | |
7327 | not decl_binds_to_current_def_p variable in vars_contains_interposable. | |
7328 | (ipa_escaped_pt): Update initializer. | |
7329 | ||
7330 | 2016-11-02 Richard Biener <rguenther@suse.de> | |
7331 | ||
7332 | PR tree-optimization/78047 | |
7333 | * tree-ssa-structalias.c (push_fields_onto_fieldstack): Initialize | |
7334 | fake field at offset zero conservatively regarding to may_have_pointers. | |
7335 | ||
7336 | 2016-11-02 Richard Biener <rguenther@suse.de> | |
7337 | ||
7338 | * tree-vrp.c (evrp_dom_walker::before_dom_children): Call | |
7339 | infer_value_range on stmt ops and update value-ranges. | |
7340 | Dump visited stmts and blocks. | |
7341 | (evrp_dom_walker::push_value_range): Dump changes. | |
7342 | (evrp_dom_walker::pop_value_range): Likewise. | |
7343 | (evrp_dom_walker::try_find_new_range): Avoid noop changes. | |
7344 | ||
7345 | 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
7346 | ||
7347 | * emit-rtl.c (prev_nonnote_insn_bb): Change argument type to | |
7348 | rtx_insn *. | |
7349 | * rtl.h (prev_nonnote_insn_bb): Adjust prototype. | |
7350 | ||
7351 | 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
7352 | ||
7353 | * cfgrtl.c (delete_insn_chain): Change argument type to rtx_insn * | |
7354 | and adjust for that. | |
7355 | * cfgrtl.h (delete_insn_chain): Adjust prototype. | |
7356 | ||
7357 | 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
7358 | ||
7359 | * config/rl78/rl78.c (gen-and_emit_move): Change argument type | |
7360 | to rtx_insn *. | |
7361 | (transcode_memory_rtx): Likewise. | |
7362 | (move_to_acc): Likewise. | |
7363 | (move_from_acc): Likewise. | |
7364 | (move_acc_to_reg): Likewise. | |
7365 | (move_to_x): Likewise. | |
7366 | (move_to_hl): Likewise. | |
7367 | (move_to_de): Likewise. | |
7368 | * config/rs6000/rs6000.c (emit_frame_save): Likewise. | |
7369 | (rs6000_emit_savres_rtx): Likewise. | |
7370 | (rs6000_emit_prologue): Likewise. | |
7371 | * reorg.c (update_reg_unused_notes): Likewise. | |
7372 | * rtl.h (remove_note): Adjust prototype. | |
7373 | * rtlanal.c (remove_note): Make argument type rtx_insn *. | |
7374 | ||
7375 | 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
7376 | ||
7377 | * config/alpha/alpha.c (alpha_legitimize_address_1): Split up | |
7378 | variables so some can be rtx_insn *. | |
7379 | (alpha_emit_xfloating_libcall): Likewise. | |
7380 | * config/mips/mips.c (mips_call_tls_get_addr): Likewise. | |
7381 | (mips_legitimize_tls_address): Likewise. | |
7382 | * optabs.c (expand_binop): Likewise. | |
7383 | * reload1.c (gen_reload): Likewise. | |
7384 | ||
7385 | 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
7386 | ||
7387 | * reorg.c (relax_delay_slots): Split up the trial variable. | |
7388 | ||
7389 | 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
7390 | ||
7391 | * config/arc/arc.c (arc_emit_call_tls_get_addr): Make the type | |
7392 | of variables rtx_insn *. | |
7393 | * config/arm/arm.c (arm_call_tls_get_addr): Likewise. | |
7394 | (legitimize_tls_address): Likewise. | |
7395 | * config/bfin/bfin.c (hwloop_optimize): Likewise. | |
7396 | (bfin_gen_bundles): Likewise. | |
7397 | * config/c6x/c6x.c (reorg_split_calls): Likewise. | |
7398 | (c6x_reorg): Likewise. | |
7399 | * config/frv/frv.c (frv_reorder_packet): Likewise. | |
7400 | * config/i386/i386.c (ix86_split_idivmod): Likewise. | |
7401 | * config/ia64/ia64.c (ia64_expand_compare): Likewise. | |
7402 | * config/m32c/m32c.c (m32c_prepare_shift): Likewise. | |
7403 | * config/mn10300/mn10300.c: Likewise. | |
7404 | * config/rl78/rl78.c: Likewise. | |
7405 | * config/s390/s390.c (s390_fix_long_loop_prediction): Likewise. | |
7406 | * config/sh/sh-mem.cc (sh_expand_cmpstr): Likewise. | |
7407 | (sh_expand_cmpnstr): Likewise. | |
7408 | (sh_expand_strlen): Likewise. | |
7409 | (sh_expand_setmem): Likewise. | |
7410 | * config/sh/sh.md: Likewise. | |
7411 | * emit-rtl.c (emit_pattern_before): Likewise. | |
7412 | * except.c: Likewise. | |
7413 | * final.c: Likewise. | |
7414 | * jump.c: Likewise. | |
7415 | ||
7416 | 2016-11-01 Jason Merrill <jason@redhat.com> | |
7417 | ||
7418 | * tree-inline.c (copy_tree_body_r): Only copy the taken branch of | |
7419 | a COND_EXPR with constant condition. | |
7420 | ||
7421 | 2016-11-01 Jakub Jelinek <jakub@redhat.com> | |
7422 | ||
7423 | * dwarf2out.c (gen_variable_die): Remove again origin_die variable | |
7424 | and its initialization. | |
7425 | ||
7426 | 2016-11-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
7427 | ||
7428 | * dwarf2out.c (output_rnglists): Wrap basebuf, len in | |
7429 | HAVE_AS_LEB128. | |
7430 | ||
7431 | 2016-11-01 Jakub Jelinek <jakub@redhat.com> | |
7432 | ||
7433 | * dwarf2out.c (add_name_and_src_coords_attributes): Add NO_LINKAGE_NAME | |
7434 | argument, don't call add_linkage_name if it is true. | |
7435 | (gen_variable_die): For C++ inline static data members, consider the | |
7436 | initial call when old_die is NULL to be declaration and call | |
7437 | add_name_and_src_coords_attributes in that case with true as | |
7438 | NO_LINKAGE_NAME. Add DW_AT_inline attribute if needed. | |
7439 | (gen_member_die): For C++ inline static data members, emit a | |
7440 | definition DIE right away in DW_TAG_compile_unit context. | |
7441 | ||
7442 | 2016-11-01 John David Anglin <danglin@gcc.gnu.org> | |
7443 | ||
7444 | PR target/78166 | |
7445 | * config/pa/pa.md: Add new shift/add patterns to handle | |
7446 | (plus (mult (reg) (mem_shadd_operand)) (reg)) source operand. | |
7447 | ||
7448 | 2016-11-01 Max Filippov <jcmvbkbc@gmail.com> | |
7449 | ||
7450 | * config/xtensa/xtensa-protos.h | |
7451 | (xtensa_use_return_instruction_p): New prototype. | |
7452 | * config/xtensa/xtensa.c (xtensa_current_frame_size, | |
7453 | xtensa_callee_save_size): Remove. | |
7454 | (struct machine_function): Add new fields: current_frame_size, | |
7455 | callee_save_size, frame_laid_out and epilogue_done. | |
7456 | (compute_frame_size, xtensa_expand_prologue, | |
7457 | xtensa_expand_epilogue): Replace xtensa_callee_save_size with | |
7458 | cfun->machine->callee_save_size and xtensa_current_frame_size | |
7459 | with cfun->machine->current_frame_size. | |
7460 | (compute_frame_size): Update cfun->machine->frame_laid_out and | |
7461 | don't update frame layout after reload completion. | |
7462 | (xtensa_expand_epilogue): Set cfun->machine->epilogue_done | |
7463 | instead of zeroing xtensa_current_frame_size. | |
7464 | (xtensa_use_return_instruction_p): New function. | |
7465 | * config/xtensa/xtensa.h (xtensa_current_frame_size): Remove | |
7466 | declaration. | |
7467 | (INITIAL_ELIMINATION_OFFSET): Use return value of | |
7468 | compute_frame_size instead of xtensa_current_frame_size value. | |
7469 | * config/xtensa/xtensa.md ("return" pattern): Use new predicate | |
7470 | function xtensa_use_return_instruction_p instead of inline code. | |
7471 | ||
7472 | 2016-11-01 Jakub Jelinek <jakub@redhat.com> | |
7473 | ||
7474 | * tree.h (BLOCK_IN_COLD_SECTION_P): Define. | |
7475 | * final.c (final_scan_insn): Set BLOCK_IN_COLD_SECTION_P. | |
7476 | * dwarf2out.c (rnglist_idx): New variable. | |
7477 | (struct dw_ranges): Add label, idx and maybe_new_sec fields. | |
7478 | (DEBUG_RNGLISTS_SECTION): Define. | |
7479 | (ranges_base_label): New variable. | |
7480 | (size_of_die) <case dw_val_class_range_list>: If using | |
7481 | DW_FORM_rnglistx, count size of uleb128 of range list index. | |
7482 | (value_format) <case dw_val_class_range_list>: For | |
7483 | -gdwarf-5 -gsplit-dwarf return DW_FORM_rnglistx. | |
7484 | (output_range_list_offset): Handle -gdwarf-5 .debug_rnglists | |
7485 | offsets. Multiply dwarf < 5 offsets by 2 * DWARF_ADDR_SIZE. | |
7486 | (add_ranges_num): Remove useless prototype. Don't multiply | |
7487 | by 2 * DWARF2_ADDR_SIZE. Add maybe_new_sec argument, adjust | |
7488 | for new fields added to dw_ranges struct. | |
7489 | (add_ranges): Add maybe_new_sec argument and pass it | |
7490 | through to add_ranges_num. | |
7491 | (note_rnglist_head): New function. | |
7492 | (add_ranges_by_labels): Pass true as maybe_new_sec to | |
7493 | add_ranges_num, call note_rnglist_head on the head of the list. | |
7494 | (output_ranges): Add function comment. Switch to | |
7495 | .debug_ranges section here and emit .Ldebug_ranges0 label. | |
7496 | (index_rnglists, output_rnglists): New functions. | |
7497 | (gen_subprogram_die): Formatting fixes. | |
7498 | (add_high_low_attributes): Don't divide offsets | |
7499 | by 2 * DWARF2_ADDR_SIZE. Call note_rnglist_head on the | |
7500 | first list element or when pointing into the middle of | |
7501 | a list. Pass true as second argument to add_ranges on the | |
7502 | first block fragment after cold/hot section switch. | |
7503 | (init_sections_and_labels): For -gdwarf-5 use .debug_rnglists | |
7504 | section instead of .debug_ranges. Initialize | |
7505 | ranges_base_label if -gdwarf-5 -gsplit-dwarf. | |
7506 | (dwarf2out_finish): For -gdwarf-5 -gsplit-dwarf call | |
7507 | index_rnglists and add DW_AT_rnglists_base attr. Don't switch | |
7508 | to dwarf_ranges_section here or emit .Ldebug_ranges0 label. | |
7509 | Call output_rnglists for -gdwarf-5. | |
7510 | (dwarf2out_c_finalize): Clear rnglist_idx. | |
7511 | ||
7512 | 2016-11-01 Fritz Reese <fritzoreese@gmail.com> | |
7513 | ||
7514 | * combine.c (simplify_compare_const): Add gcc_fallthrough. | |
7515 | ||
7516 | 2016-11-01 Bilyan Borisov <bilyan.borisov@arm.com> | |
7517 | Tamar Christina <tamar.christina@arm.com> | |
7518 | ||
7519 | * config/arm/arm-c.c (arm_cpu_builtins): New macro definition. | |
7520 | * config/arm/arm_neon.h (vmaxnm_f32): New intrinsinc. | |
7521 | (vmaxnmq_f32): Likewise. | |
7522 | (vminnm_f32): Likewise. | |
7523 | (vminnmq_f32): Likewise. | |
7524 | * config/arm/arm_neon_builtins.def (vmaxnm): New builtin. | |
7525 | (vminnm): Likewise. | |
7526 | * config/arm/neon.md (neon_<fmaxmin_op><mode>, VCVTF): New | |
7527 | expander. | |
7528 | ||
7529 | 2016-10-31 Michael Meissner <meissner@linux.vnet.ibm.com> | |
7530 | ||
7531 | * config/rs6000/vsx.md (VSX_EXTRACT_FL): New iterator for all | |
7532 | binary floating point types supported by the hardware except for | |
7533 | double. | |
7534 | (vsx_xvcvsxwdp_df): Provide scalar result alternative to the | |
7535 | vector instruction for optimizing extracting a SImode from a | |
7536 | V4SImode vector and converting it to floating point. | |
7537 | (vsx_xvcvuxwdp_df): Likewise. | |
7538 | (vsx_extract_si): On ISA 3.0, allow extract target and temporary | |
7539 | registers to be any VSX register. Move stores to the end of the | |
7540 | constraints. | |
7541 | (vsx_extract_si_<uns>float_df): New combiner pattern and splitter | |
7542 | to optimize extracting a SImode from a V4SImode vector and | |
7543 | converting it to a binary floating point type supported by the | |
7544 | hardware. Use the vector converts instead of extracting the | |
7545 | element, sign extending it, and then converting it to double. | |
7546 | Other floating point types than double first convert to double, | |
7547 | then the double is converted to that type. | |
7548 | (vsx_extract_si_<uns>float_<mode>): Likewise. | |
7549 | ||
7550 | 2016-10-31 Andrew Pinski <apinski@cavium.com> | |
7551 | ||
7552 | * config/aarch64/driver-aarch64.c (host_detect_local_cpu): | |
7553 | Rewrite handling of part num to handle the case where | |
7554 | multiple implementers share the same part num. | |
7555 | ||
7556 | 2016-10-31 Jan Kratochvil <jan.kratochvil@redhat.com> | |
7557 | Jakub Jelinek <jakub@redhat.com> | |
7558 | ||
7559 | * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): Adjust for -gdwarf-5. | |
7560 | (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Likewise. | |
7561 | ||
7562 | 2016-10-31 Jakub Jelinek <jakub@redhat.com> | |
7563 | ||
7564 | * dwarf2out.c (dwarf_AT): Handle DW_AT_dwo_name. | |
7565 | (use_debug_types): Adjust comment for DWARF5 DW_UT_type units. | |
7566 | (new_die): Handle DW_TAG_skeleton_unit like DW_TAG_compile_unit. | |
7567 | (is_cu_die, is_unit_die): Likewise. | |
7568 | (should_move_die_to_comdat, break_out_comdat_types): Adjust | |
7569 | comments for DWARF5 DW_UT_type units. | |
7570 | (output_compilation_unit_header): Add UT argument, output | |
7571 | start of DWARF5 .debug_info section header. | |
7572 | (output_comp_unit): Add dwo_id argument. Adjust | |
7573 | output_compilation_unit_header caller, for DW_UT_split_compile | |
7574 | emit dwo_id field, otherwise padding1. Emit padding2 field. | |
7575 | (add_top_level_skeleton_die_attrs): Add DW_AT_dwo_name | |
7576 | rather than DW_AT_GNU_dwo_name attr for -gdwarf-5. | |
7577 | (output_skeleton_debug_sections): Add dwo_id argument, for | |
7578 | -gdwarf-5 emit DWARF 5 DW_UT_skeleton header. | |
7579 | (output_comdat_type_unit): For -gdwarf-5 emit .debug_info | |
7580 | DW_UT_type or DW_UT_split_type units rather than .debug_types. | |
7581 | (dwarf2out_finish): Use DW_TAG_skeleton_unit rather than | |
7582 | DW_TAG_compile_unit for skeleton unit die. Don't add | |
7583 | DW_AT_GNU_dwo_id attributes for -gdwarf-5, instead pass checksum | |
7584 | address to output_comp_unit and output_skeleton_debug_sections. | |
7585 | ||
7586 | * dwarf2out.c (debug_line_str_section): New variable. | |
7587 | (debug_line_str_hash): Likewise. | |
7588 | (DEBUG_LINE_STR_SECTION): Define. | |
7589 | (set_indirect_string): Handle DW_FORM_line_strp like | |
7590 | DW_FORM_strp. | |
7591 | (find_string_form): Fix up formatting. | |
7592 | (size_of_die): Handle DW_FORM_line_strp like DW_FORM_strp. | |
7593 | Fix up indentation. | |
7594 | (output_die): Handle DW_FORM_line_strp. | |
7595 | (DWARF5_USE_DEBUG_LINE_STR): Define. | |
7596 | (output_line_string): New function. | |
7597 | (output_file_names): Add -gdwarf-5 support. | |
7598 | (output_line_info): Likewise. | |
7599 | (init_sections_and_labels): Initialize debug_line_str_section. | |
7600 | (output_indirect_string): Change 2nd argument from void * | |
7601 | to enum dwarf_form form, compare with form rather than | |
7602 | DW_FORM_strp. | |
7603 | (output_indirect_strings): Pass DW_FORM_strp to | |
7604 | output_indirect_string traversion. | |
7605 | (dwarf2out_finish): Output .debug_line_str strings. | |
7606 | (dwarf2out_c_finalize): Clear debug_line_str_section and | |
7607 | debug_line_str_hash. | |
7608 | ||
7609 | 2016-10-31 Tom Tromey <tom@tromey.com> | |
7610 | ||
7611 | PR debug/77315 | |
7612 | * dwarf2out.c (mem_loc_descriptor): Use DW_OP_form_tls_address. | |
7613 | (resolve_args_picking_1): Move DW_OP_form_tls_address case next to | |
7614 | DW_OP_GNU_push_tls_address case. | |
7615 | (loc_list_from_tree_1): Use DW_OP_form_tls_address. | |
7616 | ||
7617 | 2016-10-31 Jakub Jelinek <jakub@redhat.com> | |
7618 | ||
7619 | * dwarf2out.h (struct dw_loc_descr_node): Adjust comment | |
7620 | for frame_offset_rel bit. | |
7621 | (struct array_descr_info): Add rank field. | |
7622 | * dwarf2out.c (struct loc_descr_context): Add placeholder_arg | |
7623 | and placeholder_seen fields. | |
7624 | (resolve_args_picking_1): Handle also frame_offset_rel DW_OP_dup | |
7625 | and DW_OP_over. Optimize DW_OP_pick 0 into DW_OP_dup and | |
7626 | DW_OP_pick 1 into DW_OP_over. | |
7627 | (function_to_dwarf_procedure, type_byte_size, field_byte_offset, | |
7628 | gen_variant_part): Clear placeholder_{arg,seen}. | |
7629 | (loc_list_from_tree_1): Drop const from context argument. | |
7630 | Handle integral PLACEHOLDER_EXPR if context->placeholder_arg. | |
7631 | (loc_list_for_address_of_addr_expr_of_indirect_ref, | |
7632 | loc_list_from_tree, loc_descriptor_from_tree): Drop const from | |
7633 | context argument. | |
7634 | (add_scalar_info): Drop const from context argument. Handle | |
7635 | context->placeholder_arg. | |
7636 | (add_bound_info): Drop const from context argument. | |
7637 | (gen_descr_array_type_die): Drop const from ctx variable. | |
7638 | Initialize placeholder_arg and placeholder_seen. Add DW_AT_rank | |
7639 | attribute and use a single DW_TAG_generic_subrange instead of | |
7640 | 7 DW_TAG_subrange_type for assumed rank arrays. | |
7641 | ||
7642 | * dwarf2out.h (enum dw_val_class): Add dw_val_class_loclistsptr. | |
7643 | * dwarf2out.c (struct dw_loc_list_struct): Change emitted field | |
7644 | from bool to 1-bit uchar bitfield. Add num_assigned and | |
7645 | offset_emitted bitfields. | |
7646 | (dw_val_equal_p): Compare v.val_lbl_id rather than v.val_unsigned | |
7647 | for dw_val_class_lineptr and dw_val_class_macptr. Handle | |
7648 | dw_val_class_loclistsptr. | |
7649 | (new_addr_loc_descr): Fix up formatting. | |
7650 | (DEBUG_LOCLISTS_SECTION, DEBUG_DWO_LOCLISTS_SECTION): Define. | |
7651 | (add_AT_low_high_pc): Fix up formatting. | |
7652 | (add_AT_loclistsptr): New function. | |
7653 | (AT_lbl): Allow dw_val_class_loclistsptr. | |
7654 | (print_dw_val, attr_checksum, attr_checksum_ordered, same_dw_val_p): | |
7655 | Handle dw_val_class_loclistsptr. | |
7656 | (loc_list_idx): New variable. | |
7657 | (output_loclists_offsets, assign_location_list_indexes): New | |
7658 | functions. | |
7659 | (size_of_die): For dw_val_class_loc_list -gsplit-dwarf -gdwarf-5 | |
7660 | add size_of_uleb128 of the index. Drop never used | |
7661 | dwarf_split_debug_info AT_index handling. Handle | |
7662 | dw_val_class_loclistsptr. | |
7663 | (value_format): Return DW_FORM_loclistsx for dw_val_class_loc_list | |
7664 | if -gsplit-dwarf -gdwarf-5. Handle dw_val_class_loclistsptr. | |
7665 | (output_loc_list): Handle DWARF 5 .debug_loclists* format. | |
7666 | (output_loc_list_offset): Handle -gsplit-dwarf -gdwarf-5 | |
7667 | DW_FORM_loclistx indexes. | |
7668 | (output_attr_index_or_value): Fix up formatting. Don't handle | |
7669 | dw_val_class_loc_list here. | |
7670 | (output_die): Formatting fixes. Handle dw_val_class_loclistsptr. | |
7671 | For dw_val_class_loc_list call output_loc_list_offset rather than | |
7672 | output_attr_index_or_value. | |
7673 | (init_sections_and_labels): For -gdwarf-5 use .debug_loclists | |
7674 | or .debug_loclists.dwo section name for debug_loc_section. | |
7675 | (resolve_addr_in_expr): Formatting fix. | |
7676 | (index_location_lists): Likewise. | |
7677 | (dwarf2out_finish): If there are any location lists, for | |
7678 | -gsplit-dwarf -gdwarf-5 add DW_AT_loclists_base attribute. Call | |
7679 | index_location_lists only if have_location_lists. Call | |
7680 | assign_location_list_indexes for -gsplit-dwarf -gdwarf-5. Emit | |
7681 | .debug_loclists{,.dwo} section header for -gdwarf-5, for -gdwarf-5 | |
7682 | -gsplit-dwarf also emit offset table. | |
7683 | ||
7684 | * dwarf2out.c (DWARF_LARGEST_DATA_FORM_BITS): Define. | |
7685 | (size_of_die, value_format, output_die): Use | |
7686 | DW_FORM_data16 for 128-bit dw_val_class_const_double or | |
7687 | dw_val_class_wide_int. | |
7688 | ||
7689 | * dwarf2out.c (dwarf_op): Renamed to ... | |
7690 | (dwarf_OP): ... this. | |
7691 | (convert_descriptor_to_mode, scompare_loc_descriptor, | |
7692 | minmax_loc_descriptor, typed_binop, mem_loc_descriptor, | |
7693 | implicit_ptr_descriptor, optimize_one_addr_into_implicit_ptr): Adjust | |
7694 | callers. | |
7695 | (dwarf_AT, dwarf_TAG): New functions. | |
7696 | (check_die): Disallow DW_AT_call_all_calls next to | |
7697 | DW_AT_GNU_all_call_sites. | |
7698 | (gen_call_site_die): Use dwarf_TAG and dwarf_AT with DWARF 5 tag | |
7699 | and attributes instead of the corresponding GNU tag and attributes. | |
7700 | (gen_subprogram_die): Likewise. Emit call site information even | |
7701 | for -gdwarf-5 -gstrict-dwarf. Replace DW_AT_GNU_defaulted with | |
7702 | DW_AT_defaulted in comment. | |
7703 | (resolve_addr): Handle DW_AT_call_origin attribute on | |
7704 | DW_TAG_call_site DIE like DW_AT_abstract_origin on | |
7705 | DW_TAG_GNU_call_site DIE. | |
7706 | ||
7707 | * dwarf2out.c (dwarf_op): New function. | |
7708 | (size_of_loc_descr): Handle DW_OP_{implicit_pointer,entry_value}, | |
7709 | DW_OP_{const,regval,deref}_type and DW_OP_{convert,reinterpret}. | |
7710 | (output_loc_operands, output_loc_operands_raw): Likewise. | |
7711 | (resolve_args_picking_1, prune_unused_types_walk_loc_descr, | |
7712 | mark_base_types, hash_loc_operands, compare_loc_operands): Likewise. | |
7713 | (resolve_addr_in_expr): Likewise. Only punt for !dwarf_strict | |
7714 | if dwarf_version < 5. | |
7715 | (convert_descriptor_to_mode): Use dwarf_op (DW_OP_xxx) instead of | |
7716 | DW_OP_GNU_xxx. | |
7717 | (scompare_loc_descriptor, ucompare_loc_descriptor, | |
7718 | minmax_loc_descriptor, typed_binop, mem_loc_descriptor, | |
7719 | implicit_ptr_descriptor, optimize_one_addr_into_implicit_ptr, | |
7720 | optimize_location_into_implicit_ptr): Likewise. Only punt for | |
7721 | !dwarf_strict if dwarf_version < 5. | |
7722 | (string_cst_pool_decl): Adjust comment. | |
7723 | (non_dwarf_expression): Handle DW_OP_implicit_pointer. | |
7724 | ||
7725 | * dwarf2out.h (enum dw_val_class): Add dw_val_class_const_implicit, | |
7726 | dw_val_class_unsigned_const_implicit and dw_val_class_file_implicit. | |
7727 | (struct dw_val_node): Add val_file_implicit field. | |
7728 | * dwarf2out.c (dw_val_equal_p, print_dw_val, attr_checksum, | |
7729 | attr_checksum_ordered, same_dw_val_p, size_of_die, value_format, | |
7730 | output_die): Handle dw_val_class_const_implicit, | |
7731 | dw_val_class_unsigned_const_implicit and dw_val_class_file_implicit. | |
7732 | (abbrev_die_table): Change into va_gc vec. | |
7733 | (abbrev_die_table_allocated, abbrev_die_table_in_use, | |
7734 | ABBREV_DIE_TABLE_INCREMENT): Remove. | |
7735 | (AT_int, AT_unsigned, AT_file): Allow dw_val_class_*_implicit. | |
7736 | (abbrev_opt_start, abbrev_usage_count, sorted_abbrev_dies): New | |
7737 | variables. | |
7738 | (build_abbrev_table): Adjust for abbrev_die_table being a va_gc vec. | |
7739 | If abbrev_opt_start, fill in abbrev_usage_count and abbrev_dies | |
7740 | vectors. | |
7741 | (die_abbrev_cmp, optimize_implicit_const, optimize_abbrev_table): New | |
7742 | functions. | |
7743 | (output_die_abbrevs): For DW_FORM_implicit_const emit sleb128 with | |
7744 | the implicit value. | |
7745 | (output_abbrev_section): Adjust for abbrev_die_table being a va_gc | |
7746 | vec. | |
7747 | (output_comp_unit): Initialize abbrev_opt_start if emitting the main | |
7748 | unit. Call optimize_abbrev_table. | |
7749 | (dwarf2out_init, dwarf2out_finish, dwarf2out_c_finalize): Adjust for | |
7750 | abbrev_die_table being a va_gc vec. | |
7751 | ||
7752 | PR tree-optimization/77860 | |
7753 | * tree-ssa-reassoc.c (eliminate_using_constants): Handle | |
7754 | also integral complex and vector constants. | |
7755 | ||
7756 | * dwarf2out.c (dwarf2out_define, dwarf2out_undef, output_macinfo_op, | |
7757 | optimize_macinfo_range, save_macinfo_strings): Replace | |
7758 | DW_MACRO_GNU_* constants with corresponding DW_MACRO_* constants. | |
7759 | (output_macinfo): Likewise. Emit .debug_macro* rather than | |
7760 | .debug_macinfo* even for -gstrict-dwarf -gdwarf-5. | |
7761 | (init_sections_and_labels): Use .debug_macro* labels rather than | |
7762 | .debug_macinfo* labels even for -gstrict-dwarf -gdwarf-5. | |
7763 | (dwarf2out_finish): Use DW_AT_macros instead of DW_AT_macro_info | |
7764 | or DW_AT_GNU_macros for -gdwarf-5. | |
7765 | ||
7766 | 2016-10-31 Waldemar Brodkorb <wbx@openadk.org> | |
7767 | ||
7768 | * config/microblaze/linux.h (UCLIBC_DYNAMIC_LINKER): Define. | |
7769 | ||
7770 | 2016-09-11 Le-Chun Wu <lcwu@google.com> | |
7771 | Mark Wielaard <mjw@redhat.com> | |
7772 | ||
7773 | * common.opt (Wshadow=global): New option. Default for -Wshadow. | |
7774 | (Wshadow=local): New option. | |
7775 | (Wshadow-local): Hidden alias for -Wshadow=local. | |
7776 | (Wshadow=compatible-local): New option. | |
7777 | (Wshadow-compatible-local): Hidden alias for | |
7778 | -Wshadow=compatible-local. | |
7779 | * doc/invoke.texi: Document Wshadow=global, Wshadow=local and | |
7780 | Wshadow=compatible-local. | |
7781 | ||
7782 | 2016-10-31 Bin Cheng <bin.cheng@arm.com> | |
7783 | ||
7784 | * tree-vect-slp.c (vect_get_and_check_slp_defs): New parameter SWAP. | |
7785 | Check slp defs for COND_EXPR by swapping/inverting operands if the | |
7786 | new parameter SWAP indicates so. | |
7787 | (vect_build_slp_tree_1): New parameter SWAP. Check COND_EXPR stmt | |
7788 | is isomorphic to the first stmt via swapping/inverting. Store swap | |
7789 | information in the new parameter SWAP. | |
7790 | (vect_build_slp_tree): New local array SWAP and pass it to function | |
7791 | vect_build_slp_tree_1. Cleanup result handling code for function | |
7792 | call to vect_get_and_check_slp_defs. Skip operand swapping if the | |
7793 | order of operands has been fixed as indicated by SWAP[i]. | |
7794 | ||
7795 | 2016-10-31 Bin Cheng <bin.cheng@arm.com> | |
7796 | ||
7797 | * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Skip | |
7798 | unnecessary data dependence check after visited store stmt. | |
7799 | ||
7800 | 2016-10-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
7801 | ||
7802 | PR tree-optimization/71915 | |
7803 | PR tree-optimization/71490 | |
7804 | * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add | |
7805 | stride_type field. | |
7806 | (find_basis_for_base_expr): Require stride types to match when | |
7807 | seeking a basis. | |
7808 | (alloc_cand_and_find_basis): Record the stride type. | |
7809 | (slsr_process_phi): Pass stride type to alloc_cand_and_find_basis. | |
7810 | (backtrace_base_for_ref): Pass types to legal_cast_p_1 rather than | |
7811 | the expressions having those types. | |
7812 | (slsr_process_ref): Pass stride type to alloc_cand_and_find_basis. | |
7813 | (create_mul_ssa_cand): Likewise. | |
7814 | (create_mul_imm_cand): Likewise. | |
7815 | (create_add_ssa_cand): Likewise. | |
7816 | (create_add_imm_cand): Likewise. | |
7817 | (legal_cast_p_1): Change interface to accept types rather than the | |
7818 | expressions having those types. | |
7819 | (legal_cast_p): Pass types to legal_cast_p_1. | |
7820 | (slsr_process_cast): Pass stride type to | |
7821 | alloc_cand_and_find_basis. | |
7822 | (slsr_process_copy): Likewise. | |
7823 | (dump_candidate): Display stride type when a cast exists. | |
7824 | (create_add_on_incoming_edge): Introduce a cast when necessary for | |
7825 | the stride type. | |
7826 | (analyze_increments): Change the code checking for invalid casts | |
7827 | to rely on the stride type, and update the documentation and | |
7828 | example. Change the code checking for pointer multiplies to rely | |
7829 | on the stride type. | |
7830 | (insert_initializers): Introduce a cast when necessary for the | |
7831 | stride type. Use the stride type for the type of the initializer. | |
7832 | ||
7833 | 2016-10-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
7834 | ||
7835 | * config/arm/arm.c (arm_const_not_ok_for_debug_p): Use VAR_P. | |
7836 | ||
7837 | 2016-10-29 Jakub Jelinek <jakub@redhat.com> | |
7838 | ||
7839 | PR rtl-optimization/77919 | |
7840 | * expr.c (expand_expr_real_1) <normal_inner_ref>: Only avoid forcing | |
7841 | into memory if both modes are complex and their inner modes have the | |
7842 | same precision. If the two modes are different complex modes, convert | |
7843 | each part separately and generate a new CONCAT. | |
7844 | ||
7845 | 2016-10-29 John David Anglin <danglin@gcc.gnu.org> | |
7846 | ||
7847 | * config/pa/pa64-hpux.h (FINI_SECTION_ASM_OP): Define to null string. | |
7848 | ||
7849 | 2016-10-29 Jakub Jelinek <jakub@redhat.com> | |
7850 | ||
7851 | PR target/78148 | |
7852 | * gimple-ssa-store-merging.c | |
7853 | (imm_store_chain_info::output_merged_store): Use build_aligned_type | |
7854 | instead of SET_TYPE_ALIGN on shared integral type. | |
7855 | ||
7856 | 2016-10-29 John David Anglin <danglin@gcc.gnu.org> | |
7857 | ||
7858 | * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment. | |
7859 | (MALLOC_ABI_ALIGNMENT): Define to 128 on all targets except SOM. | |
7860 | Adjust comment. | |
7861 | ||
7862 | 2016-10-28 Jeff Law <law@redhat.com> | |
7863 | ||
7864 | * config/vax/vax.h (REGNO_REG_CLASS): Access the REGNO argument. | |
7865 | * config/spu/spu.h (REGNO_REG_CLASS): Likewise. | |
7866 | ||
7867 | 2016-10-28 Eric Botcazou <ebotcazou@adacore.com> | |
7868 | ||
7869 | * doc/sourcebuild.texi (Ada Tests): Remove mention of gcc chapter. | |
7870 | ||
7871 | 2016-10-28 Eric Botcazou <ebotcazou@adacore.com> | |
7872 | ||
7873 | * target.def (min_arithmetic_precision): New hook. | |
7874 | * doc/tm.texi.in (Misc): Add TARGET_MIN_ARITHMETIC_PRECISION. | |
7875 | * doc/tm.texi: Regenerate. | |
7876 | * internal-fn.c (expand_arith_overflow): Adjust handling of target | |
7877 | dependent support by means of TARGET_MIN_ARITHMETIC_PRECISION. | |
7878 | * targhooks.c (default_min_arithmetic_precision): New function. | |
7879 | * targhooks.h (default_min_arithmetic_precision): Declare. | |
7880 | * config/sparc/sparc.c (TARGET_MIN_ARITHMETIC_PRECISION): Define. | |
7881 | (sparc_min_arithmetic_precision): New function. | |
7882 | ||
7883 | 2016-10-28 Segher Boessenkool <segher@kernel.crashing.org> | |
7884 | ||
7885 | PR target/71847 | |
7886 | * combine.c (change_zero_ext): Handle zero_ext of hard registers. | |
7887 | Swap commutative operands in new RTL if needed. Handle zero_ext | |
7888 | in the set_dest. | |
7889 | (recog_for_combine): Pass *pnewpat to change_zero_ext instead of | |
7890 | PATTERN (insn). | |
7891 | ||
7892 | 2016-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
7893 | Kugan Vivekanandarajah <kuganv@linaro.org> | |
7894 | Jim Wilson <jim.wilson@linaro.org> | |
7895 | ||
7896 | PR tree-optimization/43721 | |
7897 | * target.def: New hook expand_divmod_libfunc. | |
7898 | * doc/tm.texi.in: Add hook for TARGET_EXPAND_DIVMOD_LIBFUNC. | |
7899 | * doc/tm.texi: Regenerate. | |
7900 | * internal-fn.def: Add new entry for DIVMOD ifn. | |
7901 | * internal-fn.c (expand_DIVMOD): New. | |
7902 | * tree-ssa-math-opts.c: Include optabs-libfuncs.h, tree-eh.h, | |
7903 | targhooks.h. | |
7904 | (widen_mul_stats): Add new field divmod_calls_inserted. | |
7905 | (target_supports_divmod_p): New. | |
7906 | (divmod_candidate_p): Likewise. | |
7907 | (convert_to_divmod): Likewise. | |
7908 | (pass_optimize_widening_mul::execute): Call calculate_dominance_info, | |
7909 | renumber_gimple_stmt_uids at beginning of function. Call | |
7910 | convert_to_divmod and record stats for divmod. | |
7911 | * config/arm/arm.c (arm_expand_divmod_libfunc): Override hook | |
7912 | TARGET_EXPAND_DIVMOD_LIBFUNC. | |
7913 | * doc/sourcebuild.texi: Add items for arm_divmod_simode, divmod, | |
7914 | divmod_simode. | |
7915 | ||
7916 | 2016-10-28 Eric Botcazou <ebotcazou@adacore.com> | |
7917 | Segher Boessenkool <segher@kernel.crashing.org> | |
7918 | ||
7919 | * dojump.c (do_jump_by_parts_greater_rtx): Invert probability when | |
7920 | swapping the arms of the branch. | |
7921 | * internal-fn.c (expand_addsub_overflow): Use a straight-line code | |
7922 | sequence for the generic signed-signed-signed case. | |
7923 | ||
7924 | 2016-10-28 Jeff Law <law@redhat.com> | |
7925 | ||
7926 | * config/bfin/bfin.c (bfin_legitimate_address_p): Add missing | |
7927 | fallthru comment. | |
7928 | * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise. | |
7929 | ||
7930 | 2016-10-28 Segher Boessenkool <segher@kernel.crashing.org> | |
7931 | ||
7932 | PR rtl-optimization/78029 | |
7933 | * function.c (prologue_contains, epilogue_contains): New functions. | |
7934 | (record_prologue_seq, record_epilogue_seq): New functions. | |
7935 | * function.h (prologue_contains, epilogue_contains, | |
7936 | record_prologue_seq, record_epilogue_seq): New declarations. | |
7937 | * sched-deps.c (sched_analyze_insn): Make dependencies to prevent | |
7938 | mixing prologue and epilogue insns. | |
7939 | (init_deps): Initialize the new fields in struct deps_desc. | |
7940 | * sched-int.h (struct deps_desc): New fields last_prologue, | |
7941 | last_epilogue, and last_logue_was_epilogue. | |
7942 | * shrink-wrap.c (emit_common_heads_for_components): Record all | |
7943 | emitted prologue and epilogue insns. | |
7944 | (emit_common_tails_for_components): Ditto. | |
7945 | (insert_prologue_epilogue_for_components): Ditto. | |
7946 | ||
7947 | 2016-10-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
7948 | ||
7949 | PR middle-end/22141 | |
7950 | * Makefile.in (OBJS): Add gimple-ssa-store-merging.o. | |
7951 | * common.opt (fstore-merging): New Optimization option. | |
7952 | * opts.c (default_options_table): Add entry for | |
7953 | OPT_ftree_store_merging. | |
7954 | * fold-const.h (can_native_encode_type_p): Declare prototype. | |
7955 | * fold-const.c (can_native_encode_type_p): Define. | |
7956 | * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Define. | |
7957 | (PARAM_MAX_STORES_TO_MERGE): Likewise. | |
7958 | * timevar.def (TV_GIMPLE_STORE_MERGING): New timevar. | |
7959 | * passes.def: Insert pass_tree_store_merging. | |
7960 | * tree-pass.h (make_pass_store_merging): Declare extern | |
7961 | prototype. | |
7962 | * gimple-ssa-store-merging.c: New file. | |
7963 | * doc/invoke.texi (Optimization Options): Document | |
7964 | -fstore-merging. | |
7965 | (--param documentation): Document store-merging-allow-unaligned | |
7966 | and max-stores-to-merge. | |
7967 | ||
7968 | 2016-10-28 Will Schmidt <will_schmidt@vnet.ibm.com> | |
7969 | ||
7970 | PR middle-end/72747 | |
7971 | * gimplify.c (gimplify_init_constructor): Move emit of constructor | |
7972 | assignment to earlier in the if/else logic. | |
7973 | ||
7974 | 2016-10-28 Richard Biener <rguenther@suse.de> | |
7975 | ||
7976 | PR middle-end/78128 | |
7977 | PR middle-end/71002 | |
7978 | * fold-const.c (make_bit_field_ref): Only adjust alias set | |
7979 | when the original alias set was zero. | |
7980 | ||
7981 | 2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
7982 | ||
7983 | * config/s390/s390.c (s390_adjust_loop_scan_osc): New function. | |
7984 | (s390_adjust_loops): New function. | |
7985 | (s390_reorg): Invoke s390_adjust_loops. | |
7986 | * config/s390/s390.md (UNSPEC_OSC_BREAK): New constant. | |
7987 | ("osc_break"): New insn definition. | |
7988 | ||
7989 | 2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
7990 | ||
7991 | * config/s390/s390.opt: Support alternate cpu level naming (archXX). | |
7992 | * config.gcc: Support alternate archXX cpu levels with | |
7993 | --with-arch= and --with-tune=. | |
7994 | * config/s390/linux.h: Translate new archXX cpu levels to the | |
7995 | original names when calling GAS. | |
7996 | * config/s390/tpf.h: Likewise. | |
7997 | * doc/invoke.texi: Document the alternate cpu level names. | |
7998 | ||
7999 | 2016-10-28 Jakub Jelinek <jakub@redhat.com> | |
8000 | ||
8001 | PR rtl-optimization/77919 | |
8002 | * expr.c (expand_expr_real_1) <normal_inner_ref>: Force CONCAT into | |
8003 | MEM if mode1 is not a complex mode. | |
8004 | ||
8005 | PR rtl-optimization/78132 | |
8006 | * ree.c (combine_reaching_defs): Give up if copy_needed and | |
8007 | !HARD_REGNO_MODE_OK (REGNO (src_reg), dst_mode). | |
8008 | ||
8009 | 2016-10-27 Eric Botcazou <ebotcazou@adacore.com> | |
8010 | ||
8011 | * config/sparc/sparc.md (<*vlop:code><VL:mode>3): Remove leading '*'. | |
8012 | ||
8013 | 2016-10-27 Michael Meissner <meissner@linux.vnet.ibm.com> | |
8014 | ||
8015 | * config/rs6000/constraints.md (wH constraint): Add new | |
8016 | constraints for allowing 32-bit integers (and eventually 8/16-bit | |
8017 | integers) into the vector registers. | |
8018 | (wI constraint): Likewise. | |
8019 | (wJ constraint): Likewise. | |
8020 | (wK constraint): Likewise. | |
8021 | * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add | |
8022 | -mvsx-small-integer as a default option for ISA 2.07 | |
8023 | (i.e. power8). | |
8024 | (POWERPC_MASKS): Likewise. | |
8025 | * config/rs6000/rs6000.opt (-mvsx-small-integer): Add new debug | |
8026 | switch to turn off small integer support in vector registers. | |
8027 | * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Eliminate | |
8028 | test for -mupper-regs-di, since it is already done with the | |
8029 | reg_add[mode].scalar_in_vsx_p. Add support for the switch | |
8030 | -mvsx-small-integer. | |
8031 | (rs6000_debug_reg_global): Add support for wH, wI, wJ, and wK | |
8032 | constraints. | |
8033 | (rs6000_setup_reg_addr_masks): Likewise. | |
8034 | (rs6000_init_hard_regno_mode_ok): Likewise. | |
8035 | (rs6000_option_override_internal): Add consistency checks for | |
8036 | -mvsx-small-integer. | |
8037 | (rs6000_secondary_reload_simple_move): SImode is a simple move if | |
8038 | -mvsx-small-integer. | |
8039 | (rs6000_secondary_reload): Use std::swap. | |
8040 | (rs6000_preferred_reload_class): Don't prefer FLOAT_REGS over | |
8041 | VSX_REGS for small integers in vector registers, since there is no | |
8042 | D-FORM address mode for such types. | |
8043 | (rs6000_register_move_cost): Use FIRST_FPR_REGNO instead of 32. | |
8044 | (rs6000_opt_masks): Add -mvsx-small-integer. | |
8045 | * config/rs6000/vsx.md (VSINT_84): Add SImode for small integer | |
8046 | support. | |
8047 | (VSX_EXTRACT_I2): Clone VSX_EXTRACT_I, but drop V4SI since SImode | |
8048 | extracts can be done on ISA 2.07. | |
8049 | (vsx_extract_<mode>): Add support for small integers in vsx | |
8050 | registers. | |
8051 | (vsx_extract_<mode>_p9): Use 'v' instead of VSX_EX, since we no | |
8052 | longer support V4SImode in this pattern. | |
8053 | (vsx_extract_si): New insn to support extraction of SImode in ISA | |
8054 | 2.07 using either xxextractuw or vspltw. | |
8055 | (vsx_extract_<mode>_p8): Use 'v' instead of VSX_EX, since we no | |
8056 | longer support V4SImode in this pattern. | |
8057 | * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wH, wI, | |
8058 | wJ, and wK constraints. | |
8059 | * config/rs6000/rs6000.md (f32_sv): Use correct instruction for | |
8060 | storing SDmode with VSX instructions. | |
8061 | (zero_extendsi<mode>2): Reorder pattern, so RLDICL comes after the | |
8062 | GPR load and before the FPR and VSX loads. Remove ??, ! from the | |
8063 | constraints. Add MFVSRWZ and XXEXTRACTUW instructions to support | |
8064 | small integers in vector registers. | |
8065 | (extendsi<mode>2): Reorder pattern, so EXTSW comes after the GPR | |
8066 | load and before the FPR and VSX loads. Remove ??, ! from the | |
8067 | constraints. Add VEXTSW2D support for small integers in vector | |
8068 | registers. | |
8069 | (lfiwax): Remove ! constraint. Add VEXTSW2D support for small | |
8070 | integers in vector registers. | |
8071 | (floatsi<mode>2_lfiwax): If -mvsx-small-integer issue a normal | |
8072 | move instead of using an UNSPEC. | |
8073 | (lfiwzx): Remove ! constraint. Add XXEXTRACTUW support for small | |
8074 | integers in vector registers. | |
8075 | (floatunssi<mode>2_lfiwzx): If -mvsx-small-integer issue a normal | |
8076 | move instead of using an UNSPEC. | |
8077 | (movsi_internal1): Add support for -mvsx-small-integer. Align | |
8078 | columns so that it is more readable. | |
8079 | (SImode splitter for ISA 3.0 constants): Add splitter for | |
8080 | -128..127 constants that can easily be constructed on ISA 3.0. | |
8081 | * doc/md.texi (PowerPC Constraints): Document wH, wI, wJ, and wK | |
8082 | constraints. | |
8083 | ||
8084 | 2016-10-27 Jakub Jelinek <jakub@redhat.com> | |
8085 | ||
8086 | PR middle-end/78025 | |
8087 | * omp-simd-clone.c (simd_clone_adjust): Handle noreturn declare simd | |
8088 | functions. | |
8089 | ||
8090 | 2016-10-27 Aldy Hernandez <aldyh@redhat.com> | |
8091 | ||
8092 | * builtins.c (expand_builtin_nonlocal_goto): Avoid evaluating | |
8093 | PIC_OFFSET_TABLE_REGNUM twice. | |
8094 | ||
8095 | 2016-10-27 Bin Cheng <bin.cheng@arm.com> | |
8096 | ||
8097 | * match.pd ((convert (op:s (convert@2 @0) (convert?@3 @1)))): Add | |
8098 | support for constant operand for OP. | |
8099 | ||
8100 | 2016-10-27 Jakub Jelinek <jakub@redhat.com> | |
8101 | ||
8102 | * dwarf2out.c (gen_member_die): Only reparent_child instead of | |
8103 | splice_child_die if child doesn't have DW_AT_specification attribute. | |
8104 | ||
8105 | 2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
8106 | ||
8107 | * config/arm/arm.h (TARGET_HAVE_LDREX): Define for ARMv8-M Baseline. | |
8108 | (TARGET_HAVE_LDREXBH): Likewise. | |
8109 | (TARGET_HAVE_LDACQ): Likewise. | |
8110 | ||
8111 | 2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
8112 | ||
8113 | * config/arm/arm.c (arm_split_atomic_op): Add function comment. Add | |
8114 | logic to to decide whether to copy over old value to register for new | |
8115 | value. | |
8116 | * config/arm/sync.md: Add comments explaning why mode and code | |
8117 | attribute are not defined in iterators.md | |
8118 | (thumb1_atomic_op_str): New code attribute. | |
8119 | (thumb1_atomic_newop_str): Likewise. | |
8120 | (thumb1_atomic_fetch_op_str): Likewise. | |
8121 | (thumb1_atomic_fetch_newop_str): Likewise. | |
8122 | (thumb1_atomic_fetch_oldop_str): Likewise. | |
8123 | (atomic_exchange<mode>): Add new ARMv8-M Baseline only alternatives to | |
8124 | mirror the more restrictive constraints of the Thumb-1 insns after | |
8125 | split compared to Thumb-2 counterpart insns. | |
8126 | (atomic_<sync_optab><mode>): Likewise. Add comment to keep constraints | |
8127 | in sync with non atomic version. | |
8128 | (atomic_nand<mode>): Likewise. | |
8129 | (atomic_fetch_<sync_optab><mode>): Likewise. | |
8130 | (atomic_fetch_nand<mode>): Likewise. | |
8131 | (atomic_<sync_optab>_fetch<mode>): Likewise. | |
8132 | (atomic_nand_fetch<mode>): Likewise. | |
8133 | * config/arm/thumb1.md (thumb1_addsi3): Add comment to keep contraint | |
8134 | in sync with atomic version. | |
8135 | (thumb1_subsi3_insn): Likewise. | |
8136 | (thumb1_andsi3_insn): Likewise. | |
8137 | (thumb1_iorsi3_insn): Likewise. | |
8138 | (thumb1_xorsi3_insn): Likewise. | |
8139 | ||
8140 | 2016-10-27 Nick Clifton <nickc@redhat.com> | |
8141 | ||
8142 | * plugin.c (register_plugin_info): Produce an error message if the | |
8143 | plugin is not found in the hash table. | |
8144 | ||
8145 | 2016-10-27 Bin Cheng <bin.cheng@arm.com> | |
8146 | ||
8147 | * match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)): | |
8148 | New pattern. | |
8149 | ||
8150 | 2016-10-26 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
8151 | ||
8152 | PR target/78056 | |
8153 | * config/rs6000/rs6000.c (spe_init_builtins): Modify loops to not | |
8154 | define builtin functions from the bdesc_spe_predicates or | |
8155 | bdesc_spe_evsel arrays if the builtin mask is not compatible with | |
8156 | the current compiler configuration. | |
8157 | (paired_init_builtins): Modify loop to not define define builtin | |
8158 | functions from the bdesc_paried_preds array if the builtin mask is | |
8159 | not compatible with the current compiler configuration. | |
8160 | (altivec_init_builtins): Modify loops to not define the | |
8161 | __builtin_altivec_stxvl function nor the builtin functions from | |
8162 | the bdesc_dst or bdesc_altivec_preds, or bdesc_abs arrays if the | |
8163 | builtin mask is not compatible with the current compiler | |
8164 | configuration. | |
8165 | ||
8166 | 2016-10-26 Jeff Law <law@redhat.com> | |
8167 | ||
8168 | * config/sh/sh.c (output_branch): Add missing fallthru comments. | |
8169 | (gen_shl_and): Likewise. | |
8170 | * config/sh/sh.md (movsicc): Add missing fallthru comments. | |
8171 | ||
8172 | * config/mips/mips.c (mips16_constant_cost): Add missing | |
8173 | fallthru comments. | |
8174 | (mips16_build_call_stub): Increase buffer size. Adjust | |
8175 | fallthru comment. | |
8176 | ||
8177 | 2016-10-26 David Malcolm <dmalcolm@redhat.com> | |
8178 | ||
8179 | * print-rtl.c (rtx_writer::print_rtx_operand_code_u): Print | |
8180 | INSN_UIDs for all insns in compact mode. | |
8181 | (rtx_writer::print_rtx): Likewise. | |
8182 | * print-rtl.h (rtx_writer::flag_compact): Update comment. | |
8183 | * rtl-tests.c (selftest::test_dumping_insns): Update expected | |
8184 | output to include INSN_UID. | |
8185 | (selftest::test_uncond_jump): Likewise. | |
8186 | ||
8187 | 2016-10-26 Pat Haugen <pthaugen@us.ibm.com> | |
8188 | ||
8189 | * haifa-sched.c (call_used_regs_num): Rename to... | |
8190 | (call_saved_regs_num): ...this. | |
8191 | (fixed_regs_num): New variable. | |
8192 | (sched_pressure_start_bb): Subtract out fixed_regs. Scale call_saved | |
8193 | regs not call_used. | |
8194 | (alloc_global_sched_pressure_data): Compute call_saved and fixed regs. | |
8195 | ||
8196 | 2016-10-26 David Malcolm <dmalcolm@redhat.com> | |
8197 | ||
8198 | * print-rtl-function.c (print_rtx_function): Rewrite in terms of | |
8199 | class rtx_writer. | |
8200 | * print-rtl.c (outfile): Delete global. | |
8201 | (sawclose): Likewise. | |
8202 | (indent): Likewise. | |
8203 | (in_call_function_usage): Likewise. | |
8204 | (flag_compact): Likewise. | |
8205 | (flag_simple): Likewise. | |
8206 | (rtx_writer::rtx_writer): New ctor. | |
8207 | (print_rtx_operand_code_0): Convert to... | |
8208 | (rtx_writer::print_rtx_operand_code_0): ...this. | |
8209 | (print_rtx_operand_code_e): Convert to... | |
8210 | (rtx_writer::print_rtx_operand_code_e): ...this. | |
8211 | (print_rtx_operand_codes_E_and_V): Convert to... | |
8212 | (rtx_writer::print_rtx_operand_codes_E_and_V): ...this. | |
8213 | (print_rtx_operand_code_i): Convert to... | |
8214 | (rtx_writer::print_rtx_operand_code_i): ...this. | |
8215 | (print_rtx_operand_code_r): Convert to... | |
8216 | (rtx_writer::print_rtx_operand_code_r): ...this. | |
8217 | (print_rtx_operand_code_u): Convert to... | |
8218 | (rtx_writer::print_rtx_operand_code_u): ...this. | |
8219 | (print_rtx_operand): Convert to... | |
8220 | (rtx_writer::print_rtx_operand): ...this. | |
8221 | (print_rtx): Convert to... | |
8222 | (rtx_writer::print_rtx): ...this. | |
8223 | (print_inline_rtx): Rewrite in terms of class rtx_writer. | |
8224 | (debug_rtx): Likewise. | |
8225 | (print_rtl): Convert to... | |
8226 | (rtx_writer::print_rtl): ...this. | |
8227 | (print_rtl): Reimplement in terms of class rtx_writer. | |
8228 | (print_rtl_single): Rewrite in terms of class rtx_writer. | |
8229 | (print_rtl_single_with_indent): Convert to.. | |
8230 | (rtx_writer::print_rtl_single_with_indent): ...this. | |
8231 | (print_simple_rtl): Rewrite in terms of class rtx_writer. | |
8232 | * print-rtl.h (flag_compact): Delete decl. | |
8233 | (class rtx_writer): New class. | |
8234 | * rtl-tests.c (selftest::assert_rtl_dump_eq): Rewrite in terms of | |
8235 | class rtx_writer. | |
8236 | ||
8237 | 2016-10-26 Jeff Law <law@redhat.com> | |
8238 | ||
8239 | * config/microblaze/microblaze.c (tls_mentioned_p): Avoid | |
8240 | fallthru. | |
8241 | ||
8242 | * config/arc/arc.c (acr_print_operand): Adjust fallthru comment. | |
8243 | (check_if_valid_sleep_operand): Add missing fallthru comment. | |
8244 | (arc_register_move_cost): Increase buffer size. | |
8245 | * config/arc/arc.md (cbranch4si_scratch): Add missing fallthru | |
8246 | comment. | |
8247 | * config/arc/predicates.md (move_str_operand): Avoid fallthru. | |
8248 | ||
8249 | * config/cr16/cr16.c (cr16_print_operand): Add missing fallthru | |
8250 | comment. Add gcc_unreachable for path that should never happen. | |
8251 | ||
8252 | * config/epiphany/epiphany.c (epiphany_print_operand): Adjust | |
8253 | fallthru comment. | |
8254 | ||
8255 | 2016-10-26 Jakub Jelinek <jakub@redhat.com> | |
8256 | Martin Liska <mliska@suse.cz> | |
8257 | ||
8258 | PR fortran/77973 | |
8259 | * gimplify.c (gimplify_adjust_omp_clauses_1): For all added map | |
8260 | clauses with OMP_CLAUSE_SIZE being a decl, call omp_notice_variable | |
8261 | on outer context if any. | |
8262 | ||
8263 | 2016-10-26 Jakub Jelinek <jakub@redhat.com> | |
8264 | ||
8265 | * gen-pass-instances.awk (adjust_linenos): Increment pass_lines[p] | |
8266 | by increment rather than double it. | |
8267 | (insert_remove_pass): Strip leading whitespace from args[3]. Don't | |
8268 | emit a space before args[4]. | |
8269 | (END): Don't emit a space before with_arg. | |
8270 | ||
8271 | 2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
8272 | ||
8273 | * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Add new ARMv8-M | |
8274 | Baseline only alternatives to (i) hold store atomic success value in a | |
8275 | return register rather than a scratch register, (ii) use a low register | |
8276 | for it and to (iii) ensure the cbranchsi insn generated by the split | |
8277 | respect the constraints of Thumb-1 cbranchsi4_insn and | |
8278 | cbranchsi4_scratch. | |
8279 | * config/arm/thumb1.md (cbranchsi4_insn): Add comment to indicate | |
8280 | constraints must match those in atomic_compare_and_swap. | |
8281 | (cbranchsi4_scratch): Likewise. | |
8282 | ||
8283 | 2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
8284 | ||
8285 | * config/arm/arm.c (arm_expand_compare_and_swap): Add new bdst local | |
8286 | variable. Add the new parameter to the insn generator. Set that | |
8287 | parameter to be CC flag for 32-bit targets, bval otherwise. Set the | |
8288 | return value from the negation of that parameter for Thumb-1, keeping | |
8289 | the logic unchanged otherwise except for using bdst as the destination | |
8290 | register of the compare_and_swap insn. | |
8291 | (arm_split_compare_and_swap): Add explanation about how is the value | |
8292 | returned to the function comment. Rename scratch variable to | |
8293 | neg_bval. Adapt initialization of variables holding operands to the | |
8294 | new operand numbers. Use return register to hold result of store | |
8295 | exclusive for Thumb-1, scratch register otherwise. Construct the | |
8296 | appropriate cbranch for Thumb-1 targets, keeping the logic unchanged | |
8297 | for 32-bit targets. Guard Z flag setting to restrict to 32bit targets. | |
8298 | Use gen_cbranchsi4 rather than hand-written conditional branch to loop | |
8299 | for strongly ordered compare_and_swap. | |
8300 | * config/arm/predicates.md (cc_register_operand): New predicate. | |
8301 | * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Use a | |
8302 | match_operand with the new predicate to accept either the CC flag or a | |
8303 | destination register for the boolean return value, restricting it to | |
8304 | CC flag only via constraint. Adapt operand numbers accordingly. | |
8305 | ||
8306 | 2016-10-26 Jeff Law <law@redhat.com> | |
8307 | ||
8308 | * config/fr30/fr30.c (fr30_print_operand): Adjust fallthru comment. | |
8309 | ||
8310 | * config/frv/frv.c (comparison_string): Do not fall through after | |
8311 | an error. | |
8312 | ||
8313 | * config/iq2000/iq2000.c (iq2000_function_arg): Adjust fallthru | |
8314 | comment. | |
8315 | (expand_one_builtin): Add missing break. | |
8316 | ||
8317 | * config/m32c/m32c.c (encode_pattern_1): Add fallthru comment. | |
8318 | (m32c_legitimate_address_p): Likewise. | |
8319 | ||
8320 | * config/m32r/m32r.c (m32r_print_operand): Adjust fallthru comment. | |
8321 | ||
8322 | * config/mcore/mcore.c (mcore_gen_compare): Adjust fallthru comments. | |
8323 | ||
8324 | * config/microblaze/microblaze.c (microblaze_function_arg): Adjust | |
8325 | fallthru comment. | |
8326 | ||
8327 | * config/msp430/msp430.c (msp430_legitimate_address_p): Adjust | |
8328 | fallthru comment. | |
8329 | ||
8330 | * config/nios2/nios2.c (nios2_rtx_costs): Avoid fallthru. | |
8331 | ||
8332 | * config/rl78/rl78.c (rl78_calculate_death_notes): Add fallthru | |
8333 | comment. | |
8334 | (rl78_asm_ctor_dtor): Increase buffer size. | |
8335 | ||
8336 | * config/stormy16/stormy16.c (xstormy16_asm_output_destrutor): Increase | |
8337 | buffer size. | |
8338 | (xstormy16_asm_output_constructor): Likewise. | |
8339 | ||
8340 | * config/pa/pa.c (pa_asm_output_mi_thunk): Increase buffer | |
8341 | size. | |
8342 | ||
8343 | * config/h8300/h8300.c (h8300_print_operand): Adjust FALLTHRU | |
8344 | comment to silence warning. | |
8345 | ||
8346 | * config/spu/spu.c (spu_sched_reorder): Add missing fallthru comment. | |
8347 | (spu_legitimate_address_p): Fix logic error and add missing fallthru | |
8348 | comment. | |
8349 | ||
8350 | 2016-10-26 Michael Matz <matz@suse.de> | |
8351 | ||
8352 | PR tree-optimization/78060 | |
8353 | PR tree-optimization/78061 | |
8354 | PR tree-optimization/78088 | |
8355 | * tree-ssa-loop-split.c (easy_exit_values): New function. | |
8356 | (tree_ssa_split_loops): Use it. | |
8357 | (compute_new_first_bound): Change order of operations, | |
8358 | fix invalid use of types. | |
8359 | ||
8360 | 2016-10-26 Georg-Johann Lay <avr@gjlay.de> | |
8361 | ||
8362 | gen-pass-instances.awk is sensitive to the order in which | |
8363 | passes are added; passes that appear later have to be added first. | |
8364 | ||
8365 | PR target/71676 | |
8366 | PR target/71678 | |
8367 | * config/avr/avr-passes.def: Swap order of directives for | |
8368 | gen-pass-instances.awk. | |
8369 | ||
8370 | 2016-10-25 Jeff Law <law@redhat.com> | |
8371 | ||
8372 | * config/vax/vax.c (vad_address_cost_1): Add missing FALLTHRU comment. | |
8373 | (vax_notice_update_cc): Likewise. | |
8374 | ||
8375 | 2016-10-25 Eric Botcazou <ebotcazou@adacore.com> | |
8376 | ||
8377 | * config.gcc (sparc*-*-solaris2*): Adjust. | |
8378 | (sparc64-*-linux*): Likewise. | |
8379 | * config/sparc/default-64.h: Rename to... | |
8380 | * config/sparc/default64.h: ...this. | |
8381 | * config/sparc/sparc.c (sparc_option_override): Replace TARGET_64BIT | |
8382 | with TARGET_ARCH64. | |
8383 | (sparc_mangle_type): Replace !TARGET_64BIT with TARGET_ARCH32. | |
8384 | * config/sparc/sparc.h: Minor tweaks. | |
8385 | * config/sparc/sparc.md: Replace !TARGET_64BIT and !TARGET_ARCH64 with | |
8386 | TARGET_ARCH32 throughout. Minor various tweaks throughout. | |
8387 | ||
8388 | 2016-10-25 David Malcolm <dmalcolm@redhat.com> | |
8389 | ||
8390 | * input.c (fcache::file_patch): Add comment about lifetime. | |
8391 | (selftest::cpp_reader_ptr): New class. | |
8392 | (selftest::lexer_test): Convert m_parser from cpp_reader * | |
8393 | to a cpp_reader_ptr, and move m_tempfile to after it. | |
8394 | (selftest::lexer_test::lexer_test): Update for above reordering. | |
8395 | (lexer_test::~lexer_test): Move cleanup of m_parser to | |
8396 | cpp_reader_ptr's dtor. | |
8397 | ||
8398 | 2016-10-25 David Malcolm <dmalcolm@redhat.com> | |
8399 | ||
8400 | * toplev.c (toplev::main): Remove call to | |
8401 | location_adhoc_data_fini. | |
8402 | ||
8403 | 2016-10-25 Eric Botcazou <ebotcazou@adacore.com> | |
8404 | ||
8405 | * tree.h (wi::fits_to_tree_p): Accept only 0 and 1 for boolean types. | |
8406 | * tree.c (int_fits_type_p): Likewise. Adjust head comment. | |
8407 | ||
8408 | 2016-10-25 David Malcolm <dmalcolm@redhat.com> | |
8409 | ||
8410 | * ggc-tests.c (forcibly_ggc_collect): Rename to... | |
8411 | (selftest::forcibly_ggc_collect): ...this, and remove "static". | |
8412 | (test_basic_struct): Update for above renaming. | |
8413 | (test_length): Likewise. | |
8414 | (test_union): Likewise. | |
8415 | (test_finalization): Likewise. | |
8416 | (test_deletable_global): Likewise. | |
8417 | (test_inheritance): Likewise. | |
8418 | (test_chain_next): Likewise. | |
8419 | (test_user_struct): Likewise. | |
8420 | (test_tree_marking): Likewise. | |
8421 | * selftest-run-tests.c (selftest::run_tests): Call | |
8422 | selftest::forcibly_ggc_collect at the end of the selftests. | |
8423 | * selftest.h (selftest::forcibly_ggc_collect): New decl. | |
8424 | ||
8425 | 2016-10-25 Jakub Jelinek <jakub@redhat.com> | |
8426 | ||
8427 | PR target/78102 | |
8428 | * optabs.def (vcondeq_optab, vec_cmpeq_optab): New optabs. | |
8429 | * optabs.c (expand_vec_cond_expr): For comparison codes | |
8430 | EQ_EXPR and NE_EXPR, attempt vcondeq_optab as fallback. | |
8431 | (expand_vec_cmp_expr): For comparison codes | |
8432 | EQ_EXPR and NE_EXPR, attempt vec_cmpeq_optab as fallback. | |
8433 | * optabs-tree.h (expand_vec_cmp_expr_p, expand_vec_cond_expr_p): | |
8434 | Add enum tree_code argument. | |
8435 | * optabs-query.h (get_vec_cmp_eq_icode, get_vcond_eq_icode): New | |
8436 | inline functions. | |
8437 | * optabs-tree.c (expand_vec_cmp_expr_p): Add CODE argument. For | |
8438 | CODE EQ_EXPR or NE_EXPR, attempt to use vec_cmpeq_optab as | |
8439 | fallback. | |
8440 | (expand_vec_cond_expr_p): Add CODE argument. For CODE EQ_EXPR or | |
8441 | NE_EXPR, attempt to use vcondeq_optab as fallback. | |
8442 | * tree-vect-generic.c (expand_vector_comparison, | |
8443 | expand_vector_divmod, expand_vector_condition): Adjust | |
8444 | expand_vec_cmp_expr_p and expand_vec_cond_expr_p callers. | |
8445 | * tree-vect-stmts.c (vectorizable_condition, | |
8446 | vectorizable_comparison): Likewise. | |
8447 | * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern, | |
8448 | check_bool_pattern, search_type_for_mask_1): Likewise. | |
8449 | * expr.c (do_store_flag): Likewise. | |
8450 | * doc/md.texi (@code{vec_cmpeq@var{m}@var{n}}, | |
8451 | @code{vcondeq@var{m}@var{n}}): Document. | |
8452 | * config/i386/sse.md (vec_cmpeqv2div2di, vcondeq<VI8F_128:mode>v2di): | |
8453 | New expanders. | |
8454 | ||
8455 | 2016-10-25 Jeff Law <law@redhat.com> | |
8456 | ||
8457 | * config/v850/v850.c (v850_handle_data_area_attribute): Fix fallthru | |
8458 | comment. | |
8459 | (v850_output_aligned_bss): Add missing break. | |
8460 | ||
8461 | * config/m68k/m68k.c (m68k_get_reloc_decoration): Add gcc_unreachable. | |
8462 | ||
8463 | 2016-10-25 Martin Liska <mliska@suse.cz> | |
8464 | ||
8465 | PR sanitizer/78106 | |
8466 | * sanopt.c (imm_dom_path_with_freeing_call): Handle gasm | |
8467 | statements as they can also contain possibly a freeing call. | |
8468 | ||
8469 | 2016-10-25 H.J. Lu <hongjiu.lu@intel.com> | |
8470 | Martin Liska <mliska@suse.cz> | |
8471 | ||
8472 | PR ipa/78099 | |
8473 | * common.opt: Mark flag_ipa_icf_variables as Optimization flag. | |
8474 | * ipa-icf.c (sem_function::get_hash): Add target optimization | |
8475 | node to hash. | |
8476 | ||
8477 | 2016-10-25 Wilco Dijkstra <wdijkstr@arm.com> | |
8478 | ||
8479 | PR target/78041 | |
8480 | * config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants. | |
8481 | Remove partial overlap check for shift by 1. | |
8482 | (ashldi3_neon): Likewise. | |
8483 | ||
8484 | 2016-10-25 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
8485 | ||
8486 | * config/arm/constraints.md (Q constraint): Document its use for | |
8487 | Thumb-1. | |
8488 | (Pf constraint): New constraint for relaxed, consume or relaxed memory | |
8489 | models. | |
8490 | * config/arm/sync.md (atomic_load<mode>): Add new ARMv8-M Baseline only | |
8491 | alternatives to allow any register when memory model matches Pf and | |
8492 | thus lda is used, but only low registers otherwise. Use unpredicated | |
8493 | output template for Thumb-1 targets. | |
8494 | (atomic_store<mode>): Likewise for stl. | |
8495 | (arm_load_exclusive<mode>): Add new ARMv8-M Baseline only alternative | |
8496 | whose output template does not have predication. | |
8497 | (arm_load_acquire_exclusive<mode>): Likewise. | |
8498 | (arm_load_exclusivesi): Likewise. | |
8499 | (arm_load_acquire_exclusivesi): Likewise. | |
8500 | (arm_store_release_exclusive<mode>): Likewise. | |
8501 | (arm_store_exclusive<mode>): Use unpredicated output template for | |
8502 | Thumb-1 targets. | |
8503 | ||
8504 | 2016-10-25 Jakub Jelinek <jakub@redhat.com> | |
8505 | ||
8506 | * internal-fn.def (LAUNDER): New internal function. | |
8507 | * internal-fn.c (expand_LAUNDER): New function. | |
8508 | ||
8509 | 2016-10-25 Georg-Johann Lay <avr@gjlay.de> | |
8510 | Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com> | |
8511 | ||
8512 | New avr target pass to work around performance loss by PR fix. | |
8513 | ||
8514 | PR target/71676 | |
8515 | PR target/71678 | |
8516 | * config/avr/avr.md (casesi_<mode>_sequence) [qi,hi]: New insn. | |
8517 | (*cmp<mode>) [qi,qq,uqq,hi,hq,uhq,ha,uha]: Rename to cmp<mode>3. | |
8518 | * config/avr/predicates.md (extend_operator): New. | |
8519 | * config/avr/avr-passes.def (avr_pass_casesi): Register new pass. | |
8520 | * config/avr/avr-protos.h (avr_casei_sequence_check_operands) | |
8521 | (make_avr_pass_casesi): New prototypes. | |
8522 | * config/avr/avr.c (print-rtl.h): Include it. | |
8523 | (pass_data avr_pass_data_casesi): Data for new pass. | |
8524 | (avr_pass_casesi): New class implementing rtl_opt_pass .avr-casesi. | |
8525 | (make_avr_pass_casesi, avr_parallel_insn_from_insns) | |
8526 | (avr_is_casesi_sequence, avr_casei_sequence_check_operands) | |
8527 | (avr_optimize_casesi): New functions. | |
8528 | ||
8529 | 2016-10-25 Georg-Johann Lay <avr@gjlay.de> | |
8530 | Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com> | |
8531 | ||
8532 | PR target/71676 | |
8533 | PR target/71678 | |
8534 | * config/avr/avr.md (casesi): Rewrite avoiding subregs of SI. | |
8535 | ||
8536 | 2016-10-24 Jakub Jelinek <jakub@redhat.com> | |
8537 | ||
8538 | * dwarf2out.c (gen_subprogram_die): Add DW_AT_reference or | |
8539 | DW_AT_rvalue_reference attributes. | |
8540 | ||
8541 | 2016-10-24 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
8542 | ||
8543 | * doc/invoke.text (Wint-in-bool-context): Update documentation. | |
8544 | * value-prof.c (stringop_block_profile): Fix a warning. | |
8545 | ||
8546 | 2016-10-24 Martin Sebor <msebor@redhat.com> | |
8547 | ||
8548 | PR middle-end/77735 | |
8549 | * builtins.c (string_length): New function. | |
8550 | (c_strlen): Use string_length. Correctly handle wide strings. | |
8551 | * gimple-ssa-sprintf.c (target_max_value, target_size_max): New | |
8552 | functions. | |
8553 | (target_int_max): Call target_max_value. | |
8554 | (format_result::knownrange): New data member. | |
8555 | (fmtresult::fmtresult): Define default constructor. | |
8556 | (format_integer): Use it and set format_result::knownrange. | |
8557 | Handle global constants. | |
8558 | (format_floating_max): Add third argument. | |
8559 | (format_floating): Recompute maximum value for %a for each argument. | |
8560 | (get_string_length): Use fmtresult default ctor. | |
8561 | (format_string): Set format_result::knownrange. | |
8562 | (format_directive): Check format_result::knownrange. | |
8563 | (add_bytes): Same. Correct caret placement in diagnostics. | |
8564 | (pass_sprintf_length::compute_format_length): Set | |
8565 | format_result::knownrange. | |
8566 | (pass_sprintf_length::handle_gimple_call): Use target_size_max. | |
8567 | ||
8568 | 2016-10-24 Jakub Jelinek <jakub@redhat.com> | |
8569 | ||
8570 | * config/i386/i386.c (ix86_in_large_data_p, ix86_expand_builtin): Use | |
8571 | VAR_P (x) instead of TREE_CODE (x) == VAR_DECL. | |
8572 | ||
8573 | 2016-10-24 Ximin Luo <infinity0@pwned.gg> | |
8574 | ||
8575 | PR debug/77985 | |
8576 | * dwarf2out.c (file_table_relative_p): Remove. | |
8577 | (gen_compile_unit_die, dwarf2out_early_finish): Emit DW_AT_comp_dir | |
8578 | also for absolute paths. | |
8579 | * doc/tm.texi: Update. | |
8580 | * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Remove. | |
8581 | * target.def (force_at_comp_dir): Remove hook. | |
8582 | * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Remove define. | |
8583 | ||
8584 | 2016-10-24 Richard Biener <rguenther@suse.de> | |
8585 | ||
8586 | * tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore | |
8587 | backedges when identifying the single predecessor to take | |
8588 | conditional info from. Use SCEV to get at ranges for loop IVs. | |
8589 | * lto-streamer-out.c (lto_write_mode_table): CSE inner mode to | |
8590 | avoid false warning. | |
8591 | ||
8592 | 2016-10-24 Georg-Johann Lay <avr@gjlay.de> | |
8593 | ||
8594 | PR target/78093 | |
8595 | * doc/extend.texi (AVR Variable Attributes) [absdata]: Document it. | |
8596 | * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_ABSDATA): New macro. | |
8597 | (avr_address_tiny_absdata_p): New static function. | |
8598 | (avr_legitimate_address_p, avr_legitimize_address) [AVR_TINY]: Use | |
8599 | it to determine validity of constant addresses. | |
8600 | (avr_attribute_table) [absdata]: New variable attribute... | |
8601 | (avr_handle_absdata_attribute): ...and handler. | |
8602 | (avr_decl_absdata_p): New static function. | |
8603 | (avr_encode_section_info) [AVR_TINY]: Use it to add flag | |
8604 | AVR_SYMBOL_FLAG_TINY_ABSDATA to respective symbols_refs. | |
8605 | (avr_address_cost) [AVR_TINY]: absdata addresses cost 2. | |
8606 | ||
8607 | 2016-10-24 Richard Biener <rguenther@suse.de> | |
8608 | ||
8609 | PR tree-optimization/78076 | |
8610 | * tree-ssa-loop-split.c (tree_ssa_split_loops): Reset aux | |
8611 | also on the loop tree root. | |
8612 | ||
8613 | 2016-10-24 Jakub Jelinek <jakub@redhat.com> | |
8614 | ||
8615 | * config/i386/i386.c (ix86_fold_builtin): Handle | |
8616 | IX86_BUILTIN_BEXTR{,I}{32,64}, IX86_BUILTIN_BZHI{32,64}, | |
8617 | IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}. | |
8618 | (ix86_gimple_fold_builtin): Handle IX86_BUILTIN_BZHI{32,64}, | |
8619 | IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}. | |
8620 | ||
8621 | 2016-10-24 Martin Liska <mliska@suse.cz> | |
8622 | ||
8623 | PR sanitizer/77966 | |
8624 | * opts.c (finish_options): Skip conditionally. | |
8625 | ||
8626 | 2016-10-23 Martin Sebor <msebor@redhat.com> | |
8627 | ||
8628 | PR target/77837 | |
8629 | * config/rs6000/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define. | |
8630 | * config/rs6000/linux64.h (TARGET_PRINTF_POINTER_FORMAT): Likewise. | |
8631 | ||
8632 | 2016-10-23 Eric Botcazou <ebotcazou@adacore.com> | |
8633 | ||
8634 | * config/sparc/sparc.md (cpu_feature): Minor tweak. | |
8635 | (enabled): Likewise. | |
8636 | (movsi_insn, movdi_insn_sp32, movdi_insn_sp64, movsf_insn, | |
8637 | movdf_insn_sp32, movdf_insn_sp64, zero_extendsidi2_insn_sp64, | |
8638 | sign_extendsidi2_insn, mov<VM32:mode>_insn, mov<VM64:mode>_insn_sp64, | |
8639 | mov<VM64:mode>_insn_sp32, not_<code><mode>, nand<mode>_vis, | |
8640 | <code>_not1<mode>_vi, <code>_not2<mode>_vis, one_cmpl<mode>2, | |
8641 | fcmp<code><GCM:gcm_name>, pdistn<mode>_vis): Likewise. | |
8642 | ||
8643 | 2016-10-23 Eric Botcazou <ebotcazou@adacore.com> | |
8644 | ||
8645 | * config/sparc/sparc-c.c (sparc_target_macros): Replace TARGET_64BIT | |
8646 | with TARGET_ARCH64. Define __VIS to 0x400 if TARGET_VIS4. | |
8647 | ||
8648 | 2016-10-21 Andrew Pinski <apinski@cavium.com> | |
8649 | ||
8650 | * config/aarch64/aarch64-cores.def: Rewrite so IMP and PART are | |
8651 | integer constants. | |
8652 | * config/aarch64/driver-aarch64.c (struct aarch64_core_data): Change | |
8653 | implementer_id to unsigned char. | |
8654 | Change part_no to unsigned int. | |
8655 | (AARCH64_BIG_LITTLE): New define. | |
8656 | (INVALID_IMP): New define. | |
8657 | (INVALID_CORE): New define. | |
8658 | (cpu_data): Change the last element's implementer_id and part_no to | |
8659 | integers. | |
8660 | (valid_bL_string_p): Rewrite to .. | |
8661 | (valid_bL_core_p): this for integers instead of strings. | |
8662 | (parse_field): New function. | |
8663 | (contains_string_p): Rewrite to ... | |
8664 | (contains_core_p): this for integers and only for the part_no. | |
8665 | (host_detect_local_cpu): Rewrite handling of implementation and | |
8666 | par num to be integers; simplifying the code. | |
8667 | ||
8668 | 2016-10-21 Kugan Vivekanandarajah <kuganv@linaro.org> | |
8669 | ||
8670 | * ipa-prop.c (ipa_compute_jump_functions_for_edge): Create nonzero | |
8671 | value range for pointers in more cases. | |
8672 | ||
8673 | 2016-10-21 Wilco Dijkstra <wdijkstr@arm.com> | |
8674 | ||
8675 | * config/aarch64/aarch64.c (aarch64_add_constant_internal): | |
8676 | Add extra argument to allow emitting the move immediate. | |
8677 | Use add/sub with positive immediate. | |
8678 | (aarch64_add_constant): Add inline function. | |
8679 | (aarch64_add_sp): Likewise. | |
8680 | (aarch64_sub_sp): Likewise. | |
8681 | (aarch64_expand_prologue): Call aarch64_sub_sp. | |
8682 | (aarch64_expand_epilogue): Call aarch64_add_sp. | |
8683 | Decide when to leave out move. | |
8684 | (aarch64_output_mi_thunk): Call aarch64_add_constant. | |
8685 | ||
8686 | 2016-10-21 Wilco Dijkstra <wdijkstr@arm.com> | |
8687 | ||
8688 | * config/aarch64/aarch64.c (aarch64_layout_frame): | |
8689 | Align FP callee-saves. | |
8690 | ||
8691 | 2016-10-21 Jakub Jelinek <jakub@redhat.com> | |
8692 | ||
8693 | * config/i386/adxintrin.h (_subborrow_u32, _addcarry_u32, | |
8694 | _addcarryx_u32, _subborrow_u64, _addcarry_u64, _addcarryx_u64): | |
8695 | Formatting fixes. | |
8696 | * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step, | |
8697 | _rdseed64_step): Likewise. | |
8698 | * config/i386/tbmintrin.h (__bextri_u32): Likewise. | |
8699 | ||
8700 | PR target/78057 | |
8701 | * config/i386/i386.c: Include fold-const-call.h, tree-vrp.h | |
8702 | and tree-ssanames.h. | |
8703 | (ix86_fold_builtin): Fold IX86_BUILTIN_[LT]ZCNT{16,32,64} | |
8704 | with INTEGER_CST argument. | |
8705 | (ix86_gimple_fold_builtin): New function. | |
8706 | (TARGET_GIMPLE_FOLD_BUILTIN): Define. | |
8707 | ||
8708 | * dwarf2out.c (ranges_table): Change into vec<dw_ranges, va_gc> *. | |
8709 | (ranges_by_label): Change into vec<dw_ranges_by_label, va_gc> *. | |
8710 | (ranges_table_allocated, ranges_table_in_use, | |
8711 | ranges_by_label_allocated, ranges_by_label_in_use, | |
8712 | RANGES_TABLE_INCREMENT): Removed. | |
8713 | (add_ranges_num): Use vec_safe_push into ranges_table. | |
8714 | (add_ranges_by_labels): Use vec_safe_push into ranges_by_label. | |
8715 | (output_ranges): Adjust for ranges_table and ranges_by_label | |
8716 | conversion from arrays to vec. | |
8717 | (add_high_low_attributes, dwarf2out_finish): Adjust for range_table | |
8718 | conversion from arrays to vec. | |
8719 | (dwarf2out_c_finalize): Don't clear ranges_table_allocated, | |
8720 | ranges_table_in_use, ranges_by_label_allocated and | |
8721 | ranges_by_label_in_use. Set ranges_by_label to NULL instead of 0. | |
8722 | ||
8723 | * dwarf2out.c (gen_variable_die): Emit DW_AT_const_expr attribute | |
8724 | if needed. Re-add origin_die variable and its initialization. | |
8725 | ||
8726 | * gimplify.c (gimplify_bind_expr): Handle oacc_declare_returns | |
8727 | even for -fstack-reuse=none, or for volatile vars etc. | |
8728 | ||
8729 | 2016-10-21 David Malcolm <dmalcolm@redhat.com> | |
8730 | ||
8731 | * print-rtl-function.c (flag_compact): Move extern decl to... | |
8732 | * print-rtl.h (flag_compact): ...here. | |
8733 | * rtl-tests.c (selftests::assert_rtl_dump_eq): New function. | |
8734 | (ASSERT_RTL_DUMP_EQ): New macro. | |
8735 | (selftest::test_dumping_regs): New function. | |
8736 | (selftest::test_dumping_insns): New function. | |
8737 | (selftest::test_uncond_jump): Add uses of ASSERT_RTL_DUMP_EQ on | |
8738 | the insns. | |
8739 | (selftest::rtl_tests_c_tests): Call the new test functions. | |
8740 | ||
8741 | 2016-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
8742 | ||
8743 | * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust. | |
8744 | (outgoing_edges_match): Likewise. | |
8745 | (try_crossjump_to_edge): Likewise. | |
8746 | * cfgrtl.c (try_redirect_by_replacing_jump): Likewise. | |
8747 | (rtl_tidy_fallthru_edge): Likewise. | |
8748 | * rtl.h (tablejump_p): Adjust prototype. | |
8749 | * rtlanal.c (tablejump_p): Return the label as a rtx_insn *. | |
8750 | ||
8751 | 2016-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
8752 | ||
8753 | * rtl.h (label_ref_label): New function. | |
8754 | (set_label_ref_label): New function. | |
8755 | (LABEL_REF_LABEL): Delete. | |
8756 | * alias.c (rtx_equal_for_memref_p): Adjust. | |
8757 | * cfgbuild.c (make_edges): Likewise. | |
8758 | (purge_dead_tablejump_edges): Likewise. | |
8759 | * cfgexpand.c (convert_debug_memory_address): Likewise. | |
8760 | * cfgrtl.c (patch_jump_insn): Likewise. | |
8761 | * combine.c (distribute_notes): Likewise. | |
8762 | * cse.c (hash_rtx_cb): Likewise. | |
8763 | (exp_equiv_p): Likewise. | |
8764 | (fold_rtx): Likewise. | |
8765 | (check_for_label_ref): Likewise. | |
8766 | * cselib.c (rtx_equal_for_cselib_1): Likewise. | |
8767 | (cselib_hash_rtx): Likewise. | |
8768 | * emit-rtl.c (mark_label_nuses): Likewise. | |
8769 | * explow.c (convert_memory_address_addr_space_1): Likewise. | |
8770 | * final.c (output_asm_label): Likewise. | |
8771 | (output_addr_const): Likewise. | |
8772 | * gcse.c (add_label_notes): Likewise. | |
8773 | * genconfig.c (walk_insn_part): Likewise. | |
8774 | * genrecog.c (validate_pattern): Likewise. | |
8775 | * ifcvt.c (cond_exec_get_condition): Likewise. | |
8776 | (noce_emit_store_flag): Likewise. | |
8777 | (noce_get_alt_condition): Likewise. | |
8778 | (noce_get_condition): Likewise. | |
8779 | * jump.c (maybe_propagate_label_ref): Likewise. | |
8780 | (mark_jump_label_1): Likewise. | |
8781 | (redirect_exp_1): Likewise. | |
8782 | (rtx_renumbered_equal_p): Likewise. | |
8783 | * lra-constraints.c (operands_match_p): Likewise. | |
8784 | * print-rtl.c (print_value): Likewise. | |
8785 | * reload.c (find_reloads): Likewise. | |
8786 | * reload1.c (set_label_offsets): Likewise. | |
8787 | * reorg.c (get_branch_condition): Likewise. | |
8788 | * rtl-tests.c (test_uncond_jump): Likewise. | |
8789 | * rtl.c (rtx_equal_p_cb): Likewise. | |
8790 | (rtx_equal_p): Likewise. | |
8791 | * rtlanal.c (reg_mentioned_p): Likewise. | |
8792 | (rtx_referenced_p): Likewise. | |
8793 | (get_condition): Likewise. | |
8794 | * varasm.c (const_hash_1): Likewise. | |
8795 | (compare_constant): Likewise. | |
8796 | (const_rtx_hash_1): Likewise. | |
8797 | (output_constant_pool_1): Likewise. | |
8798 | ||
8799 | 2016-10-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> | |
8800 | ||
8801 | PR target/71627 | |
8802 | * reload.c (find_valid_class_1): Allow regclass if atleast one | |
8803 | regno in regclass is ok. Compute and use rclass size based on | |
8804 | actually available regnos for mode in rclass. | |
8805 | ||
8806 | 2016-10-21 Eric Botcazou <ebotcazou@adacore.com> | |
8807 | ||
8808 | * config/sparc/sparc-modes.def (CCV): New. | |
8809 | (CCXV): Likewise. | |
8810 | * config/sparc/predicates.md (v_comparison_operator): New. | |
8811 | (icc_comparison_operator): Add support for CCV/CCXV. | |
8812 | (xcc_comparison_operator): Likewise. | |
8813 | * config/sparc/sparc.c (output_cbranch): Likewise. | |
8814 | (sparc_print_operand): Likewise. | |
8815 | * config/sparc/sparc.md (UNSPEC_{ADD,SUB,NEG}V): New constants. | |
8816 | (uaddvdi4): New expander. | |
8817 | (addvdi4): Likewise. | |
8818 | (uaddvdi4_sp32): New instruction. | |
8819 | (addvdi4_sp32): Likewise. | |
8820 | (uaddvsi4): New expander. | |
8821 | (addvsi4): Likewise. | |
8822 | (cmp_ccc_plus_sltu_set): New instruction. | |
8823 | (cmp_ccv_plus): Likewise. | |
8824 | (cmp_ccxv_plus): Likewise. | |
8825 | (cmp_ccv_plus_set): Likewise. | |
8826 | (cmp_ccxv_plus_set): Likewise. | |
8827 | (cmp_ccv_plus_sltu_set): Likewise. | |
8828 | (uaddvdi4): New expander. | |
8829 | (subvdi4): Likewise. | |
8830 | (usubdi4_sp32): New instruction. | |
8831 | (subvdi4_sp32): Likewise. | |
8832 | (usubvsi4): New expander. | |
8833 | (subvsi4): Likewise. | |
8834 | (cmpsi_minus_sltu_set): New instruction. | |
8835 | (cmp_ccv_minus): Likewise. | |
8836 | (cmp_ccxv_minus): Likewise. | |
8837 | (cmp_ccv_minus_set): Likewise. | |
8838 | (cmp_ccxv_minus_set): Likewise. | |
8839 | (cmp_ccv_minus_sltu_set): Likewise. | |
8840 | (unegvdi3): New expander. | |
8841 | (negvdi3): Likewise. | |
8842 | (unegdi3_sp32): New instruction. | |
8843 | (negvdi3_sp32): Likewise. | |
8844 | (unegvsi3): New expander. | |
8845 | (negvsi3): Likewise. | |
8846 | (cmp_ccc_neg_sltu_set): New instruction. | |
8847 | (cmp_ccv_neg): Likewise. | |
8848 | (cmp_ccxv_neg): Likewise. | |
8849 | (cmp_ccv_neg_set): Likewise. | |
8850 | (cmp_ccxv_neg_set): Likewise. | |
8851 | (cmp_ccv_neg_sltu_set): Likewise. | |
8852 | ||
8853 | * tree-ssa-loop-split.c: Remove trailing spaces. | |
8854 | * match.pd: Likewise. | |
8855 | ||
8856 | 2016-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
8857 | ||
8858 | PR rtl-optimization/78038 | |
8859 | * ree.c (get_defs): Return NULL if a defining insn for REG cannot | |
8860 | be deduced to set REG through the RTL structure. | |
8861 | (make_defs_and_copies_lists): Return false on a failing get_defs call. | |
8862 | ||
8863 | 2016-10-21 Richard Biener <rguenther@suse.de> | |
8864 | ||
8865 | PR tree-optimization/78051 | |
8866 | * tree-vrp.c (evrp_dom_walker::before_dom_children): Update stmt | |
8867 | and mark replaced if folding did something. | |
8868 | ||
8869 | 2016-10-21 David Edelsohn <dje.gcc@gmail.com> | |
8870 | ||
8871 | * config/rs6000/rs6000.c (rs6000_assemble_visibility): Swap "internal" | |
8872 | and "protected" in visibility types. | |
8873 | (rs6000_xcoff_declare_function_name): Fix formatting. | |
8874 | (rs6000_xcoff_declare_object_name): Fix formatting. | |
8875 | ||
8876 | 2016-10-21 Uros Bizjak <ubizjak@gmail.com> | |
8877 | ||
8878 | * config/i386/i386.c (ix86_fold_builtin): Handle IX86_BUILTIN_INFQ | |
8879 | and IX86_BUILTIN_HUGE_VALQ here ... | |
8880 | (ix86_expand_builtin): ... not here. | |
8881 | ||
8882 | 2016-10-20 Jakub Jelinek <jakub@redhat.com> | |
8883 | ||
8884 | * doc/gty.texi (for_user): Use @item next to @findex. | |
8885 | ||
8886 | 2016-10-20 Uros Bizjak <ubizjak@gmail.com> | |
8887 | ||
8888 | PR target/78037 | |
8889 | * config/i386/bmiintrin.h (__tzcnt_u16): Call __builtin_ia32_tzcnt_u16. | |
8890 | (__tzcnt_u32, _tzcnt_u32): Call __builtin_ia32_tzcnt_u32. | |
8891 | (__tzcnt_u64, _tzcnt_u64): Call __builtin_ia32_tzcnt_u64. | |
8892 | * config/i386/lzcntintrin.h (__lzcnt_u16): Call | |
8893 | __builtin_ia32_lzcnt_u16. | |
8894 | (__lzcnt_u32, _lzcnt_u32): Call __builtin_ia32_lzcnt_u32. | |
8895 | (__lzcnt_u64, _lzcnt_u64): Call __builtin_ia32_lzcnt_u64. | |
8896 | * config/i386/i386.md (UNSPEC_LZCNT, UNSPEC_TZCNT): New unspecs. | |
8897 | (ctz<mode>2, *ctz<mode>2): Use SWI48 mode iterator. | |
8898 | (bmi_tzcnt_<mode>): New expander. | |
8899 | (*bmi_tzcnt_<mode>_falsedep_1): New define_insn_and_split pattern. | |
8900 | (*bmi_tzcnt_<mode>_falsedep, *bmi_tzcnt_<mode>): New insn patterns. | |
8901 | (clz<mode>2_lzcnt, *clz<mode>2_lzcnt): Use SWI48 mode iterator. | |
8902 | (lzcnt_<mode>): New expander. | |
8903 | (*lzcnt_<mode>_falsedep_1): New define_insn_and_split pattern. | |
8904 | (*lzcnt_<mode>_falsedep, *lzcnt_<mode>): New insn patterns. | |
8905 | * config/i386/i386-builtin-types.def (UINT_FTYPE_UINT): New. | |
8906 | (UINT64_FTYPE_UINT64): New. | |
8907 | * config/i386/i386-builtin.def (__builtin_clzs): Remove description. | |
8908 | (__builtin_ia32_lzcnt_u16): New description. | |
8909 | (__builtin_ia32_lzcnt_u32): Ditto. | |
8910 | (__builtin_ia32_lzcnt_u64): Ditto. | |
8911 | (__builtin_ctzs): Remove description. | |
8912 | (__builtin_ia32_tzcnt_u16): New description. | |
8913 | (__builtin_ia32_tzcnt_u32): Ditto. | |
8914 | (__builtin_ia32_tzcnt_u64): Ditto. | |
8915 | * config/i386/i386.c (ix86_expand_args_builtin): Handle | |
8916 | UINT_FTYPE_UINT and UINT64_FTYPE_UINT64. | |
8917 | ||
8918 | 2016-10-20 Martin Liska <mliska@suse.cz> | |
8919 | ||
8920 | PR lto/78049 | |
8921 | * lto-streamer-in.c (fixup_call_stmt_edges_1): Replace value | |
8922 | comparison with STMT_UID_NOT_IN_RANGE. | |
8923 | (fixup_call_stmt_edges): Do not fixup edges of a thunk in | |
8924 | LTRANS. | |
8925 | ||
8926 | 2016-10-20 Eric Botcazou <ebotcazou@adacore.com> | |
8927 | ||
8928 | * compare-elim.c (conforming_compare): Accept UNSPECs. | |
8929 | (find_comparison_dom_walker::before_dom_children): Deal with | |
8930 | instructions both using and killing the flags register. | |
8931 | (equivalent_reg_at_start): New function extracted from... | |
8932 | (try_eliminate_compare): ...here. Use it and add support for | |
8933 | registers and UNSPECs as second operand of the compare. | |
8934 | * config/visium/visium-modes.def (CCV): New. | |
8935 | * config/visium/predicates.md (visium_v_comparison_operator): New. | |
8936 | (visium_branch_operator): Deal with CCV mode. | |
8937 | * config/visium/visium.c (visium_select_cc_mode): Likewise. | |
8938 | (output_cbranch): Likewise. | |
8939 | * config/visium/visium.md (UNSPEC_{ADD,SUB,NEG}V): New constants. | |
8940 | (uaddv<mode>4): New expander. | |
8941 | (addv<mode>4): Likewise. | |
8942 | (add<mode>3_insn_set_carry): New instruction. | |
8943 | (add<mode>3_insn_set_overflow): Likewise. | |
8944 | (addsi3_insn_set_overflow): Likewise. | |
8945 | (usubv<mode>4): New expander. | |
8946 | (subv<mode>4): Likewise. | |
8947 | (sub<mode>3_insn_set_carry): New instruction. | |
8948 | (sub<mode>3_insn_set_overflow): Likewise. | |
8949 | (subsi3_insn_set_overflow): Likewise. | |
8950 | (unegv<mode>3): New expander. | |
8951 | (negv<mode>3): Likewise. | |
8952 | (neg<mode>2_insn_set_overflow): New instruction. | |
8953 | (addv_tst<mode>): Likewise. | |
8954 | (subv_tst<mode>): Likewise. | |
8955 | (negv_tst<mode>): Likewise. | |
8956 | (cbranch<mode>4_addv_insn): New splitter and instruction. | |
8957 | (cbranch<mode>4_subv_insn): Likewise. | |
8958 | (cbranch<mode>4_negv_insn): Likewise. | |
8959 | ||
8960 | 2016-10-20 Richard Biener <rguenther@suse.de> | |
8961 | ||
8962 | * tree-ssa-alias.c (ptrs_compare_unequal): Remove code duplication. | |
8963 | Handle decls possibly not bound. | |
8964 | * tree-ssa-structalias.c (get_constraint_for_ssa_var): Add | |
8965 | nothing_id for decls that might not be bound if we are interested | |
8966 | for the address. | |
8967 | (get_constraint_for_component_ref): Deal with that. | |
8968 | ||
8969 | 2016-10-20 Michael Matz <matz@suse.de> | |
8970 | ||
8971 | Loop splitting. | |
8972 | * common.opt (-fsplit-loops): New flag. | |
8973 | * passes.def (pass_loop_split): Add. | |
8974 | * opts.c (default_options_table): Add OPT_fsplit_loops entry at -O3. | |
8975 | (enable_fdo_optimizations): Add loop splitting. | |
8976 | * timevar.def (TV_LOOP_SPLIT): Add. | |
8977 | * tree-pass.h (make_pass_loop_split): Declare. | |
8978 | * tree-ssa-loop-manip.h (rewrite_into_loop_closed_ssa_1): Declare. | |
8979 | * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h, | |
8980 | * tree-ssa-loop-split.c: New file. | |
8981 | * Makefile.in (OBJS): Add tree-ssa-loop-split.o. | |
8982 | * doc/invoke.texi (fsplit-loops): Document. | |
8983 | * doc/passes.texi (Loop optimization): Add paragraph about loop | |
8984 | splitting. | |
8985 | ||
8986 | 2016-10-20 Richard Biener <rguenther@suse.de> | |
8987 | ||
8988 | * cgraphunit.c (analyze_functions): Set node->definition to | |
8989 | false to signal symbol removal to debug_hooks->late_global_decl. | |
8990 | * ipa.c (symbol_table::remove_unreachable_nodes): When not in | |
8991 | WPA signal symbol removal to the debuginfo machinery. | |
8992 | * dwarf2out.c (dwarf2out_late_global_decl): Instead of | |
8993 | using early_finised to guard the we're called for symbol | |
8994 | removal case look at the symtabs definition flag. | |
8995 | (gen_variable_die): Remove redundant check. | |
8996 | ||
8997 | 2016-10-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
8998 | ||
8999 | * config/s390/s390.md ("prefetch"): Add fallthrough comment. | |
9000 | ||
9001 | 2016-10-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
9002 | ||
9003 | PR tree-optimization/53979 | |
9004 | * match.pd ((a ^ b) | a -> a | b): New pattern. | |
9005 | ||
9006 | 2016-10-19 John David Anglin <danglin@gcc.gnu.org> | |
9007 | ||
9008 | * config/pa/pa64-hpux.h (PA_INIT_FRAME_DUMMY_ASM_OP): Move to | |
9009 | config/pa/pa64-hpux-lib.h. | |
9010 | (PA_CRTBEGIN_HACK): Likewise. | |
9011 | (DTOR_LIST_BEGIN): Likewise. | |
9012 | ||
9013 | 2016-10-19 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
9014 | ||
9015 | * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result | |
9016 | register only if "in" and "out" are different registers. | |
9017 | ||
9018 | 2016-10-19 Eric Botcazou <ebotcazou@adacore.com> | |
9019 | ||
9020 | * omp-low.c (pass_oacc_device_lower::gate): New method. | |
9021 | (execute): Always call execute_oacc_device_lower. | |
9022 | ||
9023 | 2016-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
9024 | ||
9025 | PR tree-optimization/77916 | |
9026 | PR tree-optimization/77937 | |
9027 | * gimple-ssa-strength-reduction.c (analyze_increments): Remove | |
9028 | stopgap fix. | |
9029 | (insert_initializers): Requirement of initializer for -1 should be | |
9030 | based on pointer-typedness of the candidate basis. | |
9031 | ||
9032 | 2016-10-19 Bin Cheng <bin.cheng@arm.com> | |
9033 | ||
9034 | PR tree-optimization/78005 | |
9035 | * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Compute | |
9036 | upper (included) bound for niters of prolog loop. | |
9037 | (vect_gen_scalar_loop_niters): Change parameter VF to VFM1. | |
9038 | Compute niters of scalar loop above which vectorized loop is | |
9039 | preferred, as well as the upper (included) bound for the niters. | |
9040 | (vect_do_peeling): Record niter bound for loops accordingly. | |
9041 | ||
9042 | 2016-10-19 Thomas Schwinge <thomas@codesourcery.com> | |
9043 | ||
9044 | PR lto/77458 | |
9045 | * tree-core.h (enum tree_index): Put the complex types after their | |
9046 | component types. | |
9047 | * tree-streamer.c (verify_common_node_recorded): New function. | |
9048 | (preload_common_nodes) <TREE_CODE (node) == COMPLEX_TYPE>: Use it. | |
9049 | ||
9050 | 2016-10-19 Martin Liska <mliska@suse.cz> | |
9051 | ||
9052 | * cgraph.h (cgraph_edge::binds_to_current_def_p): | |
9053 | Replace NULL with false as a return value. | |
9054 | ||
9055 | 2016-10-19 Thomas Schwinge <thomas@codesourcery.com> | |
9056 | ||
9057 | PR tree-optimization/78024 | |
9058 | * omp-low.c (oacc_loop_discovery): Call clear_bb_flags before, and | |
9059 | don't clear BB_VISITED after processing. | |
9060 | ||
9061 | 2016-10-19 Richard Biener <rguenther@suse.de> | |
9062 | ||
9063 | * domwalk.c (dom_walker::walk): Use RPO order. | |
9064 | ||
9065 | 2016-10-19 Richard Biener <rguenther@suse.de> | |
9066 | ||
9067 | * tree-vrp.c (evrp_dom_walker::evrp_dom_walker): Initialize | |
9068 | stmts_to_remove. | |
9069 | (evrp_dom_walker::~evrp_dom_walker): Free it. | |
9070 | (evrp_dom_walker::stmts_to_remove): Add. | |
9071 | (evrp_dom_walker::before_dom_children): Mark PHIs and stmts | |
9072 | whose output we fully propagate for removal. Propagate | |
9073 | into BB destination PHI arguments. | |
9074 | (execute_early_vrp): Remove queued stmts. Dump value ranges | |
9075 | before stmt removal. | |
9076 | ||
9077 | 2016-10-18 Aldy Hernandez <aldyh@redhat.com> | |
9078 | ||
9079 | * Makefile.in (OBJS): Add gimple-ssa-warn-alloca.o. | |
9080 | * passes.def: Add two instances of pass_walloca. | |
9081 | * tree-pass.h (make_pass_walloca): New. | |
9082 | * gimple-ssa-warn-alloca.c: New file. | |
9083 | * doc/invoke.texi: Document -Walloca, -Walloca-larger-than=, and | |
9084 | -Wvla-larger-than= options. | |
9085 | ||
9086 | 2016-10-18 Thomas Schwinge <thomas@codesourcery.com> | |
9087 | ||
9088 | * cfg.c (clear_bb_flags): Use FOR_ALL_BB_FN. | |
9089 | * config/nvptx/nvptx.c (nvptx_find_sese): Likewise. | |
9090 | ||
9091 | 2016-10-18 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
9092 | ||
9093 | * config/rs6000/altivec.h (vec_xl_len): New macro. | |
9094 | (vec_xst_len): New macro. | |
9095 | (vec_cmpnez): New macro. | |
9096 | (vec_cntlz_lsbb): New macro. | |
9097 | (vec_cnttz_lsbb): New macro. | |
9098 | (vec_xlx): New macro. | |
9099 | (vec_xrx): New macro. | |
9100 | (vec_all_nez): New C++ predicate template. | |
9101 | (vec_any_eqz): New C++ predicate template. | |
9102 | (vec_all_ne): Revised C++ predicate template under _ARCH_PWR9 | |
9103 | conditional compilation. | |
9104 | (vec_any_eq): Revised C++ predicate template under _ARCH_PWR9 | |
9105 | conditional compilation. | |
9106 | (vec_all_nez): New macro. | |
9107 | (vec_any_eqz): New macro. | |
9108 | (vec_all_ne): Revised macro under _ARCH_PWR9 conditional | |
9109 | compilation. | |
9110 | (vec_any_eq): Revised macro under _ARCH_PWR9 conditional | |
9111 | compilation. | |
9112 | * config/rs6000/vector.md (VI): Moved this mode iterator | |
9113 | definition from altivec.md to vector.md. | |
9114 | (UNSPEC_NEZ_P): New value. | |
9115 | (vector_ne_<mode>_p): New expansion for implementation of | |
9116 | vec_all_ne and vec_any_eq built-in functions. | |
9117 | (vector_nez_<mode>_p): New expansion for implementation of | |
9118 | vec_all_nez and vec_any_eqz built-in functions. | |
9119 | (vector_ne_v2di_p): New expansion for implementation of vec_all_ne | |
9120 | and vec_any_eq built-in function. | |
9121 | (cr6_test_for_zero): New commentary to explain this expansion. | |
9122 | (cr6_test_for_zero_reverse): New commentary to explain this expansion. | |
9123 | (cr6_test_for_lt): New commentary to explain this expansion. | |
9124 | (cr6_test_for_lt_reverse): New commentary to explain this | |
9125 | expansion. | |
9126 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
9127 | overloaded function prototypes for vec_all_ne, vec_all_nez, | |
9128 | vec_any_eq, vec_any_eqz, vec_cmpnez, vec_cntlz_lsbb, | |
9129 | vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx, and vec_xrx | |
9130 | built-in functions. | |
9131 | (altivec_resolve_overloaded_builtin): Modify the handling of | |
9132 | ALTIVEC_BUILTIN_VEC_CMPNE to use the Power9 instructions when | |
9133 | the compiler is configured to support TARGET_P9_VECTOR. | |
9134 | * config/rs6000/rs6000-builtin.def (BU_ALTIVEC_P): Add commentary | |
9135 | to explain the special processing that is given to predicate | |
9136 | built-ins introduced using this macro. | |
9137 | (BU_ALTIVEC_OVERLOAD_P): Add commentary to alert maintainers to | |
9138 | the special processing given to predicate built-ins introduced | |
9139 | using this macro. | |
9140 | (BU_VSX_P): Likewise. | |
9141 | (BU_P8V_AV_P): Likewise. | |
9142 | (BU_P9V_AV_P): Likewise. | |
9143 | (BU_P9V_AV_X): New macro. | |
9144 | (BU_P9V_64BIT_AV_X): New macro. | |
9145 | (BU_P9V_VSX_3): New macro. | |
9146 | (BU_P9V_OVERLOAD_P): New macro. | |
9147 | (LXVL): New BU_P9V_64BIT_VSX_2. | |
9148 | (VEXTUBLX): New BU_P9V_AV_2. | |
9149 | (VEXTUBRX): Likewise. | |
9150 | (VEXTUHLX): Likewise. | |
9151 | (VEXTUHRX): Likewise. | |
9152 | (VEXTUWLX): Likewise. | |
9153 | (VEXTUWRX): Likewise. | |
9154 | (STXVL): New BU_P9V_64BIT_AV_X. | |
9155 | (VCLZLSBB): New BU_P9V_AV_1. | |
9156 | (VCTZLSBB): Likewise. | |
9157 | (CMPNEB): New BU_P9V_AV_2. | |
9158 | (CMPNEH): Likewise. | |
9159 | (CMPNEW): Likewise. | |
9160 | (CMPNEF): Likewise. | |
9161 | (CMPNED): Likewise. | |
9162 | (VCMPNEB_P): New BU_P9V_AV_P. | |
9163 | (VCMPNEH_P): Likewise. | |
9164 | (VCMPNEW_P): Likewise. | |
9165 | (VCMPNED_P): Likewise. | |
9166 | (VCMPNEFP_P): Likewise. | |
9167 | (VCMPNEDP_P): Likewise. | |
9168 | (CMPNEZB): New BU_P9V_AV_2. | |
9169 | (CMPNEZH): Likewise. | |
9170 | (CMPNEZW): Likewise. | |
9171 | (VCMPNEZB_P): New BU_P9V_AV_P. | |
9172 | (VCMPNEZH_P): Likewise. | |
9173 | (VCMPNEZW_P): Likewise. | |
9174 | (LXVL): New BU_P9V_OVERLOAD_2. | |
9175 | (STXVL): New BU_P9V_OVERLOAD_3. | |
9176 | (VEXTULX): New BU_P9V_OVERLOAD_2. | |
9177 | (VEXTURX): Likewise. | |
9178 | (CMPNEZ): Likewise. | |
9179 | (VCMPNEZ_P): New BU_P9V_OVERLOAD_P. | |
9180 | (VCMPNE_P): Likewise. | |
9181 | (VCLZLSBB): New BU_P9V_OVERLOAD_1. | |
9182 | (VCTZLSBB): Likewise. | |
9183 | * config/rs6000/rs6000.c (altivec_expand_predicate_builtin): Add | |
9184 | comment to explain mode used for scratch register. | |
9185 | (altivec_expand_stxvl_builtin): New function. | |
9186 | (altivec_expand_builtin): Add case for new constant P9V_BUILTIN_STXVL. | |
9187 | (altivec_init_builtins): Add initialized variable | |
9188 | void_ftype_v16qi_pvoid_long and use this type to define the | |
9189 | built-in function __builtin_altivec_stxvl. | |
9190 | * config/rs6000/vsx.md (UNSPEC_LXVL): New value. | |
9191 | (UNSPEC_STXVL): New value. | |
9192 | (UNSPEC_VCLZLSBB): New value. | |
9193 | (UNSPEC_VCTZLSBB): New value. | |
9194 | (UNSPEC_VEXTUBLX): New value. | |
9195 | (UNSPEC_VEXTUHLX): New value. | |
9196 | (UNSPEC_VEXTUWLX): New value. | |
9197 | (UNSPEC_VEXTUBRX): New value. | |
9198 | (UNSPEC_VEXTUHRX): New value. | |
9199 | (UNSPEC_VEXTUWRX): New value. | |
9200 | (UNSPEC_VCMPNEB): New value. | |
9201 | (UNSPEC_VCMPNEZB): New value. | |
9202 | (UNSPEC_VCMPNEH): New value. | |
9203 | (UNSPEC_VCMPNEZH): New value. | |
9204 | (UNSPEC_VCMPNEW): New value. | |
9205 | (UNSPEC_VCMPNEZW): New value. | |
9206 | (*vsx_ne_<mode>_p): New insn for vector test all not equal with | |
9207 | vector of integer modes. | |
9208 | (*vsx_ne_<mode>_p): New insn for vector test all not equal with | |
9209 | vector of float or double modes. | |
9210 | (*vector_nez_<mode>_p): New insn for vector test all not equal or | |
9211 | zero. | |
9212 | (lxvl): New expand for load VSX vector with length. | |
9213 | (*lxvl): New insn for load VSX vector with length. | |
9214 | (stxvl): New expand for store VSX vector with length. | |
9215 | (*stxvl): New insn for store VSX vector with length. | |
9216 | (vcmpneb): New insn for vector of byte compare not equal. | |
9217 | (vcmpnezb): New insn for vector of byte compare not equal or zero. | |
9218 | (vcmpneh): New insn for vector of half word compare not equal. | |
9219 | (vcmpnezh): New insn for vector of half word compare not equal or | |
9220 | zero. | |
9221 | (vcmpnew): New insn for vector of word compare not equal. | |
9222 | (vcmpne<VSs>): New insn for vector of float or double compare not | |
9223 | equal. | |
9224 | (vcmpnezw): New insn for vector of word compare not equal or zero. | |
9225 | (vclzlsbb): New insn for vector count leading zero | |
9226 | least-significant bits byte. | |
9227 | (vctzlsbb): New insn for vector count trailing zero least | |
9228 | signficant bits byte. | |
9229 | (vextublx): New insn for vector extract unsigned byte left | |
9230 | indexed. | |
9231 | (vextubrx): New insn for vector extract unsigned byte right | |
9232 | indexed. | |
9233 | (vextuhlx): New insn for vector extract unsigned half word left | |
9234 | indexed. | |
9235 | (vextuhrx): New insn for vector extract unsigned half word right | |
9236 | indexed. | |
9237 | (vextuwlx): New insn for vector extract unsigned word left | |
9238 | indexed. | |
9239 | (vextuwrx): New insn for vector extract unsigned word right | |
9240 | indexed. | |
9241 | * config/rs6000/rs6000.h (RS6000_BTC_CONST): Enhance comment to | |
9242 | clarify intent of this constant. | |
9243 | * config/rs6000/altivec.md (VI): Move this mode iterator to vsx.md. | |
9244 | * doc/extend.texi (PowerPC Altivec Built-in Functions): Add | |
9245 | documentation for vec_all_nez, vec_any_eqz, vec_cmpnez, | |
9246 | vec_cntlz_lsbb, vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx, | |
9247 | and vec_xrx functions. | |
9248 | ||
9249 | 2016-10-18 Andrew Pinski <apinski@cavium.com> | |
9250 | ||
9251 | PR tree-opt/65950 | |
9252 | * predict.c (is_exit_with_zero_arg): New function. | |
9253 | (tree_bb_level_predictions): Don't consider paths leading to exit(0) | |
9254 | as nottaken. | |
9255 | ||
9256 | 2016-10-18 Uros Bizjak <ubizjak@gmail.com> | |
9257 | ||
9258 | PR target/77991 | |
9259 | * config/i386/i386.c (legitimize_tls_address) | |
9260 | <case TLS_MODEL_INITIAL_EXEC>: For TARGET_64BIT || TARGET_ANY_GNU_TLS | |
9261 | convert dest to Pmode if different than Pmode. | |
9262 | ||
9263 | 2016-10-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
9264 | ||
9265 | PR tree-optimization/77916 | |
9266 | * gimple-ssa-strength-reduction.c (analyze_increments): Reinstate | |
9267 | stopgap fix, as pointers with -1 increment are still broken. | |
9268 | ||
9269 | 2016-10-18 David Edelsohn <dje.gcc@gmail.com> | |
9270 | ||
9271 | * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Move storage | |
9272 | mapping class decoration from here... | |
9273 | (rs6000_xcoff_encode_section): ...to here. | |
9274 | ||
9275 | (rs6000_savres_strategy) [AIX,ELFv2]: Inline FPR save and restore | |
9276 | if shrink-wrapping and optimizing for speed. | |
9277 | ||
9278 | 2016-10-18 Richard Biener <rguenther@suse.de> | |
9279 | ||
9280 | * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle | |
9281 | not visited but non-executable predecessors. Return taken edge. | |
9282 | Simplify conditions and refactor propagation vs. folding step. | |
9283 | ||
9284 | 2016-10-18 Segher Boessenkool <segher@kernel.crashing.org> | |
9285 | ||
9286 | * config/rs6000/rs6000.c (rs6000_savres_strategy): Do not select | |
9287 | {SAVE,REST}_MULTIPLE if shrink-wrapping separate components. | |
9288 | (rs6000_get_separate_components): Assert we do not have those | |
9289 | strategies selected. | |
9290 | ||
9291 | 2016-10-18 Richard Biener <rguenther@suse.de> | |
9292 | ||
9293 | * tree-ssa-propagate.h (substitute_and_fold): Adjust prototype. | |
9294 | * tree-ssa-propagate.c (ssa_prop_fini): Remove final BB_VISITED | |
9295 | clearing. | |
9296 | (substitute_and_fold_dom_walker): Adjust constructor. | |
9297 | (substitute_and_fold_dom_walker::before_dom_children): Remove | |
9298 | do_dce flag and handling (always true). | |
9299 | (substitute_and_fold): Likewise. | |
9300 | * tree-vrp.c (vrp_finalize): Adjust. | |
9301 | (execute_early_vrp): Remove final BB_VISITED clearing. | |
9302 | * tree-ssa-ccp.c (ccp_finalize): Adjust. | |
9303 | * tree-ssa-copy.c (fini_copy_prop): Likewise. | |
9304 | * ira.c (ira): Call clear_bb_flags. | |
9305 | ||
9306 | 2016-10-18 Richard Biener <rguenther@suse.de> | |
9307 | ||
9308 | * genmatch.c (dt_operand::gen_gimple_expr): Use get_name to | |
9309 | get at the operand to look at with TREE_OPERAND for generic | |
9310 | sub-nodes. | |
9311 | ||
9312 | 2016-10-18 David Malcolm <dmalcolm@redhat.com> | |
9313 | ||
9314 | * genattrtab.c (attr_string): Use rtx_reader_ptr for call to | |
9315 | copy_md_ptr_loc. | |
9316 | (gen_attr): Use rtx_reader_ptr for lookup_enum_type call. | |
9317 | (write_test_expr): Use rtx_reader_ptr for calls to | |
9318 | fprint_c_condition. | |
9319 | (write_attr_value): Likewise. | |
9320 | * genconditions.c (write_one_condition): Use rtx_reader_ptr for | |
9321 | call to print_md_ptr_loc. | |
9322 | (write_one_condition): Likewise for calls to print_c_condition. | |
9323 | * genconstants.c: Include "statistics.h" and "vec.h". | |
9324 | (main): Update for conversion to member functions. | |
9325 | * genemit.c (emit_c_code): Use rtx_reader_ptr for | |
9326 | call to print_md_ptr_loc. | |
9327 | * genenums.c: Include "statistics.h" and "vec.h". | |
9328 | (main): Update for conversion of traverse_enum_types to a method. | |
9329 | * genmddeps.c: Include "statistics.h" and "vec.h". | |
9330 | * genoutput.c (process_template): Use rtx_reader_ptr for call to | |
9331 | print_md_ptr_loc. | |
9332 | * genpreds.c (write_predicate_subfunction): Likewise. | |
9333 | (write_predicate_expr): Likewise for calls to print_c_condition. | |
9334 | * genrecog.c (print_test): Likewise. | |
9335 | * gensupport.c (process_rtx): Likewise for calls to | |
9336 | copy_md_ptr_loc and join_c_conditions. | |
9337 | (alter_test_for_insn): Likewise for call to join_c_conditions. | |
9338 | (process_substs_on_one_elem): Likewise. | |
9339 | (gen_mnemonic_setattr): Update for move of string_obstack to a | |
9340 | field of rtx_reader. | |
9341 | (mnemonic_htab_callback): Likewise. Fix formatting. | |
9342 | (gen_mnemonic_attr): Likewise. | |
9343 | * gentarget-def.c (def_target_insn): Use rtx_reader_ptr for calls | |
9344 | to print_c_condition. | |
9345 | * read-md.c: Include "statistics.h" and "vec.h". | |
9346 | (string_obstack): Convert this global to field "m_string_obstack" | |
9347 | of class rtx_reader. | |
9348 | (ptr_locs): Likewise, as "m_ptr_locs". | |
9349 | (ptr_loc_obstack): Likewise, as "m_ptr_loc_obstack". | |
9350 | (joined_conditions): Likewise, as "m_joined_conditions". | |
9351 | (joined_conditions_obstack): Likewise, as "m_joined_conditions_obstack". | |
9352 | (md_constants): Likewise, as "m_md_constants". | |
9353 | (enum_types): Likewise, as "m_enum_types". | |
9354 | (set_md_ptr_loc): Convert to... | |
9355 | (rtx_reader::set_md_ptr_loc): ...member function. | |
9356 | (get_md_ptr_loc): Convert to... | |
9357 | (rtx_reader::get_md_ptr_loc): ...member function. | |
9358 | (copy_md_ptr_loc): Convert to... | |
9359 | (rtx_reader::copy_md_ptr_loc): ...member function. | |
9360 | (fprint_md_ptr_loc): Convert to... | |
9361 | (rtx_reader::fprint_md_ptr_loc): ...member function. | |
9362 | (print_md_ptr_loc): Convert to... | |
9363 | (rtx_reader::print_md_ptr_loc): ...member function. | |
9364 | (join_c_conditions): Convert to... | |
9365 | (rtx_reader::join_c_conditions): ...member function. | |
9366 | (fprint_c_condition): Convert to... | |
9367 | (rtx_reader::fprint_c_condition): ...member function. | |
9368 | (print_c_condition): Convert to... | |
9369 | (rtx_reader::print_c_condition): ...member function. | |
9370 | (read_name): Convert to... | |
9371 | (rtx_reader::read_name): ...member function. | |
9372 | (read_escape): Convert to... | |
9373 | (rtx_reader::read_escape): ...member function. | |
9374 | (read_quoted_string): Convert to... | |
9375 | (rtx_reader::read_quoted_string): ...member function. | |
9376 | (read_braced_string): Convert to... | |
9377 | (rtx_reader::read_braced_string): ...member function. | |
9378 | (read_string): Convert to... | |
9379 | (rtx_reader::read_string): ...member function. | |
9380 | (read_skip_construct): Convert to... | |
9381 | (rtx_reader::read_skip_construct): ...member function. | |
9382 | (handle_constants): Convert to... | |
9383 | (rtx_reader::handle_constants): ...member function. | |
9384 | (traverse_md_constants): Convert to... | |
9385 | (rtx_reader::traverse_md_constants): ...member function. | |
9386 | (handle_enum): Convert to... | |
9387 | (rtx_reader::handle_enum): ...member function. | |
9388 | (lookup_enum_type): Convert to... | |
9389 | (rtx_reader::lookup_enum_type): ...member function. | |
9390 | (traverse_enum_types): Convert to... | |
9391 | (rtx_reader::traverse_enum_types): ...member function. | |
9392 | (rtx_reader::rtx_reader): Move initializations | |
9393 | of various former global data from rtx_reader::read_md_files to | |
9394 | here, as fields, along with the call to unlock_std_streams. | |
9395 | (rtx_reader::~rtx_reader): Clean up m_base_dir, and clean up | |
9396 | the new fields. | |
9397 | (rtx_reader::read_md_files): Move initializations of various | |
9398 | global data from here to the ctor. | |
9399 | * read-md.h (read_name): Convert to... | |
9400 | (rtx_reader::read_name): ...member function. | |
9401 | (rtx_reader::read_escape): New method decl. | |
9402 | (read_quoted_string): Convert to... | |
9403 | (rtx_reader::read_quoted_string): ...member function. | |
9404 | (rtx_reader::read_braced_string): New method decl. | |
9405 | (read_string): Convert to... | |
9406 | (rtx_reader::read_string): ...member function. | |
9407 | (rtx_reader::read_skip_construct): New method decl. | |
9408 | (rtx_reader::set_md_ptr_loc): New method decl. | |
9409 | (rtx_reader::get_md_ptr_loc): New method decl. | |
9410 | (copy_md_ptr_loc): Convert to... | |
9411 | (rtx_reader::copy_md_ptr_loc): ...member function. | |
9412 | (fprint_md_ptr_loc): Convert to... | |
9413 | (rtx_reader::fprint_md_ptr_loc): ...member function. | |
9414 | (print_md_ptr_loc): Convert to... | |
9415 | (rtx_reader::print_md_ptr_loc): ...member function. | |
9416 | (rtx_reader::lookup_enum_type): New method decl. | |
9417 | (rtx_reader::traverse_enum_types): New method decl. | |
9418 | (rtx_reader::handle_constants): New method decl. | |
9419 | (traverse_md_constants): Convert to... | |
9420 | (rtx_reader::traverse_md_constants): ...member function. | |
9421 | (rtx_reader::handle_enum): New method decl. | |
9422 | (rtx_reader::join_c_conditions): New method decl. | |
9423 | (fprint_c_condition): Convert to... | |
9424 | (rtx_reader::fprint_c_condition): ...member function. | |
9425 | (print_c_condition): Convert to... | |
9426 | (rtx_reader::print_c_condition): ...member function. | |
9427 | (rtx_reader::apply_iterator_to_string): New method decl. | |
9428 | (rtx_reader::copy_rtx_for_iterators): New method decl. | |
9429 | (rtx_reader::read_conditions): New method decl. | |
9430 | (rtx_reader::record_potential_iterator_use): New method decl. | |
9431 | (rtx_reader::read_mapping): New method decl. | |
9432 | (rtx_reader::read_rtx): New method decl. | |
9433 | (rtx_reader::read_rtx_code): New method decl. | |
9434 | (rtx_reader::read_rtx_operand): New method decl. | |
9435 | (rtx_reader::read_nested_rtx): New method decl. | |
9436 | (rtx_reader::read_rtx_variadic): New method decl. | |
9437 | (rtx_reader::get_string_obstack): New method. | |
9438 | (rtx_reader::get_md_constants): New method. | |
9439 | (string_obstack): Convert global variable decl to... | |
9440 | (rtx_reader::m_string_obstack): ...this new field. | |
9441 | (rtx_reader::m_ptr_locs): New field. | |
9442 | (rtx_reader::m_ptr_loc_obstack): New field. | |
9443 | (rtx_reader::m_joined_conditions): New field. | |
9444 | (rtx_reader::m_joined_conditions_obstack): New field. | |
9445 | (rtx_reader::m_md_constants): New field. | |
9446 | (rtx_reader::m_enum_types): New field. | |
9447 | * read-rtl.c (apply_iterator_to_string): Convert to... | |
9448 | (rtx_reader::apply_iterator_to_string): ...member function. | |
9449 | (copy_rtx_for_iterators): Convert to... | |
9450 | (rtx_reader::copy_rtx_for_iterators): ...member function. | |
9451 | (add_condition_to_string): Use rtx_reader_ptr for | |
9452 | calls join_c_conditions. | |
9453 | (apply_iterators): Use rtx_reader_ptr for calls to | |
9454 | join_c_conditions and copy_rtx_for_iterators. | |
9455 | (read_conditions): Convert to... | |
9456 | (rtx_reader::read_conditions): ...member function. | |
9457 | (record_potential_iterator_use): Convert to... | |
9458 | (rtx_reader::record_potential_iterator_use): ...member function. | |
9459 | (read_mapping): Convert to... | |
9460 | (rtx_reader::read_mapping): ...member function. | |
9461 | (read_subst_mapping): Use rtx_reader_ptr for read_string call. | |
9462 | (read_rtx): Convert to... | |
9463 | (rtx_reader::read_rtx): ...member function. | |
9464 | (read_rtx_code): Convert to... | |
9465 | (rtx_reader::read_rtx_code): ...member function. | |
9466 | (read_rtx_operand): Convert to... | |
9467 | (rtx_reader::read_rtx_operand): ...member function. Update for move | |
9468 | of string_obstack to a field. | |
9469 | (read_nested_rtx): Convert to.. | |
9470 | (rtx_reader::read_nested_rtx): ...member function. | |
9471 | (read_rtx_variadic): Convert to.. | |
9472 | (rtx_reader::read_rtx_variadic): ...member function. | |
9473 | ||
9474 | 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org> | |
9475 | ||
9476 | * tree-vrp.c (get_value_range): Check get_ptr_nonnull. | |
9477 | ||
9478 | 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org> | |
9479 | ||
9480 | * ipa-prop.c (ipa_compute_jump_functions_for_edge): Set value range | |
9481 | for pointer type too. | |
9482 | (ipcp_update_vr): set_ptr_nonnull for pointer. | |
9483 | ||
9484 | 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org> | |
9485 | ||
9486 | * tree-ssa-alias.h (pt_solution_singleton_or_null_p): Renamed from | |
9487 | pt_solution_singleton_p. | |
9488 | * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use renamed | |
9489 | pt_solution_singleton_or_null_p from pt_solution_singleton_p. | |
9490 | * tree-ssa-structalias.c (find_what_p_points_to): Preserve | |
9491 | pointer nonnull computed by VRP. | |
9492 | Also Conservatively set pt.null to 1. | |
9493 | (pt_solution_reset): Conservatively set pt.null to 1. | |
9494 | (pt_solution_singleton_or_null_p): Renamed from | |
9495 | pt_solution_singleton_p. | |
9496 | * tree-ssanames.h (set_ptr_nonnull): Declare. | |
9497 | (get_ptr_nonnull): Likewise. | |
9498 | * tree-ssanames.c (set_ptr_nonnull): New. | |
9499 | (get_ptr_nonnull): Likewise. | |
9500 | * tree-vrp.c (vrp_finalize): Set ptr that are nonnull. | |
9501 | (evrp_dom_walker::before_dom_children): Likewise. | |
9502 | ||
9503 | 2016-10-17 Eric Botcazou <ebotcazou@adacore.com> | |
9504 | ||
9505 | * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to... | |
9506 | * config/i386/i386.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here. | |
9507 | * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to... | |
9508 | * config/ia64/ia64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here. | |
9509 | * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to. | |
9510 | * config/rs6000/rs6000.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here. | |
9511 | (rs6000_option_override_internal): Clear it if ABI_AIX. | |
9512 | * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to... | |
9513 | * config/sparc/sparc.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ... here. | |
9514 | ||
9515 | 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
9516 | ||
9517 | * gimple-ssa-strength-reduction.c (record_increment): Remove | |
9518 | garbage comment. | |
9519 | ||
9520 | 2016-10-17 Eric Botcazou <ebotcazou@adacore.com> | |
9521 | ||
9522 | * expmed.c (expand_shift_1): Add MAY_FAIL parameter and do not assert | |
9523 | that the result is non-zero if it is true. | |
9524 | (maybe_expand_shift): New wrapper around expand_shift_1. | |
9525 | (emit_store_flag): Call maybe_expand_shift in lieu of expand_shift. | |
9526 | ||
9527 | 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
9528 | ||
9529 | PR tree-optimization/77916 | |
9530 | * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge): | |
9531 | Don't allow a MINUS_EXPR for pointer arithmetic for either known | |
9532 | or unknown strides. | |
9533 | (record_increment): Increments of -1 for unknown strides just use | |
9534 | a multiply initializer like other negative values. | |
9535 | (analyze_increments): Remove stopgap solution for -1 increment | |
9536 | applied to pointer arithmetic. | |
9537 | ||
9538 | 2016-10-17 Yuri Rumyantsev <ysrumyan@gmail.com> | |
9539 | ||
9540 | * dominance.c (dom_info::dom_info): Add new constructor for region | |
9541 | which is vector of basic blocks. | |
9542 | (dom_init): New method to initialize members common for both | |
9543 | constructors. | |
9544 | (dom_info::dom_info): Invoke dom_init for partial initialization. | |
9545 | (dom_info::get_idom): Add check to corner cases on basic blocks which | |
9546 | are not in region. | |
9547 | (dom_info::calc_dfs_tree): Check M_FAKE_EXIT_EDGE instead of M_REVERSE | |
9548 | to detect unreachable bbs. | |
9549 | (dom_info::calc_idoms): Likewise. | |
9550 | (compute_dom_fast_query_in_region): New function. | |
9551 | (calculate_dominance_info_for_region): Likewise. | |
9552 | (free_dominance_info_for_region): Likewise. | |
9553 | * dominance.h: Add prototypes for introduced region-based functions | |
9554 | * tree-if-conv.c (build_region): New function. | |
9555 | (if_convertible_loop_p_1): Invoke local version of post-dominators | |
9556 | calculation before basic block predication with subsequent freeing | |
9557 | post-dominator info. | |
9558 | (tree_if_conversion): Remove free of post-dominator info | |
9559 | (pass_if_conversion::execute): Delete detection of infinite loops | |
9560 | and fake edges to exit block since post-dominator calculation is | |
9561 | performed per if-converted loop only. | |
9562 | ||
9563 | 2016-10-17 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
9564 | ||
9565 | PR target/77308 | |
9566 | * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result | |
9567 | register explicitly. | |
9568 | * config/arm/arm.md (ashldi3, ashrdi3, lshrdi3): Don't FAIL if | |
9569 | optimizing for size. | |
9570 | ||
9571 | 2016-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
9572 | ||
9573 | * config/aarch64/aarch64.c: Delete inclusion of | |
9574 | cortex-a57-fma-steering.h. | |
9575 | (aarch64_override_options): Delete call | |
9576 | to aarch64_register_fma_steering. | |
9577 | * config/aarch64/aarch64-protos.h (make_pass_fma_steering): Declare. | |
9578 | * config/aarch64/cortex-a57-fma-steering.h: Delete. | |
9579 | * config/aarch64/aarch64-passes.def: New file. | |
9580 | * config/aarch64/cortex-a57-fma-steering.c | |
9581 | (aarch64_register_fma_steering): Delete definition. | |
9582 | (make_pass_fma_steering): Remove static qualifier. | |
9583 | * config/aarch64/t-aarch64 (PASSES_EXTRA): New directive. | |
9584 | (cortex-a57-fma-steering.o): Remove dependency on | |
9585 | cortex-a57-fma-steering.h. | |
9586 | ||
9587 | 2016-10-17 Eric Botcazou <ebotcazou@adacore.com> | |
9588 | ||
9589 | * explow.c (validize_mem): Do not modify the argument in-place. | |
9590 | ||
9591 | 2016-10-17 Thomas Schwinge <thomas@codesourcery.com> | |
9592 | ||
9593 | * tree-streamer.c (record_common_node): Explicitly list expected | |
9594 | tree codes. | |
9595 | ||
9596 | 2016-10-17 Richard Biener <rguenther@suse.de> | |
9597 | ||
9598 | PR tree-optimization/77988 | |
9599 | * tree-vrp.c (remove_range_assertions): Use replace_uses_by. | |
9600 | ||
9601 | 2016-10-17 Marek Polacek <polacek@redhat.com> | |
9602 | ||
9603 | * Makefile.in (C_COMMON_OBJS): Add c-family/c-attribs.o. | |
9604 | ||
9605 | 2016-10-17 Richard Biener <rguenther@suse.de> | |
9606 | ||
9607 | * bb-reorder.c (reorder_basic_blocks_simple): Clear BB_VISITED | |
9608 | before using it. | |
9609 | ||
9610 | 2016-10-17 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
9611 | ||
9612 | PR tree-optimization/71636 | |
9613 | * match.pd (x & ((1 << b) - 1) -> x & ~(~0 << b)): New pattern. | |
9614 | ||
9615 | 2016-10-17 Richard Biener <rguenther@suse.de> | |
9616 | ||
9617 | * gimplify.c (gimplify_function_tree): Do not move the outer | |
9618 | binds block. | |
9619 | ||
9620 | 2016-10-17 Jakub Jelinek <jakub@redhat.com> | |
9621 | ||
9622 | * langhooks.h (struct lang_hooks_for_decls): Remove | |
9623 | function_decl_explicit_p, function_decl_deleted_p and | |
9624 | function_decl_defaulted hooks. Add decl_dwarf_attribute hook. | |
9625 | * langhooks-def.h (lhd_decl_dwarf_attribute): Declare. | |
9626 | (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P, | |
9627 | LANG_HOOKS_FUNCTION_DECL_DELETED_P, | |
9628 | LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Remove. | |
9629 | (LANG_HOOKS_DECL_DWARF_ATTRIBUTE): Define. | |
9630 | (LANG_HOOKS_DECLS): Remove LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P, | |
9631 | LANG_HOOKS_FUNCTION_DECL_DELETED_P and | |
9632 | LANG_HOOKS_FUNCTION_DECL_DEFAULTED. Add | |
9633 | LANG_HOOKS_DECL_DWARF_ATTRIBUTE. | |
9634 | * langhooks.c (lhd_decl_dwarf_attribute): New function. | |
9635 | * dwarf2out.c (gen_subprogram_die): Use | |
9636 | lang_hooks.decls.decl_dwarf_attribute instead of | |
9637 | lang_hooks.decls.function_decl_*. | |
9638 | ||
9639 | 2016-10-16 Eric Botcazou <ebotcazou@adacore.com> | |
9640 | ||
9641 | PR ada/37139 | |
9642 | PR ada/67205 | |
9643 | * common.opt (-ftrampolines): New option. | |
9644 | * doc/invoke.texi (Code Gen Options): Document it. | |
9645 | * doc/tm.texi.in (Trampolines): Add TARGET_CUSTOM_FUNCTION_DESCRIPTORS. | |
9646 | * doc/tm.texi: Regenerate. | |
9647 | * builtins.def: Add init_descriptor and adjust_descriptor. | |
9648 | * builtins.c (expand_builtin_init_trampoline): Do not issue a warning | |
9649 | on platforms with descriptors. | |
9650 | (expand_builtin_init_descriptor): New function. | |
9651 | (expand_builtin_adjust_descriptor): Likewise. | |
9652 | (expand_builtin) <BUILT_IN_INIT_DESCRIPTOR>: New case. | |
9653 | <BUILT_IN_ADJUST_DESCRIPTOR>: Likewise. | |
9654 | * calls.c (prepare_call_address): Remove SIBCALLP parameter and add | |
9655 | FLAGS parameter. Deal with indirect calls by descriptor and adjust. | |
9656 | Set STATIC_CHAIN_REG_P on the static chain register, if any. | |
9657 | (call_expr_flags): Set ECF_BY_DESCRIPTOR for calls by descriptor. | |
9658 | (expand_call): Likewise. Move around call to prepare_call_address | |
9659 | and pass all flags to it. | |
9660 | * cfgexpand.c (expand_call_stmt): Reinstate CALL_EXPR_BY_DESCRIPTOR. | |
9661 | * gimple.h (enum gf_mask): New GF_CALL_BY_DESCRIPTOR value. | |
9662 | (gimple_call_set_by_descriptor): New setter. | |
9663 | (gimple_call_by_descriptor_p): New getter. | |
9664 | * gimple.c (gimple_build_call_from_tree): SetCALL_EXPR_BY_DESCRIPTOR. | |
9665 | (gimple_call_flags): Deal with GF_CALL_BY_DESCRIPTOR. | |
9666 | * langhooks.h (struct lang_hooks): Add custom_function_descriptors. | |
9667 | * langhooks-def.h (LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS): Define. | |
9668 | (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS. | |
9669 | * rtl.h (STATIC_CHAIN_REG_P): New macro. | |
9670 | * rtlanal.c (find_first_parameter_load): Skip static chain registers. | |
9671 | * target.def (custom_function_descriptors): New POD hook. | |
9672 | * tree.h (FUNC_ADDR_BY_DESCRIPTOR): New flag on ADDR_EXPR. | |
9673 | (CALL_EXPR_BY_DESCRIPTOR): New flag on CALL_EXPR. | |
9674 | * tree-core.h (ECF_BY_DESCRIPTOR): New mask. | |
9675 | Document FUNC_ADDR_BY_DESCRIPTOR and CALL_EXPR_BY_DESCRIPTOR. | |
9676 | * tree.c (make_node_stat) <tcc_declaration>: Use FUNCTION_ALIGNMENT. | |
9677 | (build_common_builtin_nodes): Initialize init_descriptor and | |
9678 | adjust_descriptor. | |
9679 | * tree-nested.c: Include target.h. | |
9680 | (struct nesting_info): Add 'any_descr_created' field. | |
9681 | (get_descriptor_type): New function. | |
9682 | (lookup_element_for_decl): New function extracted from... | |
9683 | (create_field_for_decl): Likewise. | |
9684 | (lookup_tramp_for_decl): ...here. Adjust. | |
9685 | (lookup_descr_for_decl): New function. | |
9686 | (convert_tramp_reference_op): Deal with descriptors. | |
9687 | (build_init_call_stmt): New function extracted from... | |
9688 | (finalize_nesting_tree_1): ...here. Adjust and deal with descriptors. | |
9689 | * defaults.h (FUNCTION_ALIGNMENT): Define. | |
9690 | (TRAMPOLINE_ALIGNMENT): Set to above instead of FUNCTION_BOUNDARY. | |
9691 | * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define. | |
9692 | * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise. | |
9693 | * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS):Likewise. | |
9694 | * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise. | |
9695 | ||
9696 | 2016-10-16 Eric Botcazou <ebotcazou@adacore.com> | |
9697 | ||
9698 | * config/sparc/sparc.c (sparc_expand_vector_init): Only accept literal | |
9699 | constants in CONST_VECTORs. | |
9700 | ||
9701 | 2016-10-15 Eric Botcazou <ebotcazou@adacore.com> | |
9702 | ||
9703 | * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use a scratch | |
9704 | register as destination of bmask. | |
9705 | (vector_init_bshuffle): Likewise. | |
9706 | * config/sparc/sparc.md (vec_perm_constv8qi): Likewise. | |
9707 | (bmaskdi_vis): Enable only in 64-bit mode. | |
9708 | ||
9709 | 2016-10-15 Segher Boessenkool <segher@kernel.crashing.org> | |
9710 | ||
9711 | * config/rs6000/rs6000.c (rs6000_get_separate_components): Do not | |
9712 | make LR a separately shrink-wrapped component unless savres_strategy | |
9713 | contains all of {SAVE,REST}_INLINE_{GPRS,FPRS,VRS}. Do not wrap | |
9714 | GPRs unless both {SAVE,REST}_INLINE_GPRS. Do not disallow all | |
9715 | wrapping when not both {SAVE,REST}_INLINE_GPRS. | |
9716 | ||
9717 | 2016-10-15 Eric Botcazou <ebotcazou@adacore.com> | |
9718 | ||
9719 | * optabs.c (expand_parity): Fix mode mismatch, add final conversion | |
9720 | and keep looping on failure. | |
9721 | ||
9722 | 2016-10-14 David Malcolm <dmalcolm@redhat.com> | |
9723 | ||
9724 | * print-rtl-function.c (print_edge): Omit "(flags)" when none are | |
9725 | set. | |
9726 | (print_rtx_function): Update example in comment for... | |
9727 | * print-rtl.c (print_rtx_operand_code_r): In compact mode, print | |
9728 | non-virtual pseudos with a '%' sigil followed by the regno, offset | |
9729 | by (LAST_VIRTUAL_REGISTER + 1), so that the first non-virtual | |
9730 | pseudo is dumped as "%0". | |
9731 | ||
9732 | 2016-10-14 Jakub Jelinek <jakub@redhat.com> | |
9733 | ||
9734 | PR middle-end/77959 | |
9735 | * expr.c (expand_expr_real_1) <case CONST_DECL>: For EXPAND_WRITE | |
9736 | return a MEM. | |
9737 | ||
9738 | 2016-10-14 Eric Botcazou <ebotcazou@adacore.com> | |
9739 | ||
9740 | * config/sparc/sparc-passes.def: New file. | |
9741 | * config/sparc/t-sparc (PASSES_EXTRA): Add sparc-passes.def. | |
9742 | * config/sparc/sparc-protos.h (make_pass_work_around_errata): New. | |
9743 | * config/sparc/sparc.c (sparc_option_override): Don't register passes. | |
9744 | ||
9745 | 2016-10-14 Pat Haugen <pthaugen@us.ibm.com> | |
9746 | ||
9747 | * loop-unroll.c (unroll_loop_runtime_iterations): Condition initial | |
9748 | loop peel to loops with exit test at the beginning. | |
9749 | ||
9750 | 2016-10-14 Pat Haugen <pthaugen@us.ibm.com> | |
9751 | ||
9752 | PR rtl-optimization/68212 | |
9753 | * cfgloopmanip.c (duplicate_loop_to_header_edge): Use preheader edge | |
9754 | frequency when computing scale factor for peeled copies. | |
9755 | * loop-unroll.c (unroll_loop_runtime_iterations): Fix freq/count | |
9756 | values for switch/peel blocks/edges. | |
9757 | ||
9758 | 2016-10-14 Pedro Alves <palves@redhat.com> | |
9759 | ||
9760 | * coretypes.h (OVERRIDE, FINAL): Delete, moved to include/ansidecl.h. | |
9761 | ||
9762 | 2016-10-14 Catherine Moore <clm@codesourcery.com> | |
9763 | ||
9764 | * config/mips/mips.c (mips_prepare_pch_save): Initialize | |
9765 | micromips_globals to zero. | |
9766 | ||
9767 | 2016-10-14 Richard Biener <rguenther@suse.de> | |
9768 | ||
9769 | PR tree-optimization/77979 | |
9770 | * tree-vrp.c (compare_name_with_value): Handle released SSA names | |
9771 | in the equivalency sets. | |
9772 | (compare_names): Likewise. | |
9773 | ||
9774 | 2016-10-14 Martin Liska <mliska@suse.cz> | |
9775 | ||
9776 | * builtins.h(target_char_cst_p): Declare the function. | |
9777 | * builtins.c (fold_builtin_memchr): Remove. | |
9778 | (target_char_cst_p): Move the function from gimple-fold.c. | |
9779 | (fold_builtin_3): Do not call the function. | |
9780 | * gimple-fold.c (gimple_fold_builtin_memchr): New function. | |
9781 | (gimple_fold_builtin): Call the function. | |
9782 | * fold-const-call.c (fold_const_call_1): Handle CFN_BUILT_IN_MEMCHR. | |
9783 | ||
9784 | 2016-10-14 Martin Liska <mliska@suse.cz> | |
9785 | ||
9786 | * builtins.c (fold_builtin_strcmp): Remove function. | |
9787 | (fold_builtin_strncmp): Likewise. | |
9788 | (fold_builtin_2): Remove call of the function. | |
9789 | (fold_builtin_3): Likewise. | |
9790 | * fold-const-call.c (fold_const_call): Add constant folding | |
9791 | for CFN_BUILT_IN_STRCASECMP and CFN_BUILT_IN_STRNCASECMP. | |
9792 | * fold-const-call.h (build_cmp_result): Declare the function. | |
9793 | * gimple-fold.c (gimple_load_first_char): New function. | |
9794 | (gimple_fold_builtin_string_compare): Likewise. | |
9795 | (gimple_fold_builtin): Call the function. | |
9796 | ||
9797 | 2016-10-14 Nathan Sidwell <nathan@acm.org> | |
9798 | ||
9799 | * gcov-io.c (gcov_open): Deconstify 'mode'. | |
9800 | ||
9801 | 2016-10-14 Martin Liska <mliska@suse.cz> | |
9802 | ||
9803 | * fold-const.c (c_getstr): Support of properly \0-terminated | |
9804 | string constants. New argument is added. | |
9805 | * fold-const.h: New argument is added. | |
9806 | ||
9807 | 2016-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
9808 | ||
9809 | * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): | |
9810 | New function. | |
9811 | (aarch64_print_hint_for_core): Likewise. | |
9812 | (aarch64_print_hint_for_arch): Likewise. | |
9813 | (aarch64_validate_march): Use it. Fix indentation in type signature. | |
9814 | (aarch64_validate_mcpu): Use aarch64_print_hint_for_core_or_arch. | |
9815 | (aarch64_validate_mtune): Likewise. | |
9816 | (aarch64_handle_attr_arch): Likewise. | |
9817 | (aarch64_handle_attr_cpu): Likewise. | |
9818 | (aarch64_handle_attr_tune): Likewise. | |
9819 | ||
9820 | 2016-10-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
9821 | ||
9822 | * optabs.def: Remove optab function gen_int_libfunc for sdivmod_optab | |
9823 | and udivmod_optab. | |
9824 | ||
9825 | 2016-10-13 Andreas Schwab <schwab@linux-m68k.org> | |
9826 | ||
9827 | * config/m68k/m68k.c (m68k_option_override): Check | |
9828 | opt_fstack_limit_symbol_arg and opt_fstack_limit_register_no | |
9829 | instead of stack_limit_rtx. | |
9830 | ||
9831 | 2016-10-13 Jakub Jelinek <jakub@redhat.com> | |
9832 | ||
9833 | * dwarf2out.c (gen_member_die): Handle inline static data member | |
9834 | definitions. | |
9835 | ||
9836 | 2016-10-13 Nathan Sidwell <nathan@acm.org> | |
9837 | ||
9838 | * gcov-io.c (gcov_open): Fix documentation. Simplify setting | |
9839 | gcov_var.mode. Remove unnecessary fstat. | |
9840 | ||
9841 | 2016-10-13 Segher Boessenkool <segher@kernel.crashing.org> | |
9842 | ||
9843 | PR bootstrap/77962 | |
9844 | * function.c (thread_prologue_and_epilogue_insns): Call all | |
9845 | make_*logue_seq in the same order as traditional. Call them | |
9846 | all a second time if shrink_wrapped_separate. | |
9847 | ||
9848 | 2016-10-13 Marek Polacek <polacek@redhat.com> | |
9849 | ||
9850 | * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn, | |
9851 | insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Don't | |
9852 | use -Wno-error. | |
9853 | ||
9854 | 2016-10-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
9855 | ||
9856 | PR tree-optimization/77937 | |
9857 | * gimple-ssa-strength-reduction.c (analyze_increments): Set cost | |
9858 | to infinite when we have a pointer with an increment of -1. | |
9859 | ||
9860 | 2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
9861 | ||
9862 | * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition | |
9863 | into ... | |
9864 | * memmodel.h: This file. | |
9865 | * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, | |
9866 | caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c, | |
9867 | cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c, | |
9868 | combine-stack-adj.c, common/config/aarch64/aarch64-common.c, | |
9869 | common/config/arm/arm-common.c, common/config/bfin/bfin-common.c, | |
9870 | common/config/c6x/c6x-common.c, common/config/i386/i386-common.c, | |
9871 | common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c, | |
9872 | compare-elim.c, config/aarch64/aarch64-builtins.c, | |
9873 | config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c, | |
9874 | config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c, | |
9875 | config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c, | |
9876 | config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c, | |
9877 | config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c, | |
9878 | config/darwin.c, config/epiphany/epiphany.c, | |
9879 | config/epiphany/mode-switch-use.c, | |
9880 | config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c, | |
9881 | config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c, | |
9882 | config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c, | |
9883 | config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c, | |
9884 | config/m68k/m68k.c, config/mcore/mcore.c, | |
9885 | config/microblaze/microblaze.c, config/mmix/mmix.c, | |
9886 | config/mn10300/mn10300.c, config/moxie/moxie.c, | |
9887 | config/msp430/msp430.c, config/nds32/nds32-cost.c, | |
9888 | config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c, | |
9889 | config/nds32/nds32-memory-manipulation.c, | |
9890 | config/nds32/nds32-predicates.c, config/nds32/nds32.c, | |
9891 | config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c, | |
9892 | config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c, | |
9893 | config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c, | |
9894 | config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc, | |
9895 | config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c, | |
9896 | config/stormy16/stormy16.c, config/tilegx/tilegx.c, | |
9897 | config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c, | |
9898 | config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c, | |
9899 | coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c, | |
9900 | df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c, | |
9901 | dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c, | |
9902 | expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c, | |
9903 | ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c, | |
9904 | ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c, | |
9905 | ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c, | |
9906 | loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c, | |
9907 | lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c, | |
9908 | lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c, | |
9909 | lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c, | |
9910 | postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c, | |
9911 | recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c, | |
9912 | reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c, | |
9913 | rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c, | |
9914 | sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c, | |
9915 | stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c, | |
9916 | targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c, | |
9917 | tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c, | |
9918 | tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c, | |
9919 | tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c, | |
9920 | var-tracking.c, varasm.c: Include memmodel.h. | |
9921 | * genattrtab.c (write_header): Include memmodel.h in generated file. | |
9922 | * genautomata.c (main): Likewise. | |
9923 | * gengtype.c (open_base_files): Likewise. | |
9924 | * genopinit.c (main): Likewise. | |
9925 | * genconditions.c (write_header): Include memmodel.h earlier in | |
9926 | generated file. | |
9927 | * genemit.c (main): Likewise. | |
9928 | * genoutput.c (output_prologue): Likewise. | |
9929 | * genpeep.c (main): Likewise. | |
9930 | * genpreds.c (write_insn_preds_c): Likewise. | |
9931 | * genrecog.c (write_header): Likewise. | |
9932 | * Makefile.in (PLUGIN_HEADERS): Include memmodel.h | |
9933 | ||
9934 | 2016-10-13 David Malcolm <dmalcolm@redhat.com> | |
9935 | ||
9936 | * function-tests.c (selftest::test_expansion_to_rtl): Add "true" | |
9937 | for new "compact" param of print_rtx_function. Check for "cinsn" | |
9938 | rather than "insn". | |
9939 | * print-rtl-function.c (flag_compact): New decl. | |
9940 | (print_rtx_function): Add param "compact" and use it to set | |
9941 | flag_compact, adding a description of the effect to the leading | |
9942 | comment, and updating the example output. | |
9943 | * print-rtl.c (flag_compact): New variable. | |
9944 | (print_rtx_operand_code_0): Omit the JUMP_LABEL reference in compact | |
9945 | mode. | |
9946 | (print_rtx_operand_code_i): When printing source locations, wrap | |
9947 | xloc.file in quotes. Don't print INSN_CODEs in compact mode. | |
9948 | (print_rtx_operand_code_r): Don't print regnos for hard regs and | |
9949 | virtuals in compact mode. | |
9950 | (print_rtx_operand_code_u): Don't print insn UIDs in compact mode, | |
9951 | apart from in LABEL_REFs. | |
9952 | (print_rtx_operand): In case 'w', don't print in hex in compact mode. | |
9953 | Don't print basic block ids in compact mode. | |
9954 | (print_rtx): In compact mode, prefix the code of insns with "c", | |
9955 | only print the INSN_UID of CODE_LABELs, and omit their LABEL_NUSES. | |
9956 | * print-rtl.h (print_rtx_function): Add "compact" param. | |
9957 | ||
9958 | 2016-10-13 Richard Earnshaw <rearnsha@arm.com> | |
9959 | ||
9960 | * arm.h (TARGET_VFP): Delete. | |
9961 | (TARGET_VFPD32): Remove references to TARGET_VFP. | |
9962 | (TARGET_VFP3, TARGET_VFP5): Likewise. | |
9963 | (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Likewise. | |
9964 | (TARGET_NEON_FP16): Likewise. | |
9965 | (TARGET_FMA): Likewise. | |
9966 | (TARGET_CRYPTO): Likewise. | |
9967 | (TARGET_NEON): Likewise. | |
9968 | (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. | |
9969 | (FUNCTION_ARG_REGNO_P): Likewise. | |
9970 | * arm.c (arm_option_check_internal): Likewise. | |
9971 | (arm_option_override): Likewise. | |
9972 | (use_return_insn): Likewise. | |
9973 | (arm_function_value_regno_p): Likewise. | |
9974 | (arm_apply_result_size): Likewise. | |
9975 | (use_vfp_abi): Likewise. | |
9976 | (arm_legitimate_address_outer_p): Likewise. | |
9977 | (thumb2_legitimate_address_p): Likewise. | |
9978 | (arm_legitimate_index_p): Likewise. | |
9979 | (thumb2_legitimate_index_p): Likewise. | |
9980 | (arm_legitimate_address): Likewise. | |
9981 | (arm_get_vfp_saved_size): Likewise. | |
9982 | (arm_emit_vfp_multi_reg_pop): Likewise. | |
9983 | (arm_get_frame_offsets): Likewise. | |
9984 | (arm_save_coproc_regs): Likewise. | |
9985 | (arm_hard_regno_mode_ok): Likewise. | |
9986 | (arm_expand_epilogue_apcs_frame): Likewise. | |
9987 | (arm_expand_epilogue): Likewise. | |
9988 | (arm_file_start): Likewise. | |
9989 | (arm_conditional_register_usage): Likewise. | |
9990 | (arm_validize_comparison): Use vfp_compare_operand directly. | |
9991 | * arm-builtins.c (arm_init_builtins): Remove references to TARGET_VFP. | |
9992 | (arm_expand_vfp_builtin): Use TARGET_HARD_FLOAT for detecting | |
9993 | unsupported usage. | |
9994 | (arm_atomic_assign_expand_fenv): Likewise. | |
9995 | * arm.md (divsf3): Likewise. | |
9996 | (arm_negsi2): Likewise. | |
9997 | (absdf2): Likewise. | |
9998 | (arm_movdi): Likewise. | |
9999 | (arm_movt): Likewise. | |
10000 | (cbranchsf4): Change predicate to vfp_compare_operand. | |
10001 | (cbranchdf4): Change predicate to vfp_compare_operand. | |
10002 | (cstorehf4): Change predicate to vfp_compare_operand. | |
10003 | (cstoresf4): Change predicate to vfp_compare_operand. | |
10004 | (cstoredf4): Change predicate to vfp_compare_operand. | |
10005 | (vfp_pop_multiple_with_writeback): Remove references to TARGET_VFP. | |
10006 | (movhi_insn_arch4, movhi_bytes): Likewise. | |
10007 | * constraints.md (Dt): Likewise. | |
10008 | (Dp): Likewise. | |
10009 | * iterators.md (SDF): Likewise. | |
10010 | * predicates.md (arm_float_compare_operand): Delete. | |
10011 | (const_double_vcvt_power_of_two_reciprocal): Remove references to | |
10012 | TARGET_VFP. | |
10013 | (const_double_vcvt_power_of_two): Likewise. | |
10014 | * thumb2.md thumb2_movsi_insn): Likewise. | |
10015 | * vfp.md (arm_movhi_vfp, thumb2_movhi_vfp): Likewise. | |
10016 | (movhf_vfp): Likewise. | |
10017 | (arm_movsi_vfp, thumb2_movsi_vfp): Likewise. | |
10018 | (movdi_vfp, movdi_vfp_cortexa8): Likewise. | |
10019 | (movsf_vfp, thumb2_movsf_vfp): Likewise. | |
10020 | (movdf_vfp, thumb2_movdf_vfp): Likewise. | |
10021 | (movsfcc_vfp, abssf2_vfp, negsf2_vfp, addsf3_vfp): Likewise. | |
10022 | (subsf3_vfp, divsf3_vfp): Likewise. | |
10023 | (mulsf3_vfp, mulsf3negsf_vfp, negmulsf3_vfp): Likewise. | |
10024 | (mulsf3addsf_vfp, (mulsf3subsf_vfp, mulsf3negsfaddsf_vfp): Likewise. | |
10025 | (mulsf3negsfsubsf_vfp): Likewise. | |
10026 | (truncsisf2_vfp, fixuns_truncsfsi2, floatsisf2_vfp): Likewise. | |
10027 | (floatunssisf2, sqrtsf2_vfp): Likewise. | |
10028 | (movcc_vfp): Likewise. | |
10029 | (cmpsf_split_vfp, cmpsf_trap_split_vfp): Likewise. | |
10030 | (cmpsf_vfp, cmpsf_trap_vfp): Likewise. | |
10031 | (push_multi_vfp): Likewise. | |
10032 | (set_fpscr, get_fpscr): Likewise. | |
10033 | * arm-c.c (arm_cpu_builtins): Unconditionally define __VFP_FP__. | |
10034 | ||
10035 | 2016-10-13 Richard Earnshaw <rearnsha@arm.com> | |
10036 | ||
10037 | * arm.h (TARGET_VFP): Unconditionally define to 1. | |
10038 | (arm_fpu_desc): Remove 'model' field. | |
10039 | (TARGET_FPU_MODEL): Delete. | |
10040 | * arm.c (all_fpus): Don't initialize the model field. | |
10041 | (arm_can_inline_p): Don't check the FPU model. | |
10042 | * arm-fpus.def: Remove redundant model field from all FPU | |
10043 | descriptions. | |
10044 | ||
10045 | 2016-10-13 Richard Biener <rguenther@suse.de> | |
10046 | ||
10047 | PR middle-end/77826 | |
10048 | * genmatch.c (struct capture): Add value_match member. | |
10049 | (commutate): Preserve value_match. | |
10050 | (lower_opt_convert): Likewise. | |
10051 | (lower_cond): Likewise. | |
10052 | (replace_id): Likewise. | |
10053 | (struct dt_operand): Add value_match member. | |
10054 | (decision_tree::cmp_node): Compare it. | |
10055 | (decision_tree::insert_operand): Honor it when finding and | |
10056 | when appending a DT_MATCH. | |
10057 | (dt_operand::gen_match_op): Generate a type check after | |
10058 | operand_equal_p if ! value_match for both GENERIC and GIMPLE. | |
10059 | (parser::get_internal_capture_id): New helper. | |
10060 | (parser::finish_match_operand): New function lowering @@<id>. | |
10061 | (parser::parse_capture): Parse @@<id> as value-match. | |
10062 | (parser::parse_expr): Use get_internal_capture_id. | |
10063 | (parser::parse_simplify): Call finish_match_operand. | |
10064 | (walk_captures): New helper. | |
10065 | * match.pd (X - (X / Y) * Y -> X % Y): Use value-matching instead | |
10066 | of operand_equal_p. | |
10067 | ((X /[ex] A) * A -> X): Likewise. | |
10068 | ((X | Y) ^ X -> Y & ~ X): Handle constants properly by using | |
10069 | convert[12] and value-matching. | |
10070 | ((A | B) & (A | C) -> A | (B & C)): Likewise. | |
10071 | ((X | Y) | Y -> X | Y): Likewise. | |
10072 | ((X ^ Y) ^ Y -> X): Likewise. | |
10073 | (A - (A & B) -> ~B & A): Likewise. | |
10074 | ((T)(P + A) - (T)P -> (T) A): Likewise. | |
10075 | ((T)P - (T)(P + A) -> -(T) A): Likewise. | |
10076 | ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Likewise. | |
10077 | * doc/match-and-simplify.texi: Amend capture section. | |
10078 | ||
10079 | 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com> | |
10080 | ||
10081 | * config/arc/arc.md (umul_600): Remove predicated variant. | |
10082 | (umul64_600): Likewise. | |
10083 | ||
10084 | 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com> | |
10085 | ||
10086 | * config/arc/arc.h (INSN_LENGTH_ALIGNMENT): Change. | |
10087 | ||
10088 | 2016-10-13 Bin Cheng <bin.cheng@arm.com> | |
10089 | ||
10090 | * tree-vect-loop.c (loop_niters_no_overflow): New func. | |
10091 | (vect_transform_loop): Call loop_niters_no_overflow. Pass the | |
10092 | no-overflow information to vect_do_peeling_for_loop_bound and | |
10093 | vect_gen_vector_loop_niters. | |
10094 | ||
10095 | 2016-10-13 Bin Cheng <bin.cheng@arm.com> | |
10096 | ||
10097 | * tree-predcom.c (tree_predictive_commoning_loop): Skip loop that only | |
10098 | iterates 1 time. | |
10099 | ||
10100 | 2016-10-13 Bin Cheng <bin.cheng@arm.com> | |
10101 | ||
10102 | * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Don't release | |
10103 | adjust_vec automatically. | |
10104 | (slpeel_add_loop_guard): Remove param cond_expr_stmt_list. Rename | |
10105 | param exit_bb to guard_to. | |
10106 | (slpeel_checking_verify_cfg_after_peeling): | |
10107 | (set_prologue_iterations): | |
10108 | (create_lcssa_for_virtual_phi): New func which is factored out from | |
10109 | slpeel_tree_peel_loop_to_edge. | |
10110 | (slpeel_tree_peel_loop_to_edge): | |
10111 | (iv_phi_p): New func. | |
10112 | (vect_can_advance_ivs_p): Call iv_phi_p. | |
10113 | (vect_update_ivs_after_vectorizer): Call iv_phi_p. Directly insert | |
10114 | new gimple stmts in basic block. | |
10115 | (vect_gen_niters_for_prolog_loop): Rename to... | |
10116 | (vect_gen_prolog_loop_niters): ...Rename from. Change parameters and | |
10117 | adjust implementation. | |
10118 | (vect_update_inits_of_drs): Fix code style issue. Convert niters to | |
10119 | sizetype if necessary. | |
10120 | (vect_build_loop_niters): Move to here from tree-vect-loop.c. Change | |
10121 | it to external function. | |
10122 | (vect_gen_scalar_loop_niters, vect_gen_vector_loop_niters): New. | |
10123 | (vect_gen_vector_loop_niters_mult_vf): New. | |
10124 | (slpeel_update_phi_nodes_for_loops): New. | |
10125 | (slpeel_update_phi_nodes_for_guard1): Reimplement. | |
10126 | (find_guard_arg, slpeel_update_phi_nodes_for_guard2): Reimplement. | |
10127 | (slpeel_update_phi_nodes_for_lcssa, vect_do_peeling): New. | |
10128 | * tree-vect-loop.c (vect_build_loop_niters): Move to file | |
10129 | tree-vect-loop-manip.c | |
10130 | (vect_generate_tmps_on_preheader): Delete. | |
10131 | (vect_transform_loop): Rename vectorization_factor to vf. Call | |
10132 | vect_do_peeling instead of vect_do_peeling-* functions. | |
10133 | * tree-vectorizer.h (vect_do_peeling): New decl. | |
10134 | (vect_build_loop_niters, vect_gen_vector_loop_niters): New decls. | |
10135 | (vect_do_peeling_for_loop_bound): Delete. | |
10136 | (vect_do_peeling_for_alignment): Delete. | |
10137 | ||
10138 | 2016-10-13 Bin Cheng <bin.cheng@arm.com> | |
10139 | ||
10140 | * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Put | |
10141 | duplicated loop after its preheader and after the original loop. | |
10142 | ||
10143 | 2016-10-13 Bin Cheng <bin.cheng@arm.com> | |
10144 | ||
10145 | * tree-vect-loop.c (vect_analyze_loop_2): Check and skip loop if it | |
10146 | has no enough iterations for LOOP_VINFO_PEELING_FOR_GAPS. | |
10147 | ||
10148 | 2016-10-13 Bin Cheng <bin.cheng@arm.com> | |
10149 | ||
10150 | * tree-vect-loop.c (vectorizable_live_operation): Support handling | |
10151 | for live variable outside loop but not in lcssa form. | |
10152 | ||
10153 | 2016-10-13 Bin Cheng <bin.cheng@arm.com> | |
10154 | ||
10155 | * cfg.c (reset_original_copy_tables): New func. | |
10156 | * cfg.h (reset_original_copy_tables): New decl. | |
10157 | ||
10158 | 2016-10-13 Jakub Jelinek <jakub@redhat.com> | |
10159 | ||
10160 | PR c/77946 | |
10161 | * tree.h (FALLTHROUGH_LABEL_P): Use private_flag instead of | |
10162 | public_flag. | |
10163 | * varasm.c (default_binds_local_p_3): Formatting fix. | |
10164 | ||
10165 | 2016-10-13 Bin Cheng <bin.cheng@arm.com> | |
10166 | ||
10167 | * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Fix code | |
10168 | style issue. | |
10169 | (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment): | |
10170 | Remove useless code. | |
10171 | ||
10172 | 2016-10-13 Martin Liska <mliska@suse.cz> | |
10173 | ||
10174 | PR tree-optimization/77943 | |
10175 | * tree-ssa-tail-merge.c (merge_stmts_p): Do not merge BBs with | |
10176 | a different EH landing pads. | |
10177 | ||
10178 | 2016-10-13 Jakub Jelinek <jakub@redhat.com> | |
10179 | ||
10180 | PR target/77957 | |
10181 | * hooks.h (hook_tree_void_null): Declare. | |
10182 | * hooks.c (hook_tree_void_null): New function. | |
10183 | * langhooks.c (lhd_return_null_tree_v): Remove. | |
10184 | * langhooks-def.h (lhd_return_null_tree_v): Remove. | |
10185 | * cfgexpand.c (stack_protect_prologue): If guard_decl is NULL, | |
10186 | set y to const0_rtx. | |
10187 | * function.c (stack_protect_epilogue): Likewise. | |
10188 | * config/tilepro/tilepro.c (TARGET_STACK_PROTECT_GUARD): Redefine | |
10189 | if TARGET_THREAD_SSP_OFFSET is defined. | |
10190 | * config/s390/s390.c (TARGET_STACK_PROTECT_GUARD): Likewise. | |
10191 | * config/sparc/sparc.c (TARGET_STACK_PROTECT_GUARD): Likewise. | |
10192 | * config/tilegx/tilegx.c (TARGET_STACK_PROTECT_GUARD): Likewise. | |
10193 | * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Likewise. | |
10194 | * config/i386/i386.c (TARGET_STACK_PROTECT_GUARD): Likewise. | |
10195 | (ix86_stack_protect_guard): New function. | |
10196 | ||
10197 | 2016-10-13 Richard Biener <rguenther@suse.de> | |
10198 | ||
10199 | * dwarf2out.c (tree_add_const_value_attribute): Do not try | |
10200 | rtl_for_decl_init during early phase. | |
10201 | (gen_variable_die): Do not create locations during early phase. | |
10202 | (gen_label_die): Likewise. | |
10203 | (decls_for_scope): Do not waste time handling BLOCK_NONLOCALIZED_VARs | |
10204 | twice. | |
10205 | ||
10206 | 2016-10-12 Richard Biener <rguenther@suse.de> | |
10207 | ||
10208 | * tree-vrp.c (evrp_dom_walker::try_find_new_range): Renamed from | |
10209 | try_add_new_range and made to eturn new range. | |
10210 | (evrp_dom_walker::before_dom_children): Push op1 value range before | |
10211 | pushing op0 value range. | |
10212 | ||
10213 | 2016-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
10214 | ||
10215 | PR tree-optimization/77937 | |
10216 | * gimple-ssa-strength-reduction.c (analyze_increments): Use | |
10217 | POINTER_TYPE_P on the candidate type to determine whether | |
10218 | candidates in this chain require pointer arithmetic. | |
10219 | ||
10220 | 2016-10-12 Eric Botcazou <ebotcazou@adacore.com> | |
10221 | ||
10222 | * config/visium/visium.c (visium_gimplify_va_arg): Emit a big-endian | |
10223 | correction if the type is smaller than a word. | |
10224 | (visium_select_cc_mode): Add ... fall through ... comment. | |
10225 | ||
10226 | 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org> | |
10227 | ||
10228 | * config/rs6000/rs6000.c (machine_function): Add new fields | |
10229 | gpr_is_wrapped_separately and lr_is_wrapped_separately. | |
10230 | (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS, | |
10231 | TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB, | |
10232 | TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS, | |
10233 | TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS, | |
10234 | TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS, | |
10235 | TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define. | |
10236 | (rs6000_get_separate_components): New function. | |
10237 | (rs6000_components_for_bb): New function. | |
10238 | (rs6000_disqualify_components): New function. | |
10239 | (rs6000_emit_prologue_components): New function. | |
10240 | (rs6000_emit_epilogue_components): New function. | |
10241 | (rs6000_set_handled_components): New function. | |
10242 | (rs6000_emit_prologue): Don't emit LR save if lr_is_wrapped_separately. | |
10243 | Don't emit GPR saves if gpr_is_wrapped_separately for that register. | |
10244 | (restore_saved_lr): Don't restore LR if lr_is_wrapped_separately. | |
10245 | (rs6000_emit_epilogue): Don't emit GPR restores if | |
10246 | gpr_is_wrapped_separately for that register. Don't make a | |
10247 | REG_CFA_RESTORE note for registers we did not restore, either. | |
10248 | ||
10249 | 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org> | |
10250 | ||
10251 | * function.c (thread_prologue_and_epilogue_insns): Call | |
10252 | try_shrink_wrapping_separate. Compute the prologue_seq afterwards, | |
10253 | if it has possibly changed. Compute the split_prologue_seq and | |
10254 | epilogue_seq later, too. | |
10255 | * shrink-wrap.c: #include cfgbuild.h and insn-config.h. | |
10256 | (dump_components): New function. | |
10257 | (struct sw): New struct. | |
10258 | (SW): New function. | |
10259 | (init_separate_shrink_wrap): New function. | |
10260 | (fini_separate_shrink_wrap): New function. | |
10261 | (place_prologue_for_one_component): New function. | |
10262 | (spread_components): New function. | |
10263 | (disqualify_problematic_components): New function. | |
10264 | (emit_common_heads_for_components): New function. | |
10265 | (emit_common_tails_for_components): New function. | |
10266 | (insert_prologue_epilogue_for_components): New function. | |
10267 | (try_shrink_wrapping_separate): New function. | |
10268 | * shrink-wrap.h: Declare try_shrink_wrapping_separate. | |
10269 | ||
10270 | 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org> | |
10271 | ||
10272 | * regrename.c (build_def_use): Invalidate chains that have a | |
10273 | REG_CFA_RESTORE on some instruction. | |
10274 | ||
10275 | 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org> | |
10276 | ||
10277 | * dce.c (delete_unmarked_insns): Don't delete instructions with | |
10278 | a REG_CFA_RESTORE note. | |
10279 | ||
10280 | 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org> | |
10281 | ||
10282 | * common.opt (-fshrink-wrap-separate): New flag. | |
10283 | * doc/invoke.texi: Document it. | |
10284 | * doc/tm.texi.in (Shrink-wrapping separate components): New subsection. | |
10285 | * doc/tm.texi: Regenerate. | |
10286 | * emit-rtl.h (struct rtl_data): New field shrink_wrapped_separate. | |
10287 | * target.def (shrink_wrap): New hook vector. | |
10288 | (get_separate_components, components_for_bb, disqualify_components, | |
10289 | emit_prologue_components, emit_epilogue_components, | |
10290 | set_handled_components): New hooks. | |
10291 | ||
10292 | 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org> | |
10293 | ||
10294 | * config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for | |
10295 | vector return by reference only if -Wpsabi. | |
10296 | (rs6000_pass_by_reference): Similarly, for argument passing. | |
10297 | ||
10298 | 2016-10-12 David Malcolm <dmalcolm@redhat.com> | |
10299 | ||
10300 | * function-tests.c: Include "print-rtl.h". | |
10301 | (selftest::test_expansion_to_rtl): Call print_rtx_function on the | |
10302 | function, and verify what is dumped. | |
10303 | * print-rtl-function.c (print_edge): New function. | |
10304 | (begin_any_block): New function. | |
10305 | (end_any_block): New function. | |
10306 | (can_have_basic_block_p): New function. | |
10307 | (print_rtx_function): Track the basic blocks of insns in the | |
10308 | chain, wrapping those that are within blocks within "(block)" | |
10309 | directives. Remove the "(cfg)" directive. | |
10310 | ||
10311 | 2016-10-12 David Malcolm <dmalcolm@redhat.com> | |
10312 | ||
10313 | * selftest.c (selftest::read_file): New function. | |
10314 | (selftest::test_read_file): New function. | |
10315 | (selftest::selftest_c_tests): Call test_read_file. | |
10316 | * selftest.h (selftest::read_file): New decl. | |
10317 | ||
10318 | 2016-10-12 Richard Biener <rguenther@suse.de> | |
10319 | ||
10320 | PR debug/77947 | |
10321 | * cgraphunit.c (analyze_functions): Preserve cgraph nodes | |
10322 | function context. | |
10323 | ||
10324 | 2016-10-12 Thomas Schwinge <thomas@codesourcery.com> | |
10325 | ||
10326 | * lto-streamer.c: Fix LTO_STREAMER_DEBUG build. | |
10327 | ||
10328 | * dwarf2out.c (dwarf2_lineno_debug_hooks): Use | |
10329 | dwarf2out_assembly_start. | |
10330 | ||
10331 | * Makefile.in (SELFTEST_FLAGS): Add -nostdinc. | |
10332 | ||
10333 | * Makefile.in (SELFTEST_FLAGS): New variable. | |
10334 | (s-selftest, selftest-gdb, selftest-valgrind): Use it. | |
10335 | ||
10336 | * vmsdbgout.c (vmsdbg_debug_hooks): Add filename parameter to | |
10337 | early_finish hook. | |
10338 | ||
10339 | 2016-10-12 Georg-Johann Lay <avr@gjlay.de> | |
10340 | ||
10341 | * rtl.h (struct rtx_def): Comment how RTX_FLAGS will be | |
10342 | dumped in RTL dumps. | |
10343 | ||
10344 | 2016-10-12 Martin Liska <mliska@suse.cz> | |
10345 | ||
10346 | * gimple-fold.c (create_tmp_reg_or_ssa_name): New function. | |
10347 | (gimple_fold_builtin_memory_op): Use the function. | |
10348 | (gimple_fold_builtin_strchr): Likewise. | |
10349 | (gimple_fold_builtin_strcat): Likewise. | |
10350 | (gimple_build): Likewise. | |
10351 | ||
10352 | 2016-10-12 Nathan Sidwell <nathan@acm.org> | |
10353 | ||
10354 | * diagnostic.c (diagnostc_report_diagnostic): Fix formatting. | |
10355 | ||
10356 | 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com> | |
10357 | ||
10358 | * dwarf2out.c (int_loc_descriptor): Generate opcodes for another | |
10359 | equivalent 32-bit constant (modulo 2**32) when that yields | |
10360 | smaller instructions. | |
10361 | (size_of_int_loc_descriptor): Update accordingly. | |
10362 | ||
10363 | 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com> | |
10364 | ||
10365 | * dwarf2out.c (dwarf2out_early_global_decl): For nested | |
10366 | functions, call dwarf2out_decl on the parent function first. | |
10367 | ||
10368 | 2016-10-12 Richard Biener <rguenther@suse.de> | |
10369 | ||
10370 | * match.pd ((X /[ex] A) * A -> X): Remove unnecessary constraint | |
10371 | on the conversion. | |
10372 | ||
10373 | 2016-10-12 Richard Biener <rguenther@suse.de> | |
10374 | ||
10375 | * tree-ssa-propagate.c | |
10376 | (substitute_and_fold_dom_walker::before_dom_children): Do not | |
10377 | ignore ASSERT_EXPRs but only preserve them. | |
10378 | * tree-vrp.c (remove_range_assertions): Deal with ASSERT_EXPRs | |
10379 | that have been propagated into. | |
10380 | (vrp_finalize): Enable DCE for substitute_and_fold. | |
10381 | ||
10382 | 2016-10-12 Richard Biener <rguenther@suse.de> | |
10383 | ||
10384 | PR tree-optimization/77920 | |
10385 | * tree-vrp.c (simplify_div_or_mod_using_ranges): Simplify. | |
10386 | (simplify_min_or_max_using_ranges): Pass in gsi and use it. | |
10387 | (simplify_abs_using_ranges): Likewise. | |
10388 | (simplify_conversion_using_ranges): Likewise. | |
10389 | (simplify_stmt_using_ranges): Adjust. | |
10390 | ||
10391 | 2016-10-12 Jakub Jelinek <jakub@redhat.com> | |
10392 | ||
10393 | PR tree-optimization/77929 | |
10394 | * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle | |
10395 | (*ops)[ranges[i].idx]->op != ranges[i].exp case. | |
10396 | ||
10397 | 2016-10-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
10398 | ||
10399 | PR target/77934 | |
10400 | * config/rs6000/vmx.md (vsx_concat_<mode>): The mtvsrdd instruction | |
10401 | needs a base register for arg 1. | |
10402 | ||
10403 | 2016-10-12 Jakub Jelinek <jakub@redhat.com> | |
10404 | ||
10405 | * common.opt (Wimplicit-fallthrough) Turn into alias to | |
10406 | -Wimplicit-fallthrough=3. Remove EnabledBy. | |
10407 | (Wimplicit-fallthrough=): New option. | |
10408 | * gimplify.c (warn_implicit_fallthrough_r): Use | |
10409 | OPT_Wimplicit_fallthrough_ instead of OPT_Wimplicit_fallthrough. | |
10410 | * doc/invoke.texi (-Wimplicit-fallthrough): Document as alias | |
10411 | to -Wimplicit-fallthrough=3. | |
10412 | (-Wimplicit-fallthrough=): Document. | |
10413 | ||
10414 | 2016-10-11 Eric Botcazou <ebotcazou@adacore.com> | |
10415 | ||
10416 | * config/sparc/sparc.c (emit_scc_insn): Remove direct support for EQ | |
10417 | and GEU in DImode if TARGET_SUBXC. | |
10418 | * config/sparc/sparc.md (seqdi<W:mode>_zero): Remove TARGET_SUBXC. | |
10419 | (seqdi<W:mode>_zero_subxc): Delete. | |
10420 | (neg_seqdi<W:mode>_zero): Remove TARGET_VIS3. | |
10421 | (neg_seqdi<W:mode>_zero_vis3): Delete. | |
10422 | (plus_seqdi<W:mode>_zero): Likewise. | |
10423 | (minus_seqdi<W:mode>_zero): Likewise. | |
10424 | (plus_plus_sltu<W:mode>): Accept only register. | |
10425 | (addx<W:mode>): Likewise. | |
10426 | (plus_sltu<W:mode>_vis3): Likewise. | |
10427 | (plus_plus_sltu<W:mode>_vis3): Likewise. | |
10428 | (neg_sgeu<W:mode>_vis3): Delete. | |
10429 | (minus_sgeu<W:mode>_vis3): Likewise. | |
10430 | (addxc<W:mode>): Accept only registers. | |
10431 | (neg_sltu<W:mode>_subxc): Write %%g0 instead of 0. | |
10432 | (minus_neg_sltu<W:mode>_subxc): Accept only register. | |
10433 | (neg_plus_sltu<W:mode>_subxc): Likewise. | |
10434 | (minus_sltu<W:mode>_subxc): Write %%g0 instead of 0. | |
10435 | (minus_minus_sltu<W:mode>_subxc): Accept only register. | |
10436 | (sgeu<W:mode>_insn_subxc): Delete. | |
10437 | (plus_sgeu<W:mode>_subxc): Likewise. | |
10438 | (subxc<W:mode>): Accept only register. | |
10439 | (scc splitter): Split always GEU again. | |
10440 | ||
10441 | 2016-10-11 Jeff Law <law@redhat.com> | |
10442 | ||
10443 | PR tree-optimization/77424 | |
10444 | * tree-ssa-threadupdate.c (thread_through_all_blocks): Remove | |
10445 | dead conditionals. Assert that all e->aux fields are NULL. | |
10446 | ||
10447 | 2016-10-11 David Malcolm <dmalcolm@redhat.com> | |
10448 | ||
10449 | * print-rtl.c (print_rtx): Rename "i" to "idx". Split out the | |
10450 | operand-printing "switch" statement into... | |
10451 | (print_rtx_operand_code_0): ...this new function, ... | |
10452 | (print_rtx_operand_code_e): ...this new function, ... | |
10453 | (print_rtx_operand_codes_E_and_V): ...this new function, ... | |
10454 | (print_rtx_operand_code_i): ...this new function, ... | |
10455 | (print_rtx_operand_code_r): ...this new function, ... | |
10456 | (print_rtx_operand_code_u): ...this new function, ... | |
10457 | (print_rtx_operand): ...and this new function. | |
10458 | ||
10459 | 2016-10-11 Uros Bizjak <ubizjak@gmail.com> | |
10460 | ||
10461 | * config/alpha/alpha-passes.def: New file. | |
10462 | * config/alpha/t-alpha: New file. | |
10463 | * config/alpha/alpha-protos.h (gcc::context, rtl_opt_pass): Declare. | |
10464 | (make_pass_handle_trap_shadows): New prototype. | |
10465 | (make_pass_align_insns): Ditto. | |
10466 | * config/alpha/alpha.c (alpha_option_override): Don't register | |
10467 | passes here. | |
10468 | * config.gcc (alpha*-*-*) Add alpha/t-alpha to tmake_file. | |
10469 | ||
10470 | 2016-10-11 Michael Meissner <meissner@linux.vnet.ibm.com> | |
10471 | ||
10472 | PR target/77924 | |
10473 | * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the | |
10474 | distinct __ibm128 IBM extended double type if long doubles are | |
10475 | 128-bits and the default format for long double is IEEE 128-bit. | |
10476 | ||
10477 | 2016-10-11 Richard Biener <rguenther@suse.de> | |
10478 | ||
10479 | * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional. | |
10480 | (init_sections_and_labels): Use DEBUG_DWO_STR_OFFSETS_SECTION. | |
10481 | (verify_die): New function. | |
10482 | (dwarf2out_finish): Call it. | |
10483 | (output_line_info): Handle case of -gsplit-dwarf without | |
10484 | DWARF2_ASM_LINE_DEBUG_INFO. | |
10485 | ||
10486 | 2016-10-11 Richard Biener <rguenther@suse.de> | |
10487 | ||
10488 | PR debug/77931 | |
10489 | * gimple-low.c (lower_gimple_bind): Handle arbitrary common | |
10490 | sub-chains of BLOCK_VARS and gimple_bind_vars. | |
10491 | ||
10492 | 2016-10-11 Venkataramanan Kumar <Venkataramanan.kumar@amd.com> | |
10493 | ||
10494 | * config/i386/znver1.md : Fix imov/imovx load type reservations. | |
10495 | ||
10496 | 2016-10-11 Eric Botcazou <ebotcazou@adacore.com> | |
10497 | ||
10498 | * config/sparc/sparc.opt (msubxc): New option. | |
10499 | * doc/invoke.texi (SPARC options): Document it and tidy up. | |
10500 | * doc/tm.texi.in (Condition Codes): Adjust SPARC example. | |
10501 | * doc/tm.texi: Regenerate. | |
10502 | * config/sparc/sparc-modes.def (CC_NOOV): Rename into... | |
10503 | (CCNZ): ...this. | |
10504 | (CCX_NOOV): Rename into... | |
10505 | (CCXNZ): ...this. | |
10506 | (CCC): New. | |
10507 | (CCXC): Likewise. | |
10508 | * config/sparc/predicates.m (fcc_register_operand): Simplify. | |
10509 | (fcc0_register_operand): Likewise. | |
10510 | (icc_register_operand): New. | |
10511 | (icc_or_fcc_register_operand): Simplify. | |
10512 | (nz_comparison_operator): New. | |
10513 | (c_comparison_operator): Likewise. | |
10514 | (noov_compare_operator): Rename into... | |
10515 | (icc_comparison_operator): ...this. Use above predicates. | |
10516 | (noov_compare64_operator): Rename into... | |
10517 | (v9_comparison_operator): ...this and tidy up. | |
10518 | (fcc_comparison_operator): New. | |
10519 | (icc_or_fcc_comparison_operator): Likewise. | |
10520 | (v9_register_compare_operator): Rename info... | |
10521 | (v9_register_comparison_operator): ...this. | |
10522 | * config/sparc/sparc.c (TARGET_FIXED_CONDITION_CODE_REGS): Define. | |
10523 | (sparc_option_override): Remove redundant VIS masks and add MASK_SUBXC | |
10524 | for Niagara-7. | |
10525 | (sparc_fixed_condition_code_regs): New function. | |
10526 | (select_cc_mode): Remove ATTRIBUTE_UNUSED. Adjust for CCNZ/CCXNZ | |
10527 | renaming and add support for CCC/CCXC. | |
10528 | (output_cbranch): Likewise. | |
10529 | (sparc_print_operand): Likewise. | |
10530 | (gen_v9_scc): Remove obsolete assertion. | |
10531 | (emit_scc_insn): Emit RTL directly for EQ and NE. Add direct support | |
10532 | for EQ in DImode if TARGET_SUBXC. Remove test on TARGET_VIS3 for GEU. | |
10533 | (output_cbcond): Remove bogus handling of CC modes. | |
10534 | (sparc_register_move_cost): Return 100 for NO_REGS. | |
10535 | * config/sparc/sparc.md (W): New mode iterator. | |
10536 | (length): Adjust for noov_compare64_operator renaming. | |
10537 | (cmpsi_sne): New instruction. | |
10538 | (cmpdi_sne): Likewise. | |
10539 | (seqdi_special): Delete. | |
10540 | (seqdi_special): Likewise. | |
10541 | (snesi<P:mode>_special): Likewise. | |
10542 | (snedi_special): Likewise. | |
10543 | (snedi_special_vis3): Likewise. | |
10544 | (snesi patterns): Use W iterator. | |
10545 | (snedi patterns): Likewise. Add TARGET_SUBXC patterns. | |
10546 | (sltu patterns): Likewise. | |
10547 | (sgeu patterns): Likewise. | |
10548 | (scc splitter): Do not split GEU in DImode if TARGET_SUBXC. | |
10549 | (normal_branch): Use icc_comparison_operator predicate. | |
10550 | (inverted_branch): Likewise. | |
10551 | (cbcond_sp32): Use comparison_operator predicate. | |
10552 | (cbcond_sp64): Likewise. | |
10553 | (normal_int_branch_sp64): Adjust for renaming | |
10554 | (inverted_int_branch_sp64): Likewise. | |
10555 | (mov<I:mode>_cc_reg_sp64): Likewise. | |
10556 | (movsf_cc_reg_sp6): Likewise. | |
10557 | (movdf_cc_reg_sp64): Likewise. | |
10558 | (movtf_cc_reg_hq_sp64): Likewise. | |
10559 | (movtf_cc_reg_sp64): Likewise. | |
10560 | (mov<I:mode>_cc_v9): Use icc_or_fcc_comparison_operator predicate. | |
10561 | (movsf_cc_v9): Likewise. | |
10562 | (movdf_cc_v9): Likewise. | |
10563 | (movtf_cc_hq_v9): Likewise. | |
10564 | (movtf_cc_v9): Likewise. | |
10565 | (adddi3): Call gen_adddi3_sp32. | |
10566 | (adddi3_insn_sp32): Rename to... | |
10567 | (adddi3_sp32): ...this. Accept only register_operand as operand #1 | |
10568 | and use CCCmode for the carry. | |
10569 | (addx_extend_sp32): Use CCCmode for the carry. | |
10570 | (addx_extend_sp64): Delete. | |
10571 | (adddi3_extend_sp32): Use CCCmode for the carry. | |
10572 | (cmp_plus patterns): Use CCNZ/CCXNZ mode and add C variants. | |
10573 | (subdi3): Call gen_subdi3_sp32. | |
10574 | (subdi3_insn_sp32): Rename to... | |
10575 | (subdi3_sp32): ...this and use CCmode for the carry. | |
10576 | (subx_extend_sp32): Use CCCmode for the carry. | |
10577 | (subx_extend_sp64): Delete. | |
10578 | (subdi3_extend_sp32): Use CCmode for the carry. | |
10579 | (cmp_minus patterns): Use CCNZ/CCXNZ mode and add C variants. | |
10580 | (negdi3): Call gen_negdi3_sp32. | |
10581 | (negdi3_sp32): Use CCCmode for the carry. | |
10582 | (cmp_neg patterns): Use CCNZ/CCXNZ mode and add C variants. | |
10583 | (cmp_nz_ashift_1): Use CCNZ mode. | |
10584 | (cmp_nz_set_ashift_1): Likewise. | |
10585 | (ctrapsi4): Use comparison_operator predicate. | |
10586 | (ctrapdi4): Likewise. | |
10587 | (trapsi_insn): Use icc_comparison_operator predicate. | |
10588 | (trapdi_insn): Likewise. | |
10589 | (edge8 patterns): Use CCNZmode. | |
10590 | (edge16 patterns): Likewise. | |
10591 | (edge32 patterns): Likewise. | |
10592 | ||
10593 | 2016-10-11 Eric Botcazou <ebotcazou@adacore.com> | |
10594 | ||
10595 | * config/visium/visium-modes.def (CC_NOOV): Rename into... | |
10596 | (CCNZ): ...this. | |
10597 | (CC_BTST): Rename into... | |
10598 | (CCC): ...this. | |
10599 | * config/visium/predicates.md (real_add_operand): New. | |
10600 | (visium_btst_operator): Rename into... | |
10601 | (visium_equality_comparison_operator): ...this. | |
10602 | (visium_noov_operator): Rename into... | |
10603 | (visium_nz_comparison_operator): ...this. | |
10604 | (visium_c_comparison_operator): New. | |
10605 | (visium_branch_operator): Adjust and deal with all CC modes. | |
10606 | * config/visium/visium.c (visium_adjust_cost): Adjust. | |
10607 | (visium_split_double_add): Use the *_set_carry patterns. | |
10608 | (visium_select_cc_mode): Add support for CCC mode and adjust. | |
10609 | (output_cbranch): Adjust and use the carry-based operators for | |
10610 | floating-point comparisons. | |
10611 | * config/visium/visium.md (flags_subst_arith): Adjust. | |
10612 | (addsi3_insn_set_carry): New instruction. | |
10613 | (subsi3_insn_set_carry): Likewise. | |
10614 | (negsi2_insn_set_carry): Likewise. | |
10615 | (btst): Adjust. | |
10616 | (cmp<mode>_sne): Likewise. | |
10617 | (cbranch<mode>4): Use ordered_comparison_operator. | |
10618 | (cbranch<mode>4_insn): Likewise. | |
10619 | (cbranchsi4_btst_insn): Adjust. | |
10620 | ||
10621 | 2016-10-11 Tom de Vries <tom@codesourcery.com> | |
10622 | ||
10623 | PR middle-end/77558 | |
10624 | * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE | |
10625 | special-casing. | |
10626 | ||
10627 | 2016-10-11 Eric Botcazou <ebotcazou@adacore.com> | |
10628 | ||
10629 | * tree.h (build_complex_type): Add second parameter with default. | |
10630 | * tree.c (build_complex_type): Add NAMED second parameter and adjust | |
10631 | recursive call. Create a TYPE_DECL only if NAMED is true. | |
10632 | (build_common_tree_nodes): Pass true in calls to build_complex_type. | |
10633 | ||
10634 | 2016-10-11 Georg-Johann Lay <avr@gjlay.de> | |
10635 | ||
10636 | New avr-passes.def to register AVR specific passes. | |
10637 | ||
10638 | * config/avr/avr-passes.def: New file. | |
10639 | * config/avr/t-avr (PASSES_EXTRA): Add avr-passes.def. | |
10640 | * config/avr/avr-protos.h (gcc::context, rtl_opt_pass): Declare. | |
10641 | (make_avr_pass_recompute_note): New proto. | |
10642 | * config/avr/avr.c (make_avr_pass_recompute_notes): New function. | |
10643 | (avr_pass_recompute_notes): Use anonymous namespace. | |
10644 | (avr_register_passes): Remove function... | |
10645 | (avr_option_override): ...and its call. | |
10646 | ||
10647 | 2016-10-11 Robert Suchanek <robert.suchanek@imgtec.com> | |
10648 | ||
10649 | * config/mips/mips-cpus.def: Replace PTF_AVOID_BRANCHLIKELY with | |
10650 | PTF_AVOID_BRANCHLIKELY_ALWAYS for generic architecture and with | |
10651 | PTF_AVOID_BRANCHLIKELY_SPEED for others. | |
10652 | (mips2, mips3, mips4): Add PTF_AVOID_BRANCHLIKELY_SIZE to tune | |
10653 | flags. | |
10654 | * config/mips/mips.c (mips_option_override): Enable the branch | |
10655 | likely depending on the tune flags and optimization level. | |
10656 | * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): Remove. | |
10657 | (PTF_AVOID_BRANCHLIKELY_SPEED): Define. | |
10658 | (PTF_AVOID_BRANCHLIKELY_SIZE): Likewise. | |
10659 | (PTF_AVOID_BRANCHLIKELY_ALWAYS): Likewise. | |
10660 | ||
10661 | 2016-10-11 Richard Biener <rguenther@suse.de> | |
10662 | ||
10663 | * lto-streamer-out.c (collect_block_tree_leafs): New helper. | |
10664 | (output_function): Properly stream the whole block tree. | |
10665 | * lto-streamer-in.c (input_function): Likewise. | |
10666 | ||
10667 | 2016-10-11 Marek Polacek <polacek@redhat.com> | |
10668 | ||
10669 | * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o. | |
10670 | ||
10671 | 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org> | |
10672 | ||
10673 | * tree-vrp.c (evrp_dom_walker::try_add_new_range): New. | |
10674 | (evrp_dom_walker::before_dom_children): Infer and push new value | |
10675 | ranges for x in y < x. | |
10676 | ||
10677 | 2016-10-10 Joseph Myers <joseph@codesourcery.com> | |
10678 | ||
10679 | PR target/77586 | |
10680 | * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p) | |
10681 | (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove. | |
10682 | * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise. | |
10683 | * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise. | |
10684 | * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE) | |
10685 | (IA64_NO_LIBGCC_TFMODE): Likewise. | |
10686 | ||
10687 | 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org> | |
10688 | ||
10689 | * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before | |
10690 | copying. | |
10691 | ||
10692 | 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org> | |
10693 | ||
10694 | * config.gcc: Add aarch64-*-freebsd* support. | |
10695 | * config.host: Likewise. | |
10696 | * config/aarch64/aarch64-freebsd.h: New file. | |
10697 | * config/aarch64/t-aarch64-freebsd: Ditto. | |
10698 | ||
10699 | 2016-10-10 Jeff Law <law@redhat.com> | |
10700 | ||
10701 | PR tree-optimization/71947 | |
10702 | * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then | |
10703 | B with A within a single statement. | |
10704 | ||
10705 | 2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
10706 | ||
10707 | PR tree-optimization/77824 | |
10708 | * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return | |
10709 | zero cost for copies. | |
10710 | (find_candidates_dom_walker::before_dom_children): Replace | |
10711 | MODIFY_EXPR with SSA_NAME. | |
10712 | (replace_mult_candidate): Likewise. | |
10713 | (replace_profitable_candidates): Likewise. | |
10714 | ||
10715 | 2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
10716 | ||
10717 | * config/s390/s390.h: Wrap more macros args in brackets and fix | |
10718 | ||
10719 | 2016-10-10 Georg-Johann Lay <avr@gjlay.de> | |
10720 | ||
10721 | * config/avr/gen-avr-mmcu-texi.c (string.h): Include. | |
10722 | ||
10723 | 2016-10-10 Andreas Schwab <schwab@suse.de> | |
10724 | ||
10725 | PR target/77738 | |
10726 | * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop | |
10727 | pseudo is not DImode. | |
10728 | ||
10729 | 2016-10-10 Claudiu Zissulescu <claziss@synopsys.com> | |
10730 | ||
10731 | * common/config/arc/arc-common.c (arc_option_optimization_table): | |
10732 | Remove compact casesi option. | |
10733 | * config/arc/arc.c (arc_override_options): Use compact casesi | |
10734 | option only for pre-ARCv2 cores. | |
10735 | * doc/invoke.texi (mcompact-casesi): Update text. | |
10736 | ||
10737 | 2016-10-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
10738 | ||
10739 | * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED): | |
10740 | Add macro to say we can efficiently handle overlapping unaligned | |
10741 | loads. | |
10742 | * config/rs6000/rs6000.c (expand_block_compare): Avoid generating | |
10743 | poor code for processors older than p8. | |
10744 | ||
10745 | 2016-10-09 Eric Botcazou <ebotcazou@adacore.com> | |
10746 | ||
10747 | * gen-pass-instances.awk: Remove GNUism. | |
10748 | ||
10749 | 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
10750 | ||
10751 | * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to | |
10752 | NULL of (*ipcp_transformations)][node->uid]. | |
10753 | ||
10754 | 2016-10-09 John David Anglin <danglin@gcc.gnu.org> | |
10755 | ||
10756 | * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment. | |
10757 | (MALLOC_ABI_ALIGNMENT): Define. | |
10758 | ||
10759 | 2016-10-09 Jakub Jelinek <jakub@redhat.com> | |
10760 | ||
10761 | * tree-ssa.c (target_for_debug_bind, verify_phi_args, | |
10762 | ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or | |
10763 | VAR_OR_FUNCTION_DECL_P macros. | |
10764 | * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds, | |
10765 | chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref, | |
10766 | chkp_find_bounds_1): Likewise. | |
10767 | * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise. | |
10768 | * hsa-gen.c (get_symbol_for_decl): Likewise. | |
10769 | * cgraphunit.c (check_global_declaration, analyze_functions, | |
10770 | handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk): | |
10771 | Likewise. | |
10772 | * gimple-fold.c (can_refer_decl_in_current_unit_p, | |
10773 | canonicalize_constructor_val, gimple_get_virt_method_for_vtable): | |
10774 | Likewise. | |
10775 | * tree.c (set_decl_section_name, copy_node_stat, | |
10776 | need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r, | |
10777 | merge_dllimport_decl_attributes, handle_dll_attribute, | |
10778 | decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p, | |
10779 | verify_type): Likewise. | |
10780 | * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior, | |
10781 | find_explicit_erroneous_behavior): Likewise. | |
10782 | * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise. | |
10783 | * ipa.c (process_references): Likewise. | |
10784 | * tree-chkp-opt.c (chkp_get_check_result): Likewise. | |
10785 | * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl, | |
10786 | notice_global_symbol, assemble_variable, mark_decl_referenced, | |
10787 | build_constant_desc, output_constant_def_contents, do_assemble_alias, | |
10788 | make_decl_one_only, default_section_type_flags, | |
10789 | categorize_decl_for_section, default_encode_section_info): Likewise. | |
10790 | * trans-mem.c (requires_barrier): Likewise. | |
10791 | * gimple-expr.c (mark_addressable): Likewise. | |
10792 | * cfgexpand.c (add_scope_conflicts_1, expand_one_var, | |
10793 | expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p, | |
10794 | expand_debug_expr): Likewise. | |
10795 | * tree-dump.c (dequeue_and_dump): Likewise. | |
10796 | * ubsan.c (instrument_bool_enum_load): Likewise. | |
10797 | * tree-pretty-print.c (print_declaration): Likewise. | |
10798 | * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. | |
10799 | * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise. | |
10800 | * asan.c (asan_protect_global, instrument_derefs): Likewise. | |
10801 | * tree-into-ssa.c (rewrite_stmt, maybe_register_def, | |
10802 | pass_build_ssa::execute): Likewise. | |
10803 | * var-tracking.c (var_debug_decl, track_expr_p): Likewise. | |
10804 | * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost): | |
10805 | Likewise. | |
10806 | * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use): | |
10807 | Likewise. | |
10808 | * tree-inline.c (insert_debug_decl_map, remap_ssa_name, | |
10809 | can_be_nonlocal, remap_decls, copy_debug_stmt, | |
10810 | initialize_inlined_parameters, add_local_variables, | |
10811 | reset_debug_binding, replace_locals_op): Likewise. | |
10812 | * dse.c (can_escape): Likewise. | |
10813 | * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p): | |
10814 | Likewise. | |
10815 | * tree-diagnostic.c (default_tree_printer): Likewise. | |
10816 | * tree-streamer-in.c (unpack_ts_decl_common_value_fields, | |
10817 | unpack_ts_decl_with_vis_value_fields, | |
10818 | lto_input_ts_decl_common_tree_pointers): Likewise. | |
10819 | * builtins.c (builtin_save_expr, fold_builtin_expect, | |
10820 | readonly_data_expr): Likewise. | |
10821 | * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var, | |
10822 | create_variable_info_for, set_uids_in_ptset, visit_loadstore): | |
10823 | Likewise. | |
10824 | * gimple-streamer-out.c (output_gimple_stmt): Likewise. | |
10825 | * gimplify.c (force_constant_size, gimplify_bind_expr, | |
10826 | gimplify_decl_expr, gimplify_var_or_parm_decl, | |
10827 | gimplify_compound_lval, gimplify_init_constructor, | |
10828 | gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare, | |
10829 | gimplify_type_sizes): Likewise. | |
10830 | * cgraphbuild.c (record_reference, record_type_list, mark_address, | |
10831 | mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise. | |
10832 | * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p, | |
10833 | remove_unused_locals): Likewise. | |
10834 | * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal, | |
10835 | ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise. | |
10836 | * function.c (instantiate_expr, instantiate_decls_1, | |
10837 | setjmp_vars_warning, add_local_decl): Likewise. | |
10838 | * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs): | |
10839 | Likewise. | |
10840 | * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op, | |
10841 | va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes, | |
10842 | optimize_va_list_gpr_fpr_size): Likewise. | |
10843 | * tree-nrv.c (pass_nrv::execute): Likewise. | |
10844 | * tsan.c (instrument_expr): Likewise. | |
10845 | * tree-ssa-dce.c (remove_dead_stmt): Likewise. | |
10846 | * vtable-verify.c (verify_bb_vtables): Likewise. | |
10847 | * tree-dfa.c (ssa_default_def, set_ssa_default_def, | |
10848 | get_ref_base_and_extent): Likewise. | |
10849 | * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2): | |
10850 | Likewise. | |
10851 | * tree-sra.c (static bool constant_decl_p, find_var_candidates, | |
10852 | analyze_all_variable_accesses): Likewise. | |
10853 | * tree-nested.c (get_nonlocal_debug_decl, | |
10854 | convert_nonlocal_omp_clauses, note_nonlocal_vla_type, | |
10855 | note_nonlocal_block_vlas, convert_nonlocal_reference_stmt, | |
10856 | get_local_debug_decl, convert_local_omp_clauses, | |
10857 | convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls): | |
10858 | Likewise. | |
10859 | * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise. | |
10860 | * stmt.c (decl_overlaps_hard_reg_set_p): Likewise. | |
10861 | * dbxout.c (dbxout_late_global_decl, dbxout_type_fields, | |
10862 | dbxout_symbol, dbxout_common_check): Likewise. | |
10863 | * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1, | |
10864 | string_constant): Likewise. | |
10865 | * hsa.c (hsa_get_declaration_name): Likewise. | |
10866 | * passes.c (rest_of_decl_compilation): Likewise. | |
10867 | * tree-ssanames.c (make_ssa_name_fn): Likewise. | |
10868 | * tree-streamer-out.c (pack_ts_decl_common_value_fields, | |
10869 | pack_ts_decl_with_vis_value_fields, | |
10870 | write_ts_decl_common_tree_pointers): Likewise. | |
10871 | * stor-layout.c (place_field): Likewise. | |
10872 | * symtab.c (symtab_node::maybe_create_reference, | |
10873 | symtab_node::verify_base, symtab_node::make_decl_local, | |
10874 | symtab_node::copy_visibility_from, | |
10875 | symtab_node::can_increase_alignment_p): Likewise. | |
10876 | * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor, | |
10877 | decl_by_reference_p, reference_to_unused, rtl_for_decl_location, | |
10878 | fortran_common, add_location_or_const_value_attribute, | |
10879 | add_scalar_info, add_linkage_name, set_block_abstract_flags, | |
10880 | local_function_static, gen_variable_die, dwarf2out_late_global_decl, | |
10881 | optimize_one_addr_into_implicit_ptr, | |
10882 | optimize_location_into_implicit_ptr): Likewise. | |
10883 | * gimple-low.c (record_vars_into): Likewise. | |
10884 | * ipa-visibility.c (update_vtable_references): Likewise. | |
10885 | * tree-ssa-address.c (fixed_address_object_p, copy_ref_info): | |
10886 | Likewise. | |
10887 | * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value, | |
10888 | DFS::DFS_write_tree_body, write_symbol): Likewise. | |
10889 | * langhooks.c (lhd_warn_unused_global_decl, | |
10890 | lhd_set_decl_assembler_name): Likewise. | |
10891 | * attribs.c (decl_attributes): Likewise. | |
10892 | * except.c (output_ttype): Likewise. | |
10893 | * varpool.c (varpool_node::get_create, ctor_for_folding, | |
10894 | varpool_node::assemble_decl, varpool_node::create_alias): Likewise. | |
10895 | * fold-const.c (fold_unary_loc): Likewise. | |
10896 | * ipa-prop.c (ipa_compute_jump_functions_for_edge, | |
10897 | ipa_find_agg_cst_from_init): Likewise. | |
10898 | * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg, | |
10899 | expand_omp_target, lower_omp_regimplify_p, | |
10900 | grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls, | |
10901 | find_link_var_op): Likewise. | |
10902 | * tree-chrec.c (chrec_contains_symbols): Likewise. | |
10903 | * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1, | |
10904 | gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates, | |
10905 | execute_fixup_cfg): Likewise. | |
10906 | ||
10907 | PR tree-optimization/77901 | |
10908 | * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize | |
10909 | if ranges[i].exp is SSA_NAME when looking for >= and only when | |
10910 | ranges[i].exp is NULL or SSA_NAME when looking for the other | |
10911 | comparison. | |
10912 | ||
10913 | 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
10914 | ||
10915 | * ipa-cp.c (ipcp_alignment_lattice): Remove. | |
10916 | (ipcp_param_lattices): Remove field alignment. | |
10917 | (print_all_lattices): Remove call to ipcp_alignment_lattice::print. | |
10918 | (set_all_contains_variable): Remove call to | |
10919 | ipcp_alignment_lattice::set_to_bottom. | |
10920 | (initialize_node_lattices): Likewise. | |
10921 | (propagate_alignment_accross_jump_function): Remove. | |
10922 | (propagate_constants_accross_call): Remove call to | |
10923 | propagate_alignment_accross_jump_function. | |
10924 | (ipcp_store_alignment_results): Remove. | |
10925 | (ipcp_driver): Remove call to ipcp_store_alignment_results. | |
10926 | (propagate_bits_accross_jump_function): Handle ancestor jump function. | |
10927 | * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove | |
10928 | pretty-printing of alignment jump function. | |
10929 | (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known. | |
10930 | (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for | |
10931 | alignments and remove computing ipa_alignment jump function. | |
10932 | (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments. | |
10933 | (ipa_write_jump_functions): Remove streaming for ipa_alignment. | |
10934 | (ipa_read_jump_function): Remove reading of ipa_alignment. | |
10935 | (write_ipcp_transformation_info): Remove streaming for alignment | |
10936 | propagation summary. | |
10937 | (read_ipcp_transformation_info): Remove reading of alignment | |
10938 | propagation summary. | |
10939 | (ipcp_update_alignments): Remove. | |
10940 | (ipcp_update_bits): Adjust to set alignment for parameters of pointer | |
10941 | type. | |
10942 | (ipcp_transform_function): Remove call to ipcp_update_alignments() | |
10943 | and remove assignment to (*ipcp_transformations)[node->uid].alignments. | |
10944 | * ipa-prop.h (ipa_alignment): Remove. | |
10945 | (ipa_jump_func): Remove field alignment. | |
10946 | (ipcp_transformation_summary): Remove field alignments. | |
10947 | * doc/invoke.texi: Mark fipa-cp-alignment as obsolete. | |
10948 | * opts.c (default_options_table): Remove entry for fipa-cp-alignment. | |
10949 | (enable_fdo_optimizations): Remove checking for fipa-cp-alignment. | |
10950 | ||
10951 | 2016-10-08 Eric Botcazou <ebotcazou@adacore.com> | |
10952 | ||
10953 | * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc. | |
10954 | ||
10955 | * config/visium/visium.c (visium_expand_int_cstore): Revert latest | |
10956 | change. | |
10957 | (visium_expand_fp_cstore): Likewise. | |
10958 | ||
10959 | 2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
10960 | ||
10961 | * diagnostic-core.h (warning_at_rich_loc_n): Declare. | |
10962 | * diagnostic.c (warning_at_rich_loc_n): New function. | |
10963 | (diagnostic_n_impl_richloc): Likewise. | |
10964 | (diagnostic_n_impl): Move most of the function to | |
10965 | diagnostic_n_impl_richloc and call it. | |
10966 | ||
10967 | 2016-10-08 Jakub Jelinek <jakub@redhat.com> | |
10968 | ||
10969 | * gen-pass-instances.awk: Rewritten. | |
10970 | * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass | |
10971 | $(PASSES_EXTRA) after passes.def to the script. | |
10972 | * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def. | |
10973 | * config/i386/i386-passes.def: New file. | |
10974 | * config/i386/i386-protos.h (make_pass_insert_vzeroupper, | |
10975 | make_pass_stv): Declare. | |
10976 | * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to | |
10977 | false. | |
10978 | (pass_stv::gate): Depending on timode_p member require TARGET_64BIT | |
10979 | or !TARGET_64BIT. | |
10980 | (pass_stv::clone, pass_stv::set_pass_param): New methods. | |
10981 | (pass_stv::timode_p): New non-static data member. | |
10982 | (ix86_option_override): Don't register passes here. | |
10983 | ||
10984 | * doc/invoke.texi: Document accepting Else, fallthrough. | |
10985 | ||
10986 | * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment | |
10987 | style changes. | |
10988 | ||
10989 | * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted | |
10990 | FALLTHRU comment styles. | |
10991 | ||
10992 | 2016-10-07 Andrew Pinski <apinski@cavium.com> | |
10993 | ||
10994 | * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end. | |
10995 | * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise. | |
10996 | * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR): | |
10997 | Likewise. | |
10998 | * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION): | |
10999 | Likewise. | |
11000 | * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION): | |
11001 | Likewise. | |
11002 | * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here. | |
11003 | (AARCH64_ARCH): Likewise. | |
11004 | * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION): | |
11005 | Likewise. | |
11006 | (AARCH64_CORE): Likewise. | |
11007 | (AARCH64_ARCH): Likewise. | |
11008 | * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise. | |
11009 | (AARCH64_EXTRA_TUNING_OPTION): Likewise. | |
11010 | * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise. | |
11011 | (AARCH64_EXTRA_TUNING_OPTION): Likewise. | |
11012 | (AARCH64_ARCH): Likewise. | |
11013 | (AARCH64_CORE): Likewise. | |
11014 | * config/aarch64/aarch64.h (AARCH64_CORE): Likewise. | |
11015 | * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise. | |
11016 | (AARCH64_CORE): Likewise. | |
11017 | (AARCH64_ARCH): Likewise. | |
11018 | ||
11019 | 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com> | |
11020 | ||
11021 | * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split | |
11022 | -mfloat128 into -mfloat128-type that enables the IEEE 128-bit | |
11023 | floating point type infrastructre, and -mfloat128 that enables the | |
11024 | keyword. Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__ | |
11025 | if -mfloat128-type. Define __ibm128 to be long double by default. | |
11026 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether | |
11027 | the IEEE 128-bit floating point type infrastructure should | |
11028 | automatically be enabled. | |
11029 | (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type | |
11030 | instead of -mfloat128 to enable KFmode. | |
11031 | (rs6000_option_override_internal): Split the option -mfloat128 | |
11032 | into -mfloat128-type and -mfloat128. On Linux PowerPC 64-bit | |
11033 | systems, automatically set -mfloat128-type, but don't enable it on | |
11034 | other operating systems. Move setting the long double size and | |
11035 | IEEE quad support before the IEEE 128-bit floating point changes. | |
11036 | (rs6000_init_builtins): Do not create a unique type for __ibm128 | |
11037 | if long double is IBM extended double, instead rely on __ibm128 | |
11038 | being defined as 'long double'. If -mfloat128-type and not | |
11039 | -mfloat128, create the KFmode type with an undocumented __ieee128 | |
11040 | keyword. | |
11041 | (rs6000_init_libfuncs): Use -mfloat128-type instead of | |
11042 | -mfloat128 for tests about the types, but keep tests for | |
11043 | -mfloat128 to enable the keyword support. | |
11044 | (rs6000_complex_function_value): Likewise. | |
11045 | (rs6000_scalar_mode_supported_p): Likewise. | |
11046 | (rs6000_floatn_mode): Likewise. | |
11047 | (rs6000_c_mode_for_suffix): Likewise. | |
11048 | (rs6000_opt_masks): Add -mfloat128-type. | |
11049 | * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for | |
11050 | -mfloat128-type being split from -mfloat128. Add | |
11051 | -mfloat128-hardware, which was missing. | |
11052 | * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into | |
11053 | -mfloat128 and -mfloat128-type: | |
11054 | (-mfloat128-type): Likewise. | |
11055 | * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so | |
11056 | that 64-bit Linux systems with enable -mfloat128-type by default | |
11057 | on VSX systems. | |
11058 | * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise. | |
11059 | (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use | |
11060 | -mfloat128-type instead of -mfloat128. | |
11061 | (FLOAT128_2REG_P): Likewise. | |
11062 | (MASK_FLOAT128_TYPE): Likewise. | |
11063 | (ALTIVEC_ARG_MAX_RETURN): Likewise. | |
11064 | (RS6000_BTM_FLOAT128): Likewise. | |
11065 | (TARGET_FLOAT128): Poison old identifiers. | |
11066 | (OPTION_MASK_FLOAT128): Likewise. | |
11067 | (MASK_FLOAT128): Likewise. | |
11068 | * config/rs6000/rs6000.md (FP): Likewise. | |
11069 | (FLOAT128): Likewise. | |
11070 | (fix_trunc<mode>di2): Likewise. | |
11071 | (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise. | |
11072 | (floatdi<mode>2): Likewise. | |
11073 | (floatuns<SDI:mode><IEEE128:mode>2): Likewise. | |
11074 | (neg<mode>2, FLOAT128 iterator): Likewise. | |
11075 | (abs<mode>2, FLOAT128 iterator): Likewise. | |
11076 | (ieee_128bit_negative_zero): Likewise. | |
11077 | (ieee_128bit_vsx_neg<mode>2): Likewise. | |
11078 | (ieee_128bit_vsx_neg<mode>2_internal): Likewise. | |
11079 | (ieee_128bit_vsx_abs<mode>2): Likewise. | |
11080 | (ieee_128bit_vsx_abs<mode>2_internal): Likewise. | |
11081 | (ieee_128bit_vsx_nabs<mode>2): Likewise. | |
11082 | (ieee_128bit_vsx_nabs<mode>2_internal): Likewise. | |
11083 | (extendiftf2): Likewise. | |
11084 | (extendifkf2): Likewise. | |
11085 | (extendtfkf2): Likewise. | |
11086 | (trunciftf2): Likewise. | |
11087 | (truncifkf2): Likewise. | |
11088 | (trunckftf2): Likewise. | |
11089 | (trunctfif2): Likewise. | |
11090 | (extendkftf2): Likewise. | |
11091 | (trunctfkf2): Likewise. | |
11092 | ||
11093 | 2016-10-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
11094 | ||
11095 | * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array | |
11096 | before merging in bytes to pass down to real_from_target. | |
11097 | ||
11098 | 2016-10-07 Richard Biener <rguenther@suse.de> | |
11099 | ||
11100 | * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer | |
11101 | required hack. | |
11102 | (substitute_and_fold_dom_walker::before_dom_children): | |
11103 | Substitute and fold before pass specific folding to avoid | |
11104 | feeding that with SSA names that will be later released. | |
11105 | * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names | |
11106 | introduced by folding and visited by evaluate_stmt called during | |
11107 | ccp_fold_stmt. | |
11108 | (likely_value): Likewise. | |
11109 | (evaluate_stmt): Likewise. | |
11110 | * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt. | |
11111 | (simplify_div_or_mod_using_ranges): Likewise. | |
11112 | (simplify_min_or_max_using_ranges): Likewise. | |
11113 | (simplify_abs_using_ranges): Likewise. | |
11114 | (simplify_conversion_using_ranges): Likewise. | |
11115 | (simplify_float_conversion_using_ranges): Likewise. | |
11116 | (simplify_stmt_using_ranges): Likewise. | |
11117 | ||
11118 | 2016-10-07 Marek Polacek <polacek@redhat.com> | |
11119 | ||
11120 | * gimplify.c (should_warn_for_implicit_fallthrough): Check for | |
11121 | FALLTHROUGH_LABEL_P here... | |
11122 | (warn_implicit_fallthrough_r): ...not here. | |
11123 | ||
11124 | 2016-10-07 Bernd Schmidt <bschmidt@redhat.com> | |
11125 | ||
11126 | PR tree-optimization/77880 | |
11127 | * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where | |
11128 | necessary. | |
11129 | ||
11130 | 2016-10-07 Marek Polacek <polacek@redhat.com> | |
11131 | ||
11132 | PR c++/77803 | |
11133 | * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH (). | |
11134 | ||
11135 | 2016-10-07 Richard Biener <rguenther@suse.de> | |
11136 | ||
11137 | * bitmap.h: Document constraints on bitmap modification while | |
11138 | iterating over it. | |
11139 | ||
11140 | 2016-10-07 Richard Biener <rguenther@suse.de> | |
11141 | ||
11142 | * bitmap.c (bitmap_elem_to_freelist): Set indx to -1. | |
11143 | * bitmap.h (bmp_iter_set): When advancing to the next element | |
11144 | check that we didn't remove the current one. | |
11145 | (bmp_iter_and): Likewise. | |
11146 | (bmp_iter_and_compl): Likewise. | |
11147 | * tree-ssa.c (release_defs_bitset): Do not remove worklist bit | |
11148 | we currently iterate on but keep a one-level queue. | |
11149 | * sched-deps.c (remove_from_deps): Do not clear current bit | |
11150 | but keep a one-level queue. | |
11151 | ||
11152 | 2016-10-07 Jakub Jelinek <jakub@redhat.com> | |
11153 | ||
11154 | PR tree-optimization/77664 | |
11155 | * tree-ssa-reassoc.c (update_range_test): Also clear low and high | |
11156 | for the other ranges. | |
11157 | (optimize_range_tests_diff): Fix up formatting. | |
11158 | (optimize_range_tests_var_bound): New function. | |
11159 | (optimize_range_tests): Use it. | |
11160 | ||
11161 | 2016-10-07 Martin Liska <mliska@suse.cz> | |
11162 | ||
11163 | * coverage.c (build_gcov_exit_decl): Fix priority what | |
11164 | should be really 99. | |
11165 | ||
11166 | 2016-10-07 Richard Biener <rguenther@suse.de> | |
11167 | ||
11168 | * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of | |
11169 | vars in gimple_bind_vars but not in BLOCK_VARS. | |
11170 | ||
11171 | 2016-10-07 Richard Biener <rguenther@suse.de> | |
11172 | ||
11173 | PR tree-optimization/77879 | |
11174 | * tree-ssa-structalias.c (handle_const_call): Properly handle | |
11175 | NRV return slots. | |
11176 | (handle_pure_call): Likewise. | |
11177 | ||
11178 | 2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
11179 | ||
11180 | * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor) | |
11181 | (rs6000_elf_asm_out_destructor): increase size of buf to avoid | |
11182 | possible overflow. | |
11183 | ||
11184 | 2016-10-06 Andrew Pinski <apinski@cavium.com> | |
11185 | ||
11186 | * config/aarch64/aarch64-cores.def: Add a comment before each | |
11187 | set of cores. | |
11188 | ||
11189 | 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org> | |
11190 | ||
11191 | PR tree-optimization/77862 | |
11192 | * tree-vrp.c (add_equivalence): Use get_value_range so that | |
11193 | num_vr_values is checked before accessing vr_values. | |
11194 | ||
11195 | 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org> | |
11196 | ||
11197 | * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle | |
11198 | POINTER_TYPE_P. | |
11199 | ||
11200 | 2016-10-05 Jeff Law <law@redhat.com> | |
11201 | ||
11202 | PR tree-optimization/71661 | |
11203 | * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when | |
11204 | removal of a forwarder exposes a new natural loop. | |
11205 | ||
11206 | 2016-10-06 Uros Bizjak <ubizjak@gmail.com> | |
11207 | ||
11208 | * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments. | |
11209 | Introduce ssesuffix variable. | |
11210 | (<mask_codefor><code><mode>3<mask_name>): Ditto. | |
11211 | (*<code><mode>3): Ditto. | |
11212 | ||
11213 | 2016-10-06 Jan Hubicka <hubicka@ucw.cz> | |
11214 | ||
11215 | * postreload.c (reload_cse_simplify): Skip also USE when detecting | |
11216 | noop move. | |
11217 | ||
11218 | 2016-10-06 Richard Biener <rguenther@suse.de> | |
11219 | ||
11220 | PR tree-optimization/77855 | |
11221 | * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove | |
11222 | instead of removing the current item while iterating over the set | |
11223 | which is not safe. | |
11224 | ||
11225 | 2016-10-06 James Clarke <jrtc27@jrtc27.com> | |
11226 | Eric Botcazou <ebotcazou@adacore.com> | |
11227 | ||
11228 | PR target/77759 | |
11229 | * config/sparc/sparc.c (classify_data_t): Remove int_regs field. | |
11230 | (classify_registers): Don't set it | |
11231 | (function_arg_slotno): Don't initialize and test it. Tidy up. | |
11232 | ||
11233 | 2016-10-06 Richard Biener <rguenther@suse.de> | |
11234 | ||
11235 | PR tree-optimization/77839 | |
11236 | * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value | |
11237 | lattice transition. | |
11238 | ||
11239 | 2016-10-06 Martin Liska <mliska@suse.cz> | |
11240 | ||
11241 | * gcc.c: Set -fprofile-update=atomic when profiling is | |
11242 | enabled and -pthread is set. Warn when one combines | |
11243 | -pthread and -fprofile-update=single for an app using | |
11244 | profiling code. | |
11245 | ||
11246 | 2016-10-06 Martin Liska <mliska@suse.cz> | |
11247 | ||
11248 | PR bootstrap/77788 | |
11249 | * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert. | |
11250 | * gimple-ssa-strength-reduction.c (slsr_process_cast): | |
11251 | Initialize a pointer to NULL. | |
11252 | (slsr_process_copy): Likewise. | |
11253 | * input.c (location_get_source_line): Likewise. | |
11254 | * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. | |
11255 | ||
11256 | 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com> | |
11257 | ||
11258 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET, | |
11259 | OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions. | |
11260 | (ix86_handle_option): Deleted handle of OPT_mpcommit. | |
11261 | * config.gcc: Deleted pcommitintrin.h | |
11262 | * config/i386/pcommitintrin.h: Deleted file. | |
11263 | * config/i386/cpuid.h (bit_PCOMMIT): Deleted. | |
11264 | * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit | |
11265 | detection. | |
11266 | * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define | |
11267 | __PCOMMIT__. | |
11268 | * config/i386/i386.c (ix86_target_string): Deleted -mpcommit. | |
11269 | (PTA_PCOMMIT): Deleted define. | |
11270 | (ix86_option_override_internal): Deleted handle of option. | |
11271 | (ix86_valid_target_attribute_inner_p): Deleted pcommit. | |
11272 | * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT, | |
11273 | __builtin_ia32_pcommit): Deleted. | |
11274 | * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted. | |
11275 | * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT. | |
11276 | (pcommit): Deleted instruction. | |
11277 | * config/i386/i386.opt: Mention -mpcommit deprecation. | |
11278 | * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h. | |
11279 | ||
11280 | 2016-10-05 Uros Bizjak <ubizjak@gmail.com> | |
11281 | ||
11282 | PR target/77874 | |
11283 | * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>): | |
11284 | Remove wrong assert. | |
11285 | (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>: | |
11286 | Use <round_constraint> as operand 1 constraint. | |
11287 | ||
11288 | 2016-10-05 Jakub Jelinek <jakub@redhat.com> | |
11289 | ||
11290 | PR sanitizer/66343 | |
11291 | * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here. | |
11292 | (ubsan_instrument_float_cast): And not here. | |
11293 | ||
11294 | PR sanitizer/66343 | |
11295 | * ubsan.c (ubsan_ids): New GTY(()) array. | |
11296 | (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids | |
11297 | instead of static local counters. | |
11298 | ||
11299 | 2016-10-05 Martin Sebor <msebor@redhat.com> | |
11300 | ||
11301 | PR bootstrap/77819 | |
11302 | * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro. | |
11303 | * config/linux.c (gnu_libc_printf_pointer_format): Remove. | |
11304 | * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC] | |
11305 | (default_printf_pointer_format): Define function. | |
11306 | * targhooks.c (linux_printf_pointer_format): Define new function. | |
11307 | * targhooks.h (linux_printf_pointer_format): Declare. | |
11308 | (gnu_libc_printf_pointer_format): Remove declaration. | |
11309 | ||
11310 | 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
11311 | ||
11312 | * fold-const.c (native_encode_real): Fix logic for selecting offset | |
11313 | to write to when BYTES_BIG_ENDIAN. | |
11314 | ||
11315 | 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com> | |
11316 | ||
11317 | * builtins.c (fold_builtin_strchr): Remove function. | |
11318 | (fold_builtin_strrchr): Likewise. | |
11319 | (fold_builtin2): Remove strchr, index, strrchr, rindex cases. | |
11320 | * gimple-fold.c (target_char_cst_p): New function. | |
11321 | (gimple_fold_builtin_strchr) Add more foldings. | |
11322 | (gimple_fold_builtin): Add index, strrchr, rindex cases. | |
11323 | ||
11324 | 2016-10-05 Richard Biener <rguenther@suse.de> | |
11325 | ||
11326 | PR middle-end/77863 | |
11327 | * genmatch.c (capture_info::walk_c_expr): Diagnose unknown | |
11328 | capture ids in c-exprs. | |
11329 | ||
11330 | 2016-10-05 Richard Biener <rguenther@suse.de> | |
11331 | ||
11332 | PR middle-end/77826 | |
11333 | * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p | |
11334 | with types_match for GIMPLE code gen to handle type mismatched | |
11335 | constants properly. | |
11336 | (dt_operand::gen): Adjust. | |
11337 | * match.pd ((X /[ex] A) * A -> X): Properly handle converted | |
11338 | and constant A. | |
11339 | ||
11340 | 2016-10-05 Richard Biener <rguenther@suse.de> | |
11341 | ||
11342 | * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern. | |
11343 | ||
11344 | 2016-10-05 Richard Biener <rguenther@suse.de> | |
11345 | ||
11346 | PR middle-end/77842 | |
11347 | * genmatch.c (parser::parse_c_expr): Handle premature EOF. | |
11348 | ||
11349 | 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com> | |
11350 | ||
11351 | * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF | |
11352 | version check to protect only DW_TAG_imported_module generation. | |
11353 | ||
11354 | 2016-10-05 Richard Biener <rguenther@suse.de> | |
11355 | ||
11356 | PR middle-end/55152 | |
11357 | * match.pd (min(a,-a) -> -abs(a)): New pattern. | |
11358 | ||
11359 | 2016-10-04 Ian Lance Taylor <iant@golang.org> | |
11360 | ||
11361 | * explow.c (allocate_dynamic_stack_space): Call | |
11362 | do_pending_stack_adjust before handling flag_split_stack. | |
11363 | ||
11364 | 2016-10-04 David Malcolm <dmalcolm@redhat.com> | |
11365 | ||
11366 | * genattrtab.c (make_internal_attr): Supply dummy column number to | |
11367 | file_location ctor. | |
11368 | (main): Likewise. | |
11369 | * genoutput.c (init_insn_for_nothing): Likewise. | |
11370 | * gensupport.c (add_define_attr): Likewise. | |
11371 | * read-md.c (message_at_1): Print column number. | |
11372 | (fatal_with_file_and_line): Likewise. | |
11373 | (rtx_reader::read_char): Track column numbers. | |
11374 | (rtx_reader::unread_char): Likewise. | |
11375 | (rtx_reader::rtx_reader): Initialize m_read_md_colno. | |
11376 | (rtx_reader::handle_include): Stash and restore m_read_md_colno. | |
11377 | (rtx_reader::handle_file): Initialize m_read_md_colno. | |
11378 | (rtx_reader::get_current_location): Supply column number to | |
11379 | file_location ctor. | |
11380 | * read-md.h (struct file_location): Add field "colno". | |
11381 | (file_location::file_location): Likewise. | |
11382 | (rtx_reader::get_colno): New accessor. | |
11383 | (rtx_reader::m_read_md_colno): New field. | |
11384 | (rtx_reader::m_last_line_colno): New field. | |
11385 | ||
11386 | 2016-10-04 Jakub Jelinek <jakub@redhat.com> | |
11387 | ||
11388 | * doc/extend.texi (Java Exceptions): Remove. | |
11389 | (java_interface): Remove. | |
11390 | ||
11391 | 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com> | |
11392 | ||
11393 | PR tree-optimization/77808 | |
11394 | * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr | |
11395 | and addr are different before copying points-to information. | |
11396 | ||
11397 | 2016-10-04 Uros Bizjak <ubizjak@gmail.com> | |
11398 | ||
11399 | * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove. | |
11400 | * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove. | |
11401 | * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead | |
11402 | of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops. | |
11403 | ||
11404 | 2016-10-04 Richard Biener <rguenther@suse.de> | |
11405 | ||
11406 | PR tree-optimization/77399 | |
11407 | * tree-ssa-forwprop.c (simplify_vector_constructor): Properly | |
11408 | verify the target can convert. | |
11409 | ||
11410 | 2016-10-04 Richard Biener <rguenther@suse.de> | |
11411 | ||
11412 | PR middle-end/77833 | |
11413 | * explow.c (plus_constant): Verify the mode of the constant | |
11414 | pool offset before calling plus_constant. | |
11415 | ||
11416 | 2016-10-04 Richard Biener <rguenther@suse.de> | |
11417 | ||
11418 | PR middle-end/77407 | |
11419 | * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector | |
11420 | type support, mark with :C. | |
11421 | (X / -X -> -1): Mark with :C. | |
11422 | ||
11423 | 2016-10-04 Jakub Jelinek <jakub@redhat.com> | |
11424 | ||
11425 | * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove. | |
11426 | * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison. | |
11427 | * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove. | |
11428 | * doc/tm.texi: Regenerated. | |
11429 | * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove. | |
11430 | * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove. | |
11431 | * config/darwin.h (JCR_SECTION_NAME): Remove. | |
11432 | * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove. | |
11433 | * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove. | |
11434 | * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove. | |
11435 | * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove. | |
11436 | * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove. | |
11437 | * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove. | |
11438 | ||
11439 | 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
11440 | ||
11441 | * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space | |
11442 | between "because" and "param" in dump message in call to fprintf. | |
11443 | ||
11444 | 2016-10-03 Jeff Law <law@redhat.com> | |
11445 | ||
11446 | PR tree-optimization/71550 | |
11447 | PR tree-optimization/71403 | |
11448 | * tree-ssa-threadbackward.c: Include tree-vectorizer.h | |
11449 | (profitable_jump_thread_path): Also return boolean indicating if | |
11450 | the realized path will create an irreducible loop. | |
11451 | Remove loop depth tests from 71403. | |
11452 | (fsm_find_control_statement_thread_paths): Remove loop depth tests | |
11453 | from 71403. If threading will create an irreducible loop, then | |
11454 | throw away loop iteration and related information. | |
11455 | ||
11456 | 2016-10-03 Uros Bizjak <ubizjak@gmail.com> | |
11457 | ||
11458 | * configure.ac (strict_warn): Merge -Wmissing-format-attribute and | |
11459 | -Woverloaded-virtual checks for warning options. | |
11460 | * configure: Regenerate. | |
11461 | ||
11462 | 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
11463 | ||
11464 | PR preprocessor/77699 | |
11465 | * input.c (maybe_grow): Don't allocate one byte extra headroom. | |
11466 | (get_next_line): Return false on error. | |
11467 | (read_next_line): Removed, use get_next_line instead. | |
11468 | (read_line_num): Don't copy the line. | |
11469 | (location_get_source_line): Don't use static data. | |
11470 | (selftest::test_reading_source_line): Add more test cases. | |
11471 | ||
11472 | 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
11473 | ||
11474 | Revert | |
11475 | 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
11476 | ||
11477 | * ifcvt.c (noce_try_avoid_const_materialization): New function. | |
11478 | (noce_process_if_block): Use it. | |
11479 | ||
11480 | 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
11481 | ||
11482 | * doc/invoke.texi: Update -Wint-in-bool-context. | |
11483 | ||
11484 | 2016-10-02 Jakub Jelinek <jakub@redhat.com> | |
11485 | ||
11486 | * dwarf2out.c (output_fde, output_call_frame_info, | |
11487 | dwarf2out_do_cfi_startproc, set_indirect_string, | |
11488 | gen_internal_sym, output_die, output_line_info): Use | |
11489 | MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for | |
11490 | ASM_GENERATE_INTERNAL_LABEL output. | |
11491 | ||
11492 | 2016-10-01 Richard Biener <rguenther@suse.de> | |
11493 | ||
11494 | PR middle-end/77798 | |
11495 | * genmatch.c (get_operand_type): Add operand position arg | |
11496 | and handle COND_EXPR comparison operand with fixed boolean_type_node. | |
11497 | (expr::gen_transform): Adjust. | |
11498 | (dt_simplify::gen_1): Likewise. | |
11499 | ||
11500 | 2016-10-01 Jakub Jelinek <jakub@redhat.com> | |
11501 | ||
11502 | * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU | |
11503 | comments. Simplify asserts, remove unnecessary conditions. | |
11504 | Formatting fixes. | |
11505 | (*<code><mode>3): Likewise. | |
11506 | ||
11507 | 2016-09-30 Jakub Jelinek <jakub@redhat.com> | |
11508 | ||
11509 | * doc/invoke.texi (-Wregister): Document. | |
11510 | ||
11511 | 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
11512 | ||
11513 | * configure.ac: Split CHECKING_P into CHECKING_P and | |
11514 | ENABLE_EXTRA_CHECKING. | |
11515 | * configure: Regenerated. | |
11516 | * config.in: Adjust commment of CHECKING_P. Add ENABLE_EXTRA_CHECKING. | |
11517 | * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING. | |
11518 | ||
11519 | 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com> | |
11520 | ||
11521 | PR other/31566 | |
11522 | * gcc.c (process_command): For @filename handling, output | |
11523 | the correct name if the file does not exist. | |
11524 | ||
11525 | 2016-09-30 Marek Polacek <polacek@redhat.com> | |
11526 | ||
11527 | * config/aarch64/aarch64-simd.md: Adjust fall through comments. | |
11528 | * config/alpha/predicates.md: Likewise. | |
11529 | ||
11530 | 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
11531 | ||
11532 | * ifcvt.c (noce_try_avoid_const_materialization): New function. | |
11533 | (noce_process_if_block): Use it. | |
11534 | ||
11535 | 2016-09-30 Martin Liska <mliska@suse.cz> | |
11536 | ||
11537 | * doc/invoke.texi: Document asan-use-after-return that | |
11538 | it's disabled by default in runtime. | |
11539 | ||
11540 | 2016-09-30 Richard Biener <rguenther@suse.de> | |
11541 | ||
11542 | * tree-vrp.c (intersect_ranges): If we failed to handle | |
11543 | the intersection choose a constant singleton range if available. | |
11544 | ||
11545 | 2016-09-30 Richard Biener <rguenther@suse.de> | |
11546 | ||
11547 | PR tree-optimization/77399 | |
11548 | * tree-ssa-forwprop.c (simplify_vector_constructor): Handle | |
11549 | float <-> int conversions. | |
11550 | ||
11551 | 2016-09-30 Alan Modra <amodra@gmail.com> | |
11552 | ||
11553 | * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change. | |
11554 | ||
11555 | 2016-09-29 Uros Bizjak <ubizjak@gmail.com> | |
11556 | ||
11557 | * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum | |
11558 | ext_level before calling CPUID with 0x80000008. | |
11559 | Simplify xgetbv checks. | |
11560 | ||
11561 | 2016-09-29 David Malcolm <dmalcolm@redhat.com> | |
11562 | ||
11563 | * Makefile.in (OBJS): Add print-rtl-function.o. | |
11564 | * print-rtl-function.c: New file. | |
11565 | * print-rtl.h (print_rtx_function): New decl. | |
11566 | ||
11567 | 2016-09-29 Uros Bizjak <ubizjak@gmail.com> | |
11568 | ||
11569 | PR target/77756 | |
11570 | * config/i386/cpuid.h (__get_cpuid_count): New. | |
11571 | (__get_cpuid): Rename __level to __leaf. | |
11572 | ||
11573 | 2016-09-29 Marek Polacek <polacek@redhat.com> | |
11574 | ||
11575 | * genattrtab.c (write_attr_case): Also emit FALLTHRU marker. | |
11576 | ||
11577 | 2016-09-29 Bernd Schmidt <bschmidt@redhat.com> | |
11578 | ||
11579 | PR target/77718 | |
11580 | * builtins.c (expand_builtin_memcmp): Don't swap args unless | |
11581 | result is only being compared with zero. | |
11582 | ||
11583 | 2016-09-29 Marek Polacek <polacek@redhat.com> | |
11584 | ||
11585 | * dwarf2out.c (loc_descriptor): Add fall through comment. | |
11586 | (add_const_value_attribute): Likewise. | |
11587 | ||
11588 | 2016-09-29 Matthew Wahab <matthew.wahab@arm.com> | |
11589 | ||
11590 | * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute | |
11591 | with "v6t2". Move "arch" attribute above "pool_range". | |
11592 | * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute | |
11593 | with "v6t2". | |
11594 | (*thumb2_movhi_vfp): Likewise. | |
11595 | (*arm_movhi_fp16): Likewise. | |
11596 | (*thumb2_movhi_fp16): Likewise. | |
11597 | (*arm_movsi_vfp): Remove "arch" attribute. | |
11598 | (*thumb2_movsi_vfp): Likewise. | |
11599 | ||
11600 | 2016-09-29 Martin Liska <mliska@suse.cz> | |
11601 | ||
11602 | * doc/extend.texi: Remove limitation of Objective C for | |
11603 | __attribute__((constructor)) and __attribute__((destructor)). | |
11604 | ||
11605 | 2016-09-29 Richard Biener <rguenther@suse.de> | |
11606 | ||
11607 | PR tree-optimization/77768 | |
11608 | * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): | |
11609 | Handle stores to readonly memory when removing redundant stores. | |
11610 | ||
11611 | 2016-09-29 Richard Biener <rguenther@suse.de> | |
11612 | ||
11613 | PR middle-end/77407 | |
11614 | * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and | |
11615 | X / -X -> -1 simplifications. | |
11616 | ||
11617 | 2016-09-29 Richard Biener <rguenther@suse.de> | |
11618 | ||
11619 | PR middle-end/55152 | |
11620 | * match.pd: Add max(a,-a) -> abs(a) pattern. | |
11621 | * tree-ssa-phiopt.c (minmax_replacement): Disable for | |
11622 | HONOR_SIGNED_ZEROS types. | |
11623 | ||
11624 | 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com> | |
11625 | ||
11626 | * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove. | |
11627 | * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison. | |
11628 | ||
11629 | 2016-09-29 Richard Biener <rguenther@suse.de> | |
11630 | ||
11631 | * tree-vrp.c (set_defs_to_varying): New helper avoiding | |
11632 | writing to vr_const_varying. | |
11633 | (vrp_initialize): Call it. | |
11634 | (vrp_visit_stmt): Likewise. | |
11635 | (evrp_dom_walker::before_dom_children): Likewise. | |
11636 | ||
11637 | 2016-09-29 Richard Biener <rguenther@suse.de> | |
11638 | ||
11639 | * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector | |
11640 | constructors with vector elements. | |
11641 | ||
11642 | 2016-09-29 Richard Biener <rguenther@suse.de> | |
11643 | ||
11644 | PR tree-optimization/77768 | |
11645 | * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal | |
11646 | with stores to a place we know has a constant value. | |
11647 | ||
11648 | 2016-09-29 Alan Modra <amodra@gmail.com> | |
11649 | ||
11650 | * config/rs6000/sysv4.opt (mgnu-attribute): New option. | |
11651 | * doc/invoke.texi: Document it. | |
11652 | * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define. | |
11653 | (rs6000_passes_float): Comment. | |
11654 | (rs6000_passes_long_double): New static var. | |
11655 | (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set. | |
11656 | (init_cumulative_args): Set up to emit fp .gnu_attribute for | |
11657 | ELF 64-bit ABIs as well as 32-bit ELF. Correct rs6000_passes_float | |
11658 | to include fp values returned in vectors. | |
11659 | Set rs6000_passes_long_double. | |
11660 | (rs6000_function_arg_advance_1): Likewise for function args. | |
11661 | (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs, | |
11662 | and SPE. Emit long double tag value too. | |
11663 | (rs6000_opt_vars): Add gnu-attr. | |
11664 | * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test. | |
11665 | * configure: Regenerate. | |
11666 | * config.in: Regenerate. | |
11667 | ||
11668 | 2016-09-28 Jakub Jelinek <jakub@redhat.com> | |
11669 | ||
11670 | * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead | |
11671 | of 0 < x. | |
11672 | (format_floating, format_string, format_directive, | |
11673 | get_destination_size, pass_sprintf_length::handle_gimple_call): | |
11674 | Likewise. | |
11675 | ||
11676 | 2016-09-28 Jakub Jelinek <jakub@redhat.com> | |
11677 | ||
11678 | * gimple-ssa-sprintf.c: Fix comment formatting. | |
11679 | (format_integer): Use is_gimple_assign. | |
11680 | (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p | |
11681 | and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up | |
11682 | BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment. | |
11683 | (pass_sprintf_length::execute): Use is_gimple_call. | |
11684 | ||
11685 | 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com> | |
11686 | ||
11687 | * gimple-fold.c (gimple_fold_builtin): After failing to fold | |
11688 | strchr, also try the generic folding. | |
11689 | ||
11690 | 2016-09-28 Martin Sebor <msebor@redhat.com> | |
11691 | ||
11692 | PR c/77762 | |
11693 | * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): | |
11694 | Fix typos. | |
11695 | ||
11696 | 2016-09-28 Martin Sebor <msebor@redhat.com> | |
11697 | ||
11698 | PR middle-end/77683 | |
11699 | * gimple-ssa-sprintf.c (format_integer): Fail gracefully when | |
11700 | length modifier is not expected. | |
11701 | (format_floating): Ignore l length modifier and fail gracefuly | |
11702 | when it isn't one of the other expected ones. | |
11703 | ||
11704 | 2016-09-28 Martin Sebor <msebor@redhat.com> | |
11705 | ||
11706 | PR bootstrap/77753 | |
11707 | * varasm.c (assemble_addr_to_section): Increase local buffer size. | |
11708 | ||
11709 | 2016-09-27 Richard Biener <rguenther@suse.de> | |
11710 | ||
11711 | * dwarf2out.c (cu_die_list): New global. | |
11712 | (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs. Add | |
11713 | main_comp_unit_die to cu_die_list if we created it. | |
11714 | Move break_out_includes ... | |
11715 | (dwarf2out_early_finish): ... here. Push created CU DIEs onto | |
11716 | the cu_die_list. | |
11717 | ||
11718 | 2016-09-28 Richard Biener <rguenther@suse.de> | |
11719 | ||
11720 | * dwarf2out.c (struct die_struct): Add removed flag. | |
11721 | (lookup_type_die): If the DIE is marked as removed, clear | |
11722 | TYPE_SYMTAB_DIE and return NULL. | |
11723 | (lookup_decl_die): If the DIE is marked as removed, remove it | |
11724 | from the hash and return NULL. | |
11725 | (mark_removed): New helper. | |
11726 | (prune_unused_types_prune): Call it for removed DIEs. | |
11727 | (gen_subprogram_die): Move the premark_used_types call to after | |
11728 | DIEs for the functions scopes are generated. | |
11729 | (process_scope_var): Do not re-create pruned types or type decls. | |
11730 | Make sure to also re-parent type decls. | |
11731 | (dwarf2out_finish): Move unused type pruning and debug_types | |
11732 | handling ... | |
11733 | (dwarf2out_early_finish): ... here. | |
11734 | ||
11735 | 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com> | |
11736 | ||
11737 | * config/arc/arc-c.c: New file. | |
11738 | * config/arc/arc-c.def: Likewise. | |
11739 | * config/arc/t-arc: Likewise. | |
11740 | * config.gcc: Include arc-c.o as c and cpp object. | |
11741 | * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype. | |
11742 | * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use | |
11743 | arc_cpu_cpp_builtins. | |
11744 | ||
11745 | 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com> | |
11746 | ||
11747 | * config/arc/arc.md (*rotrsi3_cnt1): New pattern. | |
11748 | (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise. | |
11749 | ||
11750 | 2016-09-28 Nathan Sidwell <nathan@acm.org> | |
11751 | ||
11752 | * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' " | |
11753 | printing. | |
11754 | ||
11755 | 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com> | |
11756 | ||
11757 | PR tree-optimization/61056 | |
11758 | * gimple-fold.c (gimple_fold_builtin_strchr): | |
11759 | New function to optimize strchr (s, 0) to strlen. | |
11760 | (gimple_fold_builtin): Add BUILT_IN_STRCHR case. | |
11761 | ||
11762 | 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com> | |
11763 | ||
11764 | PR tree-optimization/77724 | |
11765 | * tree-vect-loop-manip.c (create_intersect_range_checks_index): | |
11766 | Add tree_fits_shwi_p check. | |
11767 | ||
11768 | 2016-09-27 Jakub Jelinek <jakub@redhat.com> | |
11769 | ||
11770 | * auto-inc-dec.c (try_merge): Remove break after return. | |
11771 | * cselib.c (autoinc_split): Likewise. | |
11772 | * explow.c (promote_mode): Likewise. | |
11773 | * fixed-value.c (fixed_arithmetic): Likewise. | |
11774 | * hsa.c (hsa_internal_fn::get_arity): Likewise. | |
11775 | * rtlanal.c (modified_between_p, modified_in_p): Likewise. | |
11776 | * trans-mem.c (get_attrs_for): Likewise. | |
11777 | * tree-if-conv.c (if_convertible_stmt_p): Likewise. | |
11778 | * tree-vrp.c (simplify_stmt_using_ranges): Likewise. | |
11779 | * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise. | |
11780 | * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise. | |
11781 | * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise. | |
11782 | * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise. | |
11783 | * config/cris/cris.c (cris_op_str): Likewise. | |
11784 | * config/mn10300/mn10300.c (cc_flags_for_code): Likewise. | |
11785 | * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise. | |
11786 | ||
11787 | 2016-09-27 Nathan Sidwell <nathan@codesourcery.com> | |
11788 | ||
11789 | * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES, | |
11790 | IFN_GOACC_REDUCTION_CODES): New. | |
11791 | (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum | |
11792 | ifn_goacc_reduction_kind): Use them. | |
11793 | * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg | |
11794 | of internal functions, when applicable. | |
11795 | ||
11796 | 2016-09-27 Maciej W. Rozycki <macro@imgtec.com> | |
11797 | ||
11798 | * config/mips/constraints.md (d): Fix documentation. | |
11799 | * doc/md.texi (Machine Constraints): Update accordingly. | |
11800 | ||
11801 | 2016-09-27 Richard Biener <rguenther@suse.de> | |
11802 | ||
11803 | * dwarf2out.c (dwarf2out_init): Move text_section_line_info, | |
11804 | cur_line_info_table initialization ... | |
11805 | (dwarf2out_assembly_start): ... here. | |
11806 | ||
11807 | 2016-09-27 Matthew Wahab <matthew.wahab@arm.com> | |
11808 | ||
11809 | * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute. | |
11810 | * config/arm/vfp.md (*arm_movhi_vfp): Likewise. | |
11811 | (*thumb2_movhi_vfp): Likewise. | |
11812 | (*arm_movhi_fp16): Remove predication operand from VMOV.F16 | |
11813 | template. Expand predicable attribute to mark VMOV.F16 as not | |
11814 | predicable. Add "arch" attribute. | |
11815 | (*thumb2_movhi_fp16): Likewise. | |
11816 | (*arm_movsi_vfp): Break a long line. Add "arch" attribute. | |
11817 | (*thumb2_movsi_vfp): Add "arch" attribute. | |
11818 | ||
11819 | 2016-09-27 David Edelsohn <dje.gcc@gmail.com> | |
11820 | ||
11821 | * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify | |
11822 | VAR_DECL string. | |
11823 | ||
11824 | 2016-09-27 Marek Polacek <polacek@redhat.com> | |
11825 | ||
11826 | * config/ia64/ia64.c (ia64_print_operand): Adjust fall through | |
11827 | comment. | |
11828 | ||
11829 | * config/c6x/c6x.h: Adjust fall through comment. | |
11830 | * config/sh/sh.c (final_prescan_insn): Likewise. | |
11831 | * config/visium/visium.c (visium_expand_int_cstore): Likewise. | |
11832 | (visium_expand_fp_cstore): Likewise. | |
11833 | ||
11834 | 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
11835 | ||
11836 | * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form | |
11837 | expected by -Wimplicit-fallthrough. | |
11838 | (thumb1_size_rtx_costs): Likewise. | |
11839 | (thumb2_reorg): Likewise. | |
11840 | (tls_mentioned_p): Add "Fall through" comment. | |
11841 | (thumb2_reorg): Likewise. | |
11842 | * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through" | |
11843 | comment form expected by -Wimplicit-fallthrough. | |
11844 | ||
11845 | 2016-09-27 Martin Liska <mliska@suse.cz> | |
11846 | ||
11847 | PR gcov-profile/46266 | |
11848 | * input.h (RESERVED_LOCATION_P): New macro. | |
11849 | * profile.c (branch_prob): Use RESERVED_LOCATION_P and | |
11850 | instread of comparison with UNKNOWN_LOCATION. | |
11851 | ||
11852 | 2016-09-27 Richard Biener <rguenther@suse.de> | |
11853 | ||
11854 | PR tree-optimization/77745 | |
11855 | * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): | |
11856 | When removing redundant stores make sure to check compatibility | |
11857 | of the TBAA state for downstream accesses. | |
11858 | * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when | |
11859 | value-numbering virtual operands for store matches. | |
11860 | ||
11861 | 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org> | |
11862 | ||
11863 | PR target/51244 | |
11864 | * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and | |
11865 | movrt patterns. Match them before anything else in the SET case. | |
11866 | ||
11867 | 2016-09-27 Martin Liska <mliska@suse.cz> | |
11868 | ||
11869 | PR gcov-profile/7970 | |
11870 | PR gcov-profile/16855 | |
11871 | PR gcov-profile/44779 | |
11872 | * coverage.c (build_gcov_exit_decl): New function. | |
11873 | (coverage_obj_init): Call the function and generate __gcov_exit | |
11874 | destructor. | |
11875 | * doc/gcov.texi: Document when __gcov_exit function is called. | |
11876 | ||
11877 | 2016-09-27 Marek Polacek <polacek@redhat.com> | |
11878 | ||
11879 | PR bootstrap/77751 | |
11880 | * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn, | |
11881 | insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use | |
11882 | -Wno-error instead of -Wno-implicit-fallthrough. | |
11883 | ||
11884 | 2016-09-27 Martin Liska <mliska@suse.cz> | |
11885 | ||
11886 | PR bootstrap/77749 | |
11887 | * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA. | |
11888 | ||
11889 | 2016-09-27 Jakub Jelinek <jakub@redhat.com> | |
11890 | ||
11891 | * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments. | |
11892 | * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH | |
11893 | comments. Remove break after return. | |
11894 | (ix86_fp_compare_code_to_integer, has_dispatch, | |
11895 | ix86_simd_clone_usable): Remove break after return. | |
11896 | ||
11897 | 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
11898 | ||
11899 | PR rlt-optimization/77714 | |
11900 | * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on | |
11901 | REG_EQUAL note. | |
11902 | ||
11903 | 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org> | |
11904 | ||
11905 | PR ipa/77677 | |
11906 | * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use | |
11907 | extract_range_from_unary_expr to convert value_range. | |
11908 | * tree-vrp.c (extract_range_from_unary_expr_1): Rename to. | |
11909 | (extract_range_from_unary_expr): This. | |
11910 | * tree-vrp.h (extract_range_from_unary_expr): Declare. | |
11911 | ||
11912 | 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org> | |
11913 | ||
11914 | * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR. | |
11915 | ||
11916 | 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
11917 | ||
11918 | * config/i386/i386.c (ix86_print_operand) | |
11919 | [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough. | |
11920 | * config/sparc/sparc.c (check_pic): Add fallthrough comment. | |
11921 | (epilogue_renumber): Likewise. | |
11922 | ||
11923 | 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org> | |
11924 | ||
11925 | PR middle-end/77719 | |
11926 | * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs | |
11927 | to get lhs instead of gimple_assign_lhs as stmt can be builtins too. | |
11928 | ||
11929 | 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
11930 | ||
11931 | * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed, | |
11932 | is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel, | |
11933 | is_mm_seq_cst, is_mm_sync): Move to ... | |
11934 | * memmodel.h: This. New file. | |
11935 | * builtins.c: Include memmodel.h. | |
11936 | * optabs.c: Likewise. | |
11937 | * tsan.c: Likewise. | |
11938 | * config/aarch64/aarch64.c: Likewise. | |
11939 | * config/alpha/alpha.c: Likewise. | |
11940 | * config/arm/arm.c: Likewise. | |
11941 | * config/i386/i386.c: Likewise. | |
11942 | * config/ia64/ia64.c: Likewise. | |
11943 | * config/mips/mips.c: Likewise. | |
11944 | * config/rs6000/rs6000.c: Likewise. | |
11945 | * config/sparc/sparc.c: Likewise. | |
11946 | * genconditions.c: Include memmodel.h in generated file. | |
11947 | * genemit.c: Likewise. | |
11948 | * genoutput.c: Likewise. | |
11949 | * genpeep.c: Likewise. | |
11950 | * genpreds.c: Likewise. | |
11951 | * genrecog.c: Likewise. | |
11952 | ||
11953 | 2016-09-26 David Malcolm <dmalcolm@redhat.com> | |
11954 | ||
11955 | * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use | |
11956 | "c" instead when parsing characters. Move operand parsing into... | |
11957 | (read_rtx_operand): ...this new function, renaming "i" to "idx", | |
11958 | and tightening the scope of various locals. | |
11959 | ||
11960 | 2016-09-26 Liu Hao <lh_mouse@126.com> | |
11961 | ||
11962 | * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo. | |
11963 | ||
11964 | 2016-09-26 Marek Polacek <polacek@redhat.com> | |
11965 | ||
11966 | * system.h: Use __has_attribute to check whether the fallthrough | |
11967 | attribute is supported. | |
11968 | ||
11969 | 2016-09-26 Marek Polacek <polacek@redhat.com> | |
11970 | ||
11971 | * ipa-inline-analysis.c (find_foldable_builtin_expect): Use | |
11972 | gimple_call_internal_p. | |
11973 | * ipa-split.c (find_return_bb): Likewise. | |
11974 | (execute_split_functions): Likewise. | |
11975 | * omp-low.c (dump_oacc_loop_part): Likewise. | |
11976 | (oacc_loop_xform_head_tail): Likewise. | |
11977 | * predict.c (predict_loops): Likewise. | |
11978 | * sanopt.c (pass_sanopt::execute): Likewise. | |
11979 | * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise. | |
11980 | * tree-parloops.c (oacc_entry_exit_ok_1): Likewise. | |
11981 | * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function. | |
11982 | (expand_ifn_va_arg_1): Use gimple_call_internal_p. | |
11983 | (expand_ifn_va_arg): Likewise. | |
11984 | * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. | |
11985 | (optimize_mask_stores): Likewise. | |
11986 | * tree-vect-stmts.c (vect_simd_lane_linear): Likewise. | |
11987 | (vect_transform_stmt): Likewise. | |
11988 | * tree-vectorizer.c (vect_loop_vectorized_call): Likewise. | |
11989 | * tsan.c (instrument_memory_accesses): Likewise. | |
11990 | ||
11991 | 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
11992 | Alexander Monakov <amonakov@ispras.ru> | |
11993 | ||
11994 | * regrename.c (rename_chains): Check | |
11995 | HARD_FRAME_POINTER_IS_FRAME_POINTER rather than | |
11996 | HARD_FRAME_POINTER_REGNUM when picking unavailable registers. | |
11997 | * sel-sched.c (mark_unavailable_hard_regs): Likewise. | |
11998 | ||
11999 | 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
12000 | ||
12001 | * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */. | |
12002 | (s390_sched_score): Likewise. | |
12003 | ||
12004 | 2016-09-26 Martin Liska <mliska@suse.cz> | |
12005 | ||
12006 | * doc/gcov.texi: Update program output of gcov tool. | |
12007 | ||
12008 | 2016-09-26 Martin Liska <mliska@suse.cz> | |
12009 | ||
12010 | PR gcov-profile/23332 | |
12011 | * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA. | |
12012 | * tree-profile.c (gimple_gen_const_delta_profiler): Remove. | |
12013 | * value-prof.c (dump_histogram_value): Do not handle | |
12014 | HIST_TYPE_CONST_DELTA. | |
12015 | (stream_in_histogram_value): Likewise. | |
12016 | (gimple_find_values_to_profile): Likewise. | |
12017 | * value-prof.h (enum hist_type): Likewise. | |
12018 | ||
12019 | 2016-09-26 Martin Liska <mliska@suse.cz> | |
12020 | ||
12021 | * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN | |
12022 | from default sanitize recover values. | |
12023 | * doc/invoke.texi: Fix documentation related to -fsanitize=leak, | |
12024 | -fsanitize=address, -fsanitize=thread and -fsanitize-recover. | |
12025 | * flag-types.h: Replace couple of 1 << x to 1UL << x, make it | |
12026 | consistent. | |
12027 | * opts.c (finish_options): Do a generic loop over options | |
12028 | that can be recovered. | |
12029 | (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and | |
12030 | SANITIZE_RETURN. | |
12031 | (common_handle_option): Likewise. | |
12032 | * opts.h: Declare can_recover to sanitizer_opts_s. | |
12033 | ||
12034 | 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
12035 | ||
12036 | * target.def(elf_flags_numeric): Change documentation to present tense. | |
12037 | * doc/tm.texi: Regenerate. | |
12038 | ||
12039 | 2016-09-26 Marek Polacek <polacek@redhat.com> | |
12040 | ||
12041 | PR c/7652 | |
12042 | * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn, | |
12043 | insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add | |
12044 | -Wno-switch-fallthrough. | |
12045 | * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough. | |
12046 | (expand_builtin): Likewise. | |
12047 | * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise. | |
12048 | * convert.c (convert_to_real_1): Likewise. | |
12049 | (convert_to_integer_1): Likewise. | |
12050 | * final.c (output_alternate_entry_point): Likewise. | |
12051 | * genattrtab.c (make_canonical): Likewise. | |
12052 | (write_test_expr): Likewise. | |
12053 | * genpreds.c (validate_exp): Likewise. | |
12054 | * gimple-ssa-strength-reduction.c | |
12055 | (find_candidates_dom_walker::before_dom_children): Likewise. | |
12056 | * godump.c (go_format_type): Likewise. | |
12057 | * reload1.c (elimination_effects): Likewise. | |
12058 | * resource.c (mark_referenced_resources): Likewise. | |
12059 | (mark_set_resources): Likewise. | |
12060 | * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise. | |
12061 | * varasm.c (output_addressed_constants): Likewise. | |
12062 | ||
12063 | 2016-09-26 Marek Polacek <polacek@redhat.com> | |
12064 | ||
12065 | PR c/7652 | |
12066 | * common.opt (Wimplicit-fallthrough): New option. | |
12067 | * doc/extend.texi: Document statement attributes and the fallthrough | |
12068 | attribute. | |
12069 | * doc/invoke.texi: Document -Wimplicit-fallthrough. | |
12070 | * gimple.h (gimple_call_internal_p): New function. | |
12071 | * gimplify.c (struct gimplify_ctx): Add in_switch_expr. | |
12072 | (struct label_entry): New struct. | |
12073 | (find_label_entry): New function. | |
12074 | (case_label_p): New function. | |
12075 | (collect_fallthrough_labels): New function. | |
12076 | (last_stmt_in_scope): New function. | |
12077 | (should_warn_for_implicit_fallthrough): New function. | |
12078 | (warn_implicit_fallthrough_r): New function. | |
12079 | (maybe_warn_implicit_fallthrough): New function. | |
12080 | (expand_FALLTHROUGH_r): New function. | |
12081 | (expand_FALLTHROUGH): New function. | |
12082 | (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and | |
12083 | expand_FALLTHROUGH for the innermost GIMPLE_SWITCH. | |
12084 | (gimplify_label_expr): New function. | |
12085 | (gimplify_case_label_expr): Set location. | |
12086 | (gimplify_expr): Call gimplify_label_expr. | |
12087 | * internal-fn.c (expand_FALLTHROUGH): New function. | |
12088 | * internal-fn.def (FALLTHROUGH): New internal function. | |
12089 | * langhooks.c (lang_GNU_OBJC): New function. | |
12090 | * langhooks.h (lang_GNU_OBJC): Declare. | |
12091 | * system.h (gcc_fallthrough): Define. | |
12092 | * tree-core.h: Add FALLTHROUGH_LABEL_P comment. | |
12093 | * tree.h (FALLTHROUGH_LABEL_P): Define. | |
12094 | ||
12095 | 2016-09-26 Richard Biener <rguenther@suse.de> | |
12096 | ||
12097 | * dwarf2out.c (stripattributes): Remove unused function. | |
12098 | (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION. | |
12099 | Push dwarf_split_debug_info handling into init_sections_and_labels. | |
12100 | (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION. | |
12101 | (DEBUG_MACRO_SECTION_FLAGS): Remove. | |
12102 | (debug_macinfo_section_name): New global. | |
12103 | (output_macinfo): Use debug_macinfo_section_name. | |
12104 | (init_sections_and_labels): Split out section and label generation | |
12105 | from dwarf2out_init. Set debug_macinfo_section_name. | |
12106 | (dwarf2out_init): Move text section label generation and emission | |
12107 | to ... | |
12108 | (dwarf2out_assembly_start): ... here. | |
12109 | (dwarf2out_finish): Call init_sections_and_labels before DWARF | |
12110 | output starts. | |
12111 | ||
12112 | 2016-09-26 Richard Biener <rguenther@suse.de> | |
12113 | ||
12114 | PR debug/77692 | |
12115 | * cgraphunit.c (analyze_functions): Before early removing | |
12116 | global vars calls the late_global_decl debug handler mark | |
12117 | the variable as readonly. | |
12118 | ||
12119 | 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org> | |
12120 | ||
12121 | PR target/51244 | |
12122 | * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads. | |
12123 | (sh_rtx_costs): Handle SET of movt and movrt patterns. | |
12124 | * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward | |
12125 | declare new overloads. | |
12126 | * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr | |
12127 | operand. | |
12128 | ||
12129 | 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
12130 | ||
12131 | * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare): | |
12132 | Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN. | |
12133 | ||
12134 | 2016-09-24 David Edelsohn <dje.gcc@gmail.com> | |
12135 | ||
12136 | * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment. | |
12137 | * configure: Regenerate. | |
12138 | ||
12139 | 2016-09-24 Marek Polacek <polacek@redhat.com> | |
12140 | ||
12141 | PR c/77490 | |
12142 | * doc/invoke.texi: Document -Wbool-operation. | |
12143 | ||
12144 | 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
12145 | ||
12146 | * config/rs6000/rs6000.md (cmpmemsi): New define_expand. | |
12147 | * config/rs6000/rs6000.c (expand_block_compare): New function used by | |
12148 | cmpmemsi pattern to do builtin expansion of memcmp (). | |
12149 | (compute_current_alignment): Add helper function for | |
12150 | expand_block_compare used to compute alignment as the compare proceeds. | |
12151 | (select_block_compare_mode): Used by expand_block_compare to select | |
12152 | the mode used for reading the next chunk of bytes in the compare. | |
12153 | (do_load_for_compare): Used by expand_block_compare to emit the load | |
12154 | insns for the compare. | |
12155 | (rs6000_emit_dot_insn): Moved this function to avoid a forward | |
12156 | reference from expand_block_compare (). | |
12157 | * config/rs6000/rs6000-protos.h (expand_block_compare): Add a | |
12158 | prototype for this function. | |
12159 | * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new | |
12160 | target option for controlling how much code inline expansion of | |
12161 | memcmp() will be allowed to generate. | |
12162 | ||
12163 | 2016-09-23 Jakub Jelinek <jakub@redhat.com> | |
12164 | ||
12165 | * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false, | |
12166 | hook_bool_mode_false, hook_bool_mode_true, | |
12167 | hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true, | |
12168 | hook_bool_mode_rtx_false, hook_bool_mode_rtx_true, | |
12169 | hook_bool_const_rtx_insn_const_rtx_insn_true, | |
12170 | hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr, | |
12171 | hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false, | |
12172 | hook_bool_const_tree_hwi_hwi_const_tree_false, | |
12173 | hook_bool_const_tree_hwi_hwi_const_tree_true, | |
12174 | default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1, | |
12175 | hook_int_const_tree_0, hook_int_const_tree_const_tree_1, | |
12176 | hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree, | |
12177 | hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int, | |
12178 | hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true, | |
12179 | hook_bool_const_tree_true, hook_bool_tree_tree_false, | |
12180 | hook_bool_tree_tree_true, hook_bool_tree_bool_false, | |
12181 | hook_bool_rtx_insn_true, hook_bool_rtx_false, | |
12182 | hook_bool_uintp_uintp_false, | |
12183 | hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null, | |
12184 | hook_rtx_tree_int_null, hook_uint_mode_0, | |
12185 | hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null, | |
12186 | hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null, | |
12187 | hook_constcharptr_const_rtx_insn_null, | |
12188 | hook_constcharptr_const_tree_const_tree_null, | |
12189 | hook_constcharptr_int_const_tree_null, | |
12190 | hook_constcharptr_int_const_tree_const_tree_null, | |
12191 | hook_tree_const_tree_null, hook_bool_rtx_insn_int_false, | |
12192 | hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with | |
12193 | ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED. | |
12194 | ||
12195 | * vec.h (vNULL): Extend comment to say = vNULL initialization | |
12196 | isn't needed for static vars. | |
12197 | ||
12198 | * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info, | |
12199 | loop_nests, s_i_d, last_added_blocks): Remove unnecessary | |
12200 | = vNULL initialization of file scope vec. | |
12201 | * passes.c (pass_tab, enabled_pass_uid_range_tab, | |
12202 | disabled_pass_uid_range_tab): Likewise. | |
12203 | * haifa-sched.c (sched_luids, h_i_d): Likewise. | |
12204 | * tree-chkp-opt.c (check_infos): Likewise. | |
12205 | * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise. | |
12206 | ||
12207 | * vec.h (vnull::operator vec): Add constexpr keyword for | |
12208 | C++11 and later. | |
12209 | ||
12210 | 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com> | |
12211 | ||
12212 | PR tree-optimization/77654 | |
12213 | * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call | |
12214 | to duplicate_ssa_name_ptr_info. | |
12215 | ||
12216 | 2016-09-23 David Malcolm <dmalcolm@redhat.com> | |
12217 | ||
12218 | PR preprocessor/77672 | |
12219 | * input.c (selftest::test_lexer_string_locations_simple): Update | |
12220 | test to expect location information of the terminator character | |
12221 | at the location of the final closing quote. | |
12222 | (selftest::test_lexer_string_locations_hex): Likewise. | |
12223 | (selftest::test_lexer_string_locations_oct): Likewise. | |
12224 | (selftest::test_lexer_string_locations_letter_escape_1): Likewise. | |
12225 | (selftest::test_lexer_string_locations_letter_escape_2): Likewise. | |
12226 | (selftest::test_lexer_string_locations_ucn4): Likewise. | |
12227 | (selftest::test_lexer_string_locations_ucn8): Likewise. | |
12228 | (selftest::test_lexer_string_locations_u8): Likewise. | |
12229 | (selftest::test_lexer_string_locations_utf8_source): Likewise. | |
12230 | (selftest::test_lexer_string_locations_concatenation_1): Likewise. | |
12231 | (selftest::test_lexer_string_locations_concatenation_2): Likewise. | |
12232 | (selftest::test_lexer_string_locations_concatenation_3): Likewise. | |
12233 | (selftest::test_lexer_string_locations_macro): Likewise. | |
12234 | (selftest::test_lexer_string_locations_long_line): Likewise. | |
12235 | ||
12236 | 2016-09-23 Richard Biener <rguenther@suse.de> | |
12237 | ||
12238 | * tree-ssa-sccvn.c (visit_reference_op_call): Value number | |
12239 | virtual definition to virtual use if the call devirtualizes | |
12240 | to a const or pure function. | |
12241 | (visit_use): Also visit calls we can devirtualize to a | |
12242 | const or pure function. | |
12243 | ||
12244 | 2016-09-23 Richard Biener <rguenther@suse.de> | |
12245 | ||
12246 | PR tree-optimization/77697 | |
12247 | * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code, | |
12248 | signal error if we have sth ternary or unhandled. | |
12249 | ||
12250 | 2016-09-23 Matthew Wahab <matthew.wahab@arm.com> | |
12251 | ||
12252 | * config/arm/arm_neon.h (vabd_f16): New. | |
12253 | (vabdq_f16): New. | |
12254 | (vabs_f16): New. | |
12255 | (vabsq_f16): New. | |
12256 | (vadd_f16): New. | |
12257 | (vaddq_f16): New. | |
12258 | (vcage_f16): New. | |
12259 | (vcageq_f16): New. | |
12260 | (vcagt_f16): New. | |
12261 | (vcagtq_f16): New. | |
12262 | (vcale_f16): New. | |
12263 | (vcaleq_f16): New. | |
12264 | (vcalt_f16): New. | |
12265 | (vcaltq_f16): New. | |
12266 | (vceq_f16): New. | |
12267 | (vceqq_f16): New. | |
12268 | (vceqz_f16): New. | |
12269 | (vceqzq_f16): New. | |
12270 | (vcge_f16): New. | |
12271 | (vcgeq_f16): New. | |
12272 | (vcgez_f16): New. | |
12273 | (vcgezq_f16): New. | |
12274 | (vcgt_f16): New. | |
12275 | (vcgtq_f16): New. | |
12276 | (vcgtz_f16): New. | |
12277 | (vcgtzq_f16): New. | |
12278 | (vcle_f16): New. | |
12279 | (vcleq_f16): New. | |
12280 | (vclez_f16): New. | |
12281 | (vclezq_f16): New. | |
12282 | (vclt_f16): New. | |
12283 | (vcltq_f16): New. | |
12284 | (vcltz_f16): New. | |
12285 | (vcltzq_f16): New. | |
12286 | (vcvt_f16_s16): New. | |
12287 | (vcvt_f16_u16): New. | |
12288 | (vcvt_s16_f16): New. | |
12289 | (vcvt_u16_f16): New. | |
12290 | (vcvtq_f16_s16): New. | |
12291 | (vcvtq_f16_u16): New. | |
12292 | (vcvtq_s16_f16): New. | |
12293 | (vcvtq_u16_f16): New. | |
12294 | (vcvta_s16_f16): New. | |
12295 | (vcvta_u16_f16): New. | |
12296 | (vcvtaq_s16_f16): New. | |
12297 | (vcvtaq_u16_f16): New. | |
12298 | (vcvtm_s16_f16): New. | |
12299 | (vcvtm_u16_f16): New. | |
12300 | (vcvtmq_s16_f16): New. | |
12301 | (vcvtmq_u16_f16): New. | |
12302 | (vcvtn_s16_f16): New. | |
12303 | (vcvtn_u16_f16): New. | |
12304 | (vcvtnq_s16_f16): New. | |
12305 | (vcvtnq_u16_f16): New. | |
12306 | (vcvtp_s16_f16): New. | |
12307 | (vcvtp_u16_f16): New. | |
12308 | (vcvtpq_s16_f16): New. | |
12309 | (vcvtpq_u16_f16): New. | |
12310 | (vcvt_n_f16_s16): New. | |
12311 | (vcvt_n_f16_u16): New. | |
12312 | (vcvtq_n_f16_s16): New. | |
12313 | (vcvtq_n_f16_u16): New. | |
12314 | (vcvt_n_s16_f16): New. | |
12315 | (vcvt_n_u16_f16): New. | |
12316 | (vcvtq_n_s16_f16): New. | |
12317 | (vcvtq_n_u16_f16): New. | |
12318 | (vfma_f16): New. | |
12319 | (vfmaq_f16): New. | |
12320 | (vfms_f16): New. | |
12321 | (vfmsq_f16): New. | |
12322 | (vmax_f16): New. | |
12323 | (vmaxq_f16): New. | |
12324 | (vmaxnm_f16): New. | |
12325 | (vmaxnmq_f16): New. | |
12326 | (vmin_f16): New. | |
12327 | (vminq_f16): New. | |
12328 | (vminnm_f16): New. | |
12329 | (vminnmq_f16): New. | |
12330 | (vmul_f16): New. | |
12331 | (vmul_lane_f16): New. | |
12332 | (vmul_n_f16): New. | |
12333 | (vmulq_f16): New. | |
12334 | (vmulq_lane_f16): New. | |
12335 | (vmulq_n_f16): New. | |
12336 | (vneg_f16): New. | |
12337 | (vnegq_f16): New. | |
12338 | (vpadd_f16): New. | |
12339 | (vpmax_f16): New. | |
12340 | (vpmin_f16): New. | |
12341 | (vrecpe_f16): New. | |
12342 | (vrecpeq_f16): New. | |
12343 | (vrnd_f16): New. | |
12344 | (vrndq_f16): New. | |
12345 | (vrnda_f16): New. | |
12346 | (vrndaq_f16): New. | |
12347 | (vrndm_f16): New. | |
12348 | (vrndmq_f16): New. | |
12349 | (vrndn_f16): New. | |
12350 | (vrndnq_f16): New. | |
12351 | (vrndp_f16): New. | |
12352 | (vrndpq_f16): New. | |
12353 | (vrndx_f16): New. | |
12354 | (vrndxq_f16): New. | |
12355 | (vrsqrte_f16): New. | |
12356 | (vrsqrteq_f16): New. | |
12357 | (vrecps_f16): New. | |
12358 | (vrecpsq_f16): New. | |
12359 | (vrsqrts_f16): New. | |
12360 | (vrsqrtsq_f16): New. | |
12361 | (vsub_f16): New. | |
12362 | (vsubq_f16): New. | |
12363 | ||
12364 | 2016-09-23 Matthew Wahab <matthew.wahab@arm.com> | |
12365 | ||
12366 | * config.gcc (extra_headers): Add arm_fp16.h | |
12367 | * config/arm/arm_fp16.h: New. | |
12368 | * config/arm/arm_neon.h: Include "arm_fp16.h". | |
12369 | ||
12370 | 2016-09-23 Matthew Wahab <matthew.wahab@arm.com> | |
12371 | ||
12372 | * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf | |
12373 | variants). | |
12374 | (vmulf): New (v8hf, v4hf variants). | |
12375 | (vfma): New (v8hf, v4hf variants). | |
12376 | (vfms): New (v8hf, v4hf variants). | |
12377 | (vsub): New (v8hf, v4hf variants). | |
12378 | (vcage): New (v8hf, v4hf variants). | |
12379 | (vcagt): New (v8hf, v4hf variants). | |
12380 | (vcale): New (v8hf, v4hf variants). | |
12381 | (vcalt): New (v8hf, v4hf variants). | |
12382 | (vceq): New (v8hf, v4hf variants). | |
12383 | (vcgt): New (v8hf, v4hf variants). | |
12384 | (vcge): New (v8hf, v4hf variants). | |
12385 | (vcle): New (v8hf, v4hf variants). | |
12386 | (vclt): New (v8hf, v4hf variants). | |
12387 | (vceqz): New (v8hf, v4hf variants). | |
12388 | (vcgez): New (v8hf, v4hf variants). | |
12389 | (vcgtz): New (v8hf, v4hf variants). | |
12390 | (vcltz): New (v8hf, v4hf variants). | |
12391 | (vclez): New (v8hf, v4hf variants). | |
12392 | (vabd): New (v8hf, v4hf variants). | |
12393 | (vmaxf): New (v8hf, v4hf variants). | |
12394 | (vmaxnm): New (v8hf, v4hf variants). | |
12395 | (vminf): New (v8hf, v4hf variants). | |
12396 | (vminnm): New (v8hf, v4hf variants). | |
12397 | (vpmaxf): New (v4hf variant). | |
12398 | (vpminf): New (v4hf variant). | |
12399 | (vpadd): New (v4hf variant). | |
12400 | (vrecps): New (v8hf, v4hf variants). | |
12401 | (vrsqrts): New (v8hf, v4hf variants). | |
12402 | (vabs): New (v8hf, v4hf variants). | |
12403 | (vneg): New (v8hf, v4hf variants). | |
12404 | (vrecpe): New (v8hf, v4hf variants). | |
12405 | (vrnd): New (v8hf, v4hf variants). | |
12406 | (vrnda): New (v8hf, v4hf variants). | |
12407 | (vrndm): New (v8hf, v4hf variants). | |
12408 | (vrndn): New (v8hf, v4hf variants). | |
12409 | (vrndp): New (v8hf, v4hf variants). | |
12410 | (vrndx): New (v8hf, v4hf variants). | |
12411 | (vrsqrte): New (v8hf, v4hf variants). | |
12412 | (vmul_lane): Add v4hf and v8hf variants. | |
12413 | (vmul_n): Add v4hf and v8hf variants. | |
12414 | (vext): New (v8hf, v4hf variants). | |
12415 | (vcvts): New (v8hi, v4hi variants). | |
12416 | (vcvts): New (v8hf, v4hf variants). | |
12417 | (vcvtu): New (v8hi, v4hi variants). | |
12418 | (vcvtu): New (v8hf, v4hf variants). | |
12419 | (vcvts_n): New (v8hf, v4hf variants). | |
12420 | (vcvtu_n): New (v8hi, v4hi variants). | |
12421 | (vcvts_n): New (v8hi, v4hi variants). | |
12422 | (vcvtu_n): New (v8hf, v4hf variants). | |
12423 | (vbsl): New (v8hf, v4hf variants). | |
12424 | (vcvtas): New (v8hf, v4hf variants). | |
12425 | (vcvtau): New (v8hf, v4hf variants). | |
12426 | (vcvtms): New (v8hf, v4hf variants). | |
12427 | (vcvtmu): New (v8hf, v4hf variants). | |
12428 | (vcvtns): New (v8hf, v4hf variants). | |
12429 | (vcvtnu): New (v8hf, v4hf variants). | |
12430 | (vcvtps): New (v8hf, v4hf variants). | |
12431 | (vcvtpu): New (v8hf, v4hf variants). | |
12432 | ||
12433 | 2016-09-23 Matthew Wahab <matthew.wahab@arm.com> | |
12434 | ||
12435 | * config/arm/arm-builtins.c (hf_UP): New. | |
12436 | (si_UP): New. | |
12437 | (vfp_builtin_data): New. Update comment. | |
12438 | (enum arm_builtins): Include "arm_vfp_builtins.def". | |
12439 | (ARM_BUILTIN_VFP_PATTERN_START): New. | |
12440 | (arm_init_vfp_builtins): New. | |
12441 | (arm_init_builtins): Add arm_init_vfp_builtins. | |
12442 | (arm_expand_vfp_builtin): New. | |
12443 | (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix | |
12444 | long line. | |
12445 | * config/arm/arm_vfp_builtins.def: New file. | |
12446 | * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def. | |
12447 | (arm-builtins.o): Likewise. | |
12448 | ||
12449 | 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org> | |
12450 | ||
12451 | PR ipa/77677 | |
12452 | * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW | |
12453 | from constant while creating value range. | |
12454 | ||
12455 | 2016-09-23 Renlin Li <renlin.li@arm.com> | |
12456 | ||
12457 | * ira.c (ira): Move ira_use_lra_p initialization code to ... | |
12458 | (ira_init_once): Here. | |
12459 | ||
12460 | 2016-09-23 Uros Bizjak <ubizjak@gmail.com> | |
12461 | Jakub Jelinek <jakub@redhat.com> | |
12462 | ||
12463 | * hooks.h (hook_uint_uintp_false): Rename to... | |
12464 | (hook_bool_uint_uintp_false): ... this. | |
12465 | * hooks.c (hook_uint_uintp_false): Rename to... | |
12466 | (hook_bool_uint_uintp_false): ... this. | |
12467 | * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false | |
12468 | instead of hook_uint_uintp_false. | |
12469 | ||
12470 | 2016-09-23 Matthew Wahab <matthew.wahab@arm.com> | |
12471 | ||
12472 | * config/arm/arm-builtins.c (arm_init_neon_builtin): New. | |
12473 | (arm_init_builtins): Move body of a loop to the standalone | |
12474 | function arm_init_neon_builtin. | |
12475 | (arm_expand_neon_builtin_1): New. Update comment. Function body | |
12476 | moved from arm_neon_builtin with some white-space fixes. | |
12477 | (arm_expand_neon_builtin): Move code into the standalone function | |
12478 | arm_expand_neon_builtin_1. | |
12479 | ||
12480 | 2016-09-23 Matthew Wahab <matthew.wahab@arm.com> | |
12481 | ||
12482 | * config/arm/iterators.md (VCVTHI): New. | |
12483 | (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line. | |
12484 | (NEON_VAGLTE): New. | |
12485 | (VFM_LANE_AS): New. | |
12486 | (VH_CVTTO): New. | |
12487 | (V_reg): Add HF, V4HF and V8HF. Fix white-space. | |
12488 | (V_HALF): Add V4HF. Fix white-space. | |
12489 | (V_if_elem): Add HF, V4HF and V8HF. Fix white-space. | |
12490 | (V_s_elem): Likewise. | |
12491 | (V_sz_elem): Fix white-space. | |
12492 | (V_elem_ch): Likewise. | |
12493 | (VH_elem_ch): New. | |
12494 | (scalar_mul_constraint): Add V8HF and V4HF. | |
12495 | (Is_float_mode): Fix white-space. | |
12496 | (Is_d_reg): Add V4HF and V8HF. Fix white-space. | |
12497 | (q): Add HF. Fix white-space. | |
12498 | (float_sup): New. | |
12499 | (float_SUP): New. | |
12500 | (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT. | |
12501 | (neon_vfm_lane_as): New. | |
12502 | * config/arm/neon.md (add<mode>3_fp16): New. | |
12503 | (sub<mode>3_fp16): New. | |
12504 | (mul<mode>3add<mode>_neon): New. | |
12505 | (fma<VH:mode>4_intrinsic): New. | |
12506 | (fmsub<VCVTF:mode>4_intrinsic): Fix white-space. | |
12507 | (fmsub<VH:mode>4_intrinsic): New. | |
12508 | (<absneg_str><mode>2): New. | |
12509 | (neon_v<absneg_str><mode>): New. | |
12510 | (neon_v<fp16_rnd_str><mode>): New. | |
12511 | (neon_vrsqrte<mode>): New. | |
12512 | (neon_vpaddv4hf): New. | |
12513 | (neon_vadd<mode>): New. | |
12514 | (neon_vsub<mode>): New. | |
12515 | (neon_vmulf<mode>): New. | |
12516 | (neon_vfma<VH:mode>): New. | |
12517 | (neon_vfms<VH:mode>): New. | |
12518 | (neon_vc<cmp_op><mode>): New. | |
12519 | (neon_vc<cmp_op><mode>_fp16insn): New | |
12520 | (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New. | |
12521 | (neon_vca<cmp_op><mode>): New. | |
12522 | (neon_vca<cmp_op><mode>_fp16insn): New. | |
12523 | (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New. | |
12524 | (neon_vc<cmp_op>z<mode>): New. | |
12525 | (neon_vabd<mode>): New. | |
12526 | (neon_v<maxmin>f<mode>): New. | |
12527 | (neon_vp<maxmin>fv4hf: New. | |
12528 | (neon_<fmaxmin_op><mode>): New. | |
12529 | (neon_vrecps<mode>): New. | |
12530 | (neon_vrsqrts<mode>): New. | |
12531 | (neon_vrecpe<mode>): New (VH variant). | |
12532 | (neon_vdup_lane<mode>_internal): New. | |
12533 | (neon_vdup_lane<mode>): New. | |
12534 | (neon_vcvt<sup><mode>): New (VCVTHI variant). | |
12535 | (neon_vcvt<sup><mode>): New (VH variant). | |
12536 | (neon_vcvt<sup>_n<mode>): New (VH variant). | |
12537 | (neon_vcvt<sup>_n<mode>): New (VCVTHI variant). | |
12538 | (neon_vcvt<vcvth_op><sup><mode>): New. | |
12539 | (neon_vmul_lane<mode>): New. | |
12540 | (neon_vmul_n<mode>): New. | |
12541 | * config/arm/unspecs.md (UNSPEC_VCALE): New | |
12542 | (UNSPEC_VCALT): New. | |
12543 | (UNSPEC_VFMA_LANE): New. | |
12544 | (UNSPECS_VFMS_LANE): New. | |
12545 | ||
12546 | 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
12547 | ||
12548 | * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10") | |
12549 | ("*extzv<mode><clobbercc_or_nocc>"): | |
12550 | Correct a typo in a comment. | |
12551 | Merged patterns. | |
12552 | ("*insv<mode>_zEC12", "*insv<mode>_z10") | |
12553 | ("*insv<mode><clobbercc_or_nocc>"): Ditto. | |
12554 | ("*insv<mode>_zEC12_appendbitsleft") | |
12555 | ("*insv<mode><clobbercc_or_nocc>_appendbitsleft") | |
12556 | ("*insv<mode>_z10_appendbitsleft"): Ditto. | |
12557 | ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift") | |
12558 | ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto. | |
12559 | Provide pattern with operands switched. | |
12560 | ("*pre_z10_extv<mode>"): | |
12561 | Use new subst patterns. | |
12562 | ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze") | |
12563 | ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr") | |
12564 | ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot") | |
12565 | ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly") | |
12566 | ("*<risbg_n>_<mode>_ior_and_lshiftrt") | |
12567 | ("*<risbg_n>_sidi_ior_and_lshiftrt") | |
12568 | ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"): | |
12569 | New patterns. | |
12570 | ("*extzv_<mode>_sll", "*extzv_<mode>_srl") | |
12571 | ("*extzv_<mode>_srl<clobbercc_or_nocc>") | |
12572 | ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn | |
12573 | on zEC12. | |
12574 | ("SINT"): New mode_iterator with SI, HI, QI. | |
12575 | * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond") | |
12576 | ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern | |
12577 | duplication. | |
12578 | ||
12579 | 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
12580 | ||
12581 | * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to | |
12582 | new interface of s390_contiguous_bitmask_p. | |
12583 | ("contiguous_bitmask_nowrap_operand"): New predicate. | |
12584 | ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw. | |
12585 | * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface | |
12586 | of s390_contiguous_bitmask_p. | |
12587 | ("NxxDw"): Rename NxxDq constraint to NxxDw. | |
12588 | ("NxxSw"): New constraint. | |
12589 | * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound. | |
12590 | * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated | |
12591 | interface. | |
12592 | (s390_contiguous_bitmask_nowrap_p): Export. | |
12593 | * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of | |
12594 | former s390_contiguous_bitmask_p. | |
12595 | (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to | |
12596 | detect contiguous bit ranges with wraparound. Change signature to | |
12597 | return START and END position instead of POS and LENGTH. | |
12598 | (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit | |
12599 | ranges with wraparound. | |
12600 | (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p. | |
12601 | (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand): | |
12602 | Adapt to new signature of s390_contiguous_bitmask_p. | |
12603 | ||
12604 | 2016-09-23 Bin Cheng <bin.cheng@arm.com> | |
12605 | ||
12606 | * tree-vect-loop-manip.c (create_intersect_range_checks_index): New. | |
12607 | (create_intersect_range_checks): New. | |
12608 | (vect_create_cond_for_alias_checks): Call above function. | |
12609 | ||
12610 | 2016-09-23 Matthew Wahab <matthew.wahab@arm.com> | |
12611 | ||
12612 | * config/arm/iterators.md (Code iterators): Fix some white-space | |
12613 | in the comments. | |
12614 | (GLTE): New. | |
12615 | (ABSNEG): New | |
12616 | (FCVT): Moved from vfp.md. | |
12617 | (VCVT_HF_US_N): New. | |
12618 | (VCVT_SI_US_N): New. | |
12619 | (VCVT_HF_US): New. | |
12620 | (VCVTH_US): New. | |
12621 | (FP16_RND): New. | |
12622 | (absneg_str): New. | |
12623 | (FCVTI32typename): Moved from vfp.md. | |
12624 | (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S, | |
12625 | UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S, | |
12626 | UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N, | |
12627 | UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N, | |
12628 | UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U. | |
12629 | (vcvth_op): New. | |
12630 | (fp16_rnd_str): New. | |
12631 | (fp16_rnd_insn): New. | |
12632 | * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New. | |
12633 | (UNSPEC_VCVT_HF_U_N): New. | |
12634 | (UNSPEC_VCVT_SI_S_N): New. | |
12635 | (UNSPEC_VCVT_SI_U_N): New. | |
12636 | (UNSPEC_VCVTH_S): New. | |
12637 | (UNSPEC_VCVTH_U): New. | |
12638 | (UNSPEC_VCVTA_S): New. | |
12639 | (UNSPEC_VCVTA_U): New. | |
12640 | (UNSPEC_VCVTM_S): New. | |
12641 | (UNSPEC_VCVTM_U): New. | |
12642 | (UNSPEC_VCVTN_S): New. | |
12643 | (UNSPEC_VCVTN_U): New. | |
12644 | (UNSPEC_VCVTP_S): New. | |
12645 | (UNSPEC_VCVTP_U): New. | |
12646 | (UNSPEC_VCVTP_S): New. | |
12647 | (UNSPEC_VCVTP_U): New. | |
12648 | (UNSPEC_VRND): New. | |
12649 | (UNSPEC_VRNDA): New. | |
12650 | (UNSPEC_VRNDI): New. | |
12651 | (UNSPEC_VRNDM): New. | |
12652 | (UNSPEC_VRNDN): New. | |
12653 | (UNSPEC_VRNDP): New. | |
12654 | (UNSPEC_VRNDX): New. | |
12655 | * config/arm/vfp.md (<absneg_str>hf2): New. | |
12656 | (neon_vabshf): New. | |
12657 | (neon_v<fp16_rnd_str>hf): New. | |
12658 | (neon_vrndihf): New. | |
12659 | (addhf3): New. | |
12660 | (subhf3): New. | |
12661 | (divhf3): New. | |
12662 | (mulhf3): New. | |
12663 | (*mulsf3neghf_vfp): New. | |
12664 | (*negmulhf3_vfp): New. | |
12665 | (*mulsf3addhf_vfp): New. | |
12666 | (*mulhf3subhf_vfp): New. | |
12667 | (*mulhf3neghfaddhf_vfp): New. | |
12668 | (*mulhf3neghfsubhf_vfp): New. | |
12669 | (fmahf4): New. | |
12670 | (neon_vfmahf): New. | |
12671 | (fmsubhf4_fp16): New. | |
12672 | (neon_vfmshf): New. | |
12673 | (*fnmsubhf4): New. | |
12674 | (*fnmaddhf4): New. | |
12675 | (neon_vsqrthf): New. | |
12676 | (neon_vrsqrtshf): New. | |
12677 | (FCVT): Move to iterators.md. | |
12678 | (FCVTI32typename): Likewise. | |
12679 | (neon_vcvth<sup>hf): New. | |
12680 | (neon_vcvth<sup>si): New. | |
12681 | (neon_vcvth<sup>_nhf_unspec): New. | |
12682 | (neon_vcvth<sup>_nhf): New. | |
12683 | (neon_vcvth<sup>_nsi_unspec): New. | |
12684 | (neon_vcvth<sup>_nsi): New. | |
12685 | (neon_vcvt<vcvth_op>h<sup>si): New. | |
12686 | (neon_<fmaxmin_op>hf): New. | |
12687 | ||
12688 | 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
12689 | ||
12690 | * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes. | |
12691 | ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10") | |
12692 | ("*insv<mode>_zEC12_appendbitsleft") | |
12693 | ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll") | |
12694 | ("*r<noxa>sbg_<mode>_srl"): Use new attributes. | |
12695 | ||
12696 | 2016-09-23 Jakub Jelinek <jakub@redhat.com> | |
12697 | ||
12698 | * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero. | |
12699 | * sreal.h (sreal::min, sreal::max): Avoid static local vars, | |
12700 | construct values without normalization. | |
12701 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize | |
12702 | static local lhs_ops to vNULL. | |
12703 | ||
12704 | 2016-09-23 Matthew Wahab <matthew.wahab@arm.com> | |
12705 | Jiong Wang <jiong.wang@arm.com> | |
12706 | ||
12707 | * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode | |
12708 | available when FP16 instructions are available. | |
12709 | (output_move_vfp): Add support for 16-bit data moves. | |
12710 | (arm_validize_comparison): Fix some white-space. Support HFmode | |
12711 | by conversion to SFmode. | |
12712 | * config/arm/arm.md (truncdfhf2): Fix a comment. | |
12713 | (extendhfdf2): Likewise. | |
12714 | (cstorehf4): New. | |
12715 | (movsicc): Fix some white-space. | |
12716 | (movhfcc): New. | |
12717 | (movsfcc): Fix some white-space. | |
12718 | (*cmovhf): New. | |
12719 | * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16 | |
12720 | instructions are available. | |
12721 | (*thumb2_movhi_vfp): Likewise. | |
12722 | (*arm_movhi_fp16): New. | |
12723 | (*thumb2_movhi_fp16): New. | |
12724 | (*movhf_vfp_fp16): New. | |
12725 | (*movhf_vfp_neon): Disable when VFP FP16 instructions are available. | |
12726 | (*movhf_vfp): Likewise. | |
12727 | (extendhfsf2): Enable when VFP FP16 instructions are available. | |
12728 | (truncsfhf2): Enable when VFP FP16 instructions are available. | |
12729 | ||
12730 | 2016-09-23 Martin Liska <mliska@suse.cz> | |
12731 | ||
12732 | * config/s390/vx-builtins.md: Replace 'adress' with 'address'. | |
12733 | ||
12734 | 2016-09-23 Matthew Wahab <matthew.wahab@arm.com> | |
12735 | ||
12736 | * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and | |
12737 | V4HF modes. | |
12738 | (arm_evpc_neon_vtrn): Likewise. | |
12739 | (arm_evpc_neon_vrev): Likewise. | |
12740 | (arm_evpc_neon_vext): Likewise. | |
12741 | * config/arm/arm_neon.h (vbsl_f16): New. | |
12742 | (vbslq_f16): New. | |
12743 | (vdup_n_f16): New. | |
12744 | (vdupq_n_f16): New. | |
12745 | (vdup_lane_f16): New. | |
12746 | (vdupq_lane_f16): New. | |
12747 | (vext_f16): New. | |
12748 | (vextq_f16): New. | |
12749 | (vmov_n_f16): New. | |
12750 | (vmovq_n_f16): New. | |
12751 | (vrev64_f16): New. | |
12752 | (vrev64q_f16): New. | |
12753 | (vtrn_f16): New. | |
12754 | (vtrnq_f16): New. | |
12755 | (vuzp_f16): New. | |
12756 | (vuzpq_f16): New. | |
12757 | (vzip_f16): New. | |
12758 | (vzipq_f16): New. | |
12759 | * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants). | |
12760 | (vdup_lane): New (v8hf, v4hf variants). | |
12761 | (vext): New (v8hf, v4hf variants). | |
12762 | (vbsl): New (v8hf, v4hf variants). | |
12763 | * config/arm/iterators.md (VDQWH): New. | |
12764 | (VH): New. | |
12765 | (V_double_vector_mode): Add V8HF and V4HF. Fix white-space. | |
12766 | (Scalar_mul_8_16): Fix white-space. | |
12767 | (Is_d_reg): Add V4HF and V8HF. | |
12768 | * config/arm/neon.md (neon_vdup_lane<mode>_internal): New. | |
12769 | (neon_vdup_lane<mode>): New. | |
12770 | (neon_vtrn<mode>_internal): Replace VDQW with VDQWH. | |
12771 | (*neon_vtrn<mode>_insn): Likewise. | |
12772 | (neon_vzip<mode>_internal): Likewise. Also fix white-space. | |
12773 | (*neon_vzip<mode>_insn): Likewise | |
12774 | (neon_vuzp<mode>_internal): Likewise. | |
12775 | (*neon_vuzp<mode>_insn): Likewise | |
12776 | * config/arm/vec-common.md (vec_perm_const<mode>): New. | |
12777 | ||
12778 | 2016-09-23 Jiong Wang <jiong.wang@arm.com> | |
12779 | Matthew Wahab <matthew.wahab@arm.com> | |
12780 | ||
12781 | * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode. | |
12782 | (arm_hard_regno_mode_ok): Allow HImode values in VFP registers. | |
12783 | * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are | |
12784 | available. Also fix some white-space. | |
12785 | * config/arm/vfp.md (*arm_movhi_vfp): New. | |
12786 | (*thumb2_movhi_vfp): New. | |
12787 | ||
12788 | 2016-09-23 Matthew Wahab <matthew.wahab@arm.com> | |
12789 | ||
12790 | * config/arm/arm-c.c (arm_cpu_builtins): Define | |
12791 | "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and | |
12792 | "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC". | |
12793 | ||
12794 | 2016-09-23 Matthew Wahab <matthew.wahab@arm.com> | |
12795 | ||
12796 | * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for | |
12797 | arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok, | |
12798 | arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and | |
12799 | arm_v8_2a_fp16_neon_hw. | |
12800 | (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar, | |
12801 | arm_v8_2a_neon. | |
12802 | ||
12803 | 2016-09-23 Matthew Wahab <matthew.wahab@arm.com> | |
12804 | ||
12805 | * doc/sourcebuild.texi (ARM-specific attributes): Add entries for | |
12806 | arm_fp16_alternative_ok and arm_fp16_none_ok. | |
12807 | ||
12808 | 2016-09-23 Martin Liska <mliska@suse.cz> | |
12809 | ||
12810 | * ipa-icf.c (sem_variable::merge): Replace adress with address. | |
12811 | ||
12812 | 2016-09-23 Matthew Wahab <matthew.wahab@arm.com> | |
12813 | ||
12814 | * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32. | |
12815 | ("armv8.2-a"): New. | |
12816 | ("armv8.2-a+fp16"): New. | |
12817 | * config/arm/arm-protos.h (FL2_ARCH8_2): New. | |
12818 | (FL2_FP16INST): New. | |
12819 | (FL2_FOR_ARCH8_2A): New. | |
12820 | * config/arm/arm-tables.opt: Regenerate. | |
12821 | * config/arm/arm.c (arm_arch8_2): New. | |
12822 | (arm_fp16_inst): New. | |
12823 | (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check | |
12824 | for incompatible fp16-format settings. | |
12825 | * config/arm/arm.h (TARGET_VFP_FP16INST): New. | |
12826 | (TARGET_NEON_FP16INST): New. | |
12827 | (arm_arch8_2): Declare. | |
12828 | (arm_fp16_inst): Declare. | |
12829 | * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for | |
12830 | march=armv8.2-a and march=armv8.2-a+fp16. | |
12831 | * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a | |
12832 | and armv8.2-a+fp16. | |
12833 | * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a", | |
12834 | "-march=armv8.2-a" and "-march=armv8.2-a+fp16". | |
12835 | ||
12836 | 2016-09-23 Martin Liska <mliska@suse.cz> | |
12837 | ||
12838 | * doc/extend.texi: Remove fused-madd from i386 target options. | |
12839 | ||
12840 | 2016-09-23 Martin Liska <mliska@suse.cz> | |
12841 | ||
12842 | * config/i386/i386.c (ix86_valid_target_attribute_inner_p): | |
12843 | Handle movbe. | |
12844 | ||
12845 | 2016-09-23 Martin Liska <mliska@suse.cz> | |
12846 | ||
12847 | * config/i386/i386.c (ix86_valid_target_attribute_inner_p): | |
12848 | Handle crc32. | |
12849 | ||
12850 | 2016-09-23 Martin Liska <mliska@suse.cz> | |
12851 | ||
12852 | PR target/71652 | |
12853 | * config/i386/i386.c (ix86_option_override_internal): Change | |
12854 | signature and return false when there's an error related to | |
12855 | arch string. | |
12856 | (release_options_strings): New function. | |
12857 | (ix86_valid_target_attribute_tree): Call the function. | |
12858 | ||
12859 | 2016-09-23 Jakub Jelinek <jakub@redhat.com> | |
12860 | ||
12861 | * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...) | |
12862 | instead of vec_safe_length (CONSTRUCTOR_ELTS (...)). | |
12863 | (gen_hsa_ctor_assignment): Likewise. | |
12864 | * print-tree.c (print_node): Likewise. | |
12865 | * tree-dump.c (dequeue_and_dump): Likewise. | |
12866 | * tree-sra.c (sra_modify_constructor_assign): Likewise. | |
12867 | * expr.c (store_constructor): Likewise. | |
12868 | * fold-const.c (operand_equal_p): Likewise. | |
12869 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
12870 | * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise. | |
12871 | * ipa-icf-gimple.c (func_checker::compare_operand): Likewise. | |
12872 | ||
12873 | 2016-09-23 Richard Biener <rguenther@suse.de> | |
12874 | ||
12875 | * hooks.h (hook_uint_uintp_false): Declare. | |
12876 | ||
12877 | 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> | |
12878 | ||
12879 | * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT. | |
12880 | (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode). | |
12881 | ||
12882 | 2016-09-22 Martin Sebor <msebor@redhat.com> | |
12883 | ||
12884 | PR target/77676 | |
12885 | * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use | |
12886 | HOST_BITS_PER_WIDE_INT, make a static local variable auto. | |
12887 | (target_int_min): Correct computation. | |
12888 | (format_integer): Use long long as the argument for the ll length | |
12889 | modifier. | |
12890 | (format_floating): Use target_int_max(). | |
12891 | (get_string_length): Same. | |
12892 | (format_string): Avoid setting the bounded flag for strings | |
12893 | of unknown length. | |
12894 | (try_substitute_return_value): Avoid setting range info when | |
12895 | the result isn't bounded. | |
12896 | * varasm.c (assemble_name): Increase buffer size. | |
12897 | ||
12898 | 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
12899 | Terry Guo <terry.guo@arm.com> | |
12900 | ||
12901 | * target.def (elf_flags_numeric): New target hook. | |
12902 | * targhooks.h (default_asm_elf_flags_numeric): New. | |
12903 | * varasm.c (default_asm_elf_flags_numeric): New. | |
12904 | (default_elf_asm_named_section): Use new target hook. | |
12905 | * config/arm/arm.opt (mpure-code): New. | |
12906 | * config/arm/arm.h (SECTION_ARM_PURECODE): New. | |
12907 | * config/arm/arm.c (arm_asm_init_sections): Add section | |
12908 | attribute to default text section if -mpure-code. | |
12909 | (arm_option_check_internal): Diagnose use of option with | |
12910 | non supported targets and/or options. | |
12911 | (arm_asm_elf_flags_numeric): New. | |
12912 | (arm_function_section): New. | |
12913 | (arm_elf_section_type_flags): New. | |
12914 | * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable | |
12915 | for -mpure-code. | |
12916 | * doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New. | |
12917 | * doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise. | |
12918 | ||
12919 | 2016-09-22 Jan Hubicka <hubicka@ucw.cz> | |
12920 | ||
12921 | * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves. | |
12922 | ||
12923 | 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
12924 | ||
12925 | * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *. | |
12926 | * rtl.h: Adjust prototype. | |
12927 | ||
12928 | 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
12929 | ||
12930 | * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *. | |
12931 | (prev_active_insn): Likewise. | |
12932 | (active_insn_p): Likewise. | |
12933 | * rtl.h: Adjust prototypes. | |
12934 | * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust. | |
12935 | * config/arc/arc.md: Likewise. | |
12936 | * config/pa/pa.c (branch_to_delay_slot_p): Likewise. | |
12937 | (branch_needs_nop_p): Likewise. | |
12938 | (use_skip_p): Likewise. | |
12939 | * config/sh/sh.c (gen_block_redirect): Likewise. | |
12940 | (split_branches): Likewise. | |
12941 | * reorg.c (optimize_skip): Likewise. | |
12942 | (fill_simple_delay_slots): Likewise. | |
12943 | (fill_slots_from_thread): Likewise. | |
12944 | (relax_delay_slots): Likewise. | |
12945 | * resource.c (mark_target_live_regs): Likewise. | |
12946 | ||
12947 | 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
12948 | ||
12949 | * config/cris/cris.c (cris_asm_output_case_end): Change argument | |
12950 | type to rtx_insn *. | |
12951 | * emit-rtl.c (next_nonnote_nondebug_insn): Likewise. | |
12952 | (prev_nonnote_nondebug_insn): Likewise. | |
12953 | * config/cris/cris-protos.h: Adjust prototype. | |
12954 | * rtl.h: Likewise. | |
12955 | * jump.c (rtx_renumbered_equal_p): Adjust. | |
12956 | ||
12957 | 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
12958 | ||
12959 | * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *. | |
12960 | * rtl.h: Adjust prototype. | |
12961 | * config/sh/sh.md: Adjust. | |
12962 | * dwarf2out.c (add_var_loc_to_decl): Likewise. | |
12963 | ||
12964 | 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
12965 | ||
12966 | * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *. | |
12967 | (prev_nondebug_insn): Likewise. | |
12968 | * loop-doloop.c (doloop_condition_get): Likewise. | |
12969 | * rtl.h: Adjust prototype. | |
12970 | * cfgloop.h: Likewise. | |
12971 | ||
12972 | 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
12973 | ||
12974 | * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *. | |
12975 | (prev_nonnote_insn): Likewise. | |
12976 | * jump.c (reversed_comparison_code_parts): Likewise. | |
12977 | (reversed_comparison): Likewise. | |
12978 | * rtl.h: Adjust prototypes. | |
12979 | * config/arc/arc.md: Adjust. | |
12980 | * cse.c (find_comparison_args): Likewise. | |
12981 | * reorg.c (redundant_insn): Change return type to rtx_insn *. | |
12982 | (fix_reg_dead_note): Change argument type to rtx_insn *. | |
12983 | (delete_prior_computation): Likewise. | |
12984 | (delete_computation): Likewise. | |
12985 | (fill_slots_from_thread): Adjust. | |
12986 | (relax_delay_slots): Likewise. | |
12987 | * simplify-rtx.c (simplify_unary_operation_1): Likewise. | |
12988 | (simplify_relational_operation_1): Likewise. | |
12989 | (simplify_ternary_operation): Likewise. | |
12990 | ||
12991 | 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
12992 | ||
12993 | * config/arc/arc-protos.h (arc_label_align): Change type of | |
12994 | variables from rtx to rtx_insn *. | |
12995 | * config/arc/arc.c (arc_label_align): Likewise. | |
12996 | * config/arm/arm.c (any_sibcall_could_use_r3): Likewise. | |
12997 | * config/bfin/bfin.c (workaround_speculation): Likewise. | |
12998 | * config/c6x/c6x.c (find_next_cycle_insn): Likewise. | |
12999 | (find_last_same_clock): Likewise. | |
13000 | (reorg_split_calls): Likewise. | |
13001 | * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise. | |
13002 | * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise. | |
13003 | * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise. | |
13004 | (same_cmp_following_p): Likewise. | |
13005 | * config/h8300/h8300.c (same_cmp_preceding_p): Likewise. | |
13006 | (same_cmp_following_p): Likwise. | |
13007 | * config/m32r/m32r.c (m32r_expand_epilogue): Likewise. | |
13008 | * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise. | |
13009 | * config/nds32/nds32.c (nds32_target_alignment): Likewise. | |
13010 | * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise. | |
13011 | (rl78_alloc_physical_registers_cmp): Likewise. | |
13012 | (rl78_alloc_physical_registers_umul): Likewise. | |
13013 | (rl78_calculate_death_notes): Likewise. | |
13014 | * config/s390/s390-protos.h (s390_label_align): Likewise. | |
13015 | * config/s390/s390.c (s390_label_align): Likewise. | |
13016 | * config/sh/sh.c (barrier_align): Likewise. | |
13017 | * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise. | |
13018 | * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise. | |
13019 | (emit_cbcond_nop): Likewise. | |
13020 | ||
13021 | 2016-09-22 Martin Liska <mliska@suse.cz> | |
13022 | ||
13023 | PR ipa/77653 | |
13024 | * ipa-icf.c (sem_variable::merge): Yield merge operation if | |
13025 | alias address matters, not necessarily address of original. | |
13026 | ||
13027 | 2016-09-22 Richard Biener <rguenther@suse.de> | |
13028 | ||
13029 | PR middle-end/77697 | |
13030 | * gimple-fold.c (fold_array_ctor_reference): Turn asserts into | |
13031 | fold fails. | |
13032 | ||
13033 | 2016-09-22 Richard Biener <rguenther@suse.de> | |
13034 | ||
13035 | PR middle-end/77677 | |
13036 | * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW | |
13037 | from constant folding results. | |
13038 | (gimple_resimplify2): Likewise. | |
13039 | (gimple_resimplify3): Likewise. | |
13040 | ||
13041 | 2016-09-22 Richard Biener <rguenther@suse.de> | |
13042 | ||
13043 | PR middle-end/77678 | |
13044 | * expr.c (expand_expr_real_1): Guard array access against negative | |
13045 | offset. | |
13046 | ||
13047 | 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
13048 | ||
13049 | * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead | |
13050 | of MPFR_RNDN. | |
13051 | (format_floating): Likewise. | |
13052 | ||
13053 | 2016-09-22 Jakub Jelinek <jakub@redhat.com> | |
13054 | ||
13055 | PR fortran/77665 | |
13056 | * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops | |
13057 | for all IFN_GOMP_SIMD_* internal fns, not just for | |
13058 | IFN_GOMP_SIMD_ORDERED_*. | |
13059 | ||
13060 | 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com> | |
13061 | ||
13062 | PR target/77670 | |
13063 | * config/rs6000/predicates.md (invert_fpmask_comparison_operator): | |
13064 | New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP | |
13065 | instructions when you want to invert the test. | |
13066 | * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the | |
13067 | correct order for XXSEL. | |
13068 | (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test | |
13069 | for using XSCMP{EQ,GT,GE}DP. | |
13070 | ||
13071 | 2016-09-21 David Malcolm <dmalcolm@redhat.com> | |
13072 | ||
13073 | * genconstants.c (main): Introduce noop_reader and convert call | |
13074 | to read_md_files to a method call. | |
13075 | * genenums.c (main): Likewise. | |
13076 | * genmddeps.c (main): Likewise. | |
13077 | * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with | |
13078 | rtx_reader_ptr->get_top_level_filename (). | |
13079 | (write_tm_preds_h): Likewise. | |
13080 | (write_insn_preds_c): Likewise. | |
13081 | * gensupport.c (class gen_reader): New subclass of rtx_reader. | |
13082 | (rtx_handle_directive): Convert to... | |
13083 | (gen_reader::handle_unknown_directive): ...this. | |
13084 | (init_rtx_reader_args_cb): Convert return type from bool to | |
13085 | rtx_reader *. Create a gen_reader instance, using it for the | |
13086 | call to read_md_files. Return it if no errors occur. | |
13087 | (init_rtx_reader_args): Convert return type from bool to | |
13088 | rtx_reader *. | |
13089 | * gensupport.h (init_rtx_reader_args_cb): Likewise. | |
13090 | (init_rtx_reader_args_cb): Likewise. | |
13091 | * read-md.c (struct file_name_list): Move to class rtx_reader. | |
13092 | (read_md_file): Delete in favor of rtx_reader::m_read_md_file. | |
13093 | (read_md_filename): Delete in favor of | |
13094 | rtx_reader::m_read_md_filename. | |
13095 | (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno. | |
13096 | (in_fname): Delete in favor of rtx_reader::m_toplevel_fname. | |
13097 | (base_dir): Delete in favor of rtx_reader::m_base_dir. | |
13098 | (first_dir_md_include): Delete in favor of | |
13099 | rtx_reader::m_first_dir_md_include. | |
13100 | (last_dir_md_include_ptr): Delete in favor of | |
13101 | rtx_reader::m_last_dir_md_include_ptr. | |
13102 | (max_include_len): Delete. | |
13103 | (rtx_reader_ptr): New. | |
13104 | (fatal_with_file_and_line): Use get_filename and get_lineno | |
13105 | accessors of rtx_reader_ptr. | |
13106 | (require_char_ws): Likewise. | |
13107 | (rtx_reader::read_char): New method, based on ::read_char. | |
13108 | (rtx_reader::unread_char): New method, based on ::unread_char. | |
13109 | (read_escape): Use get_filename and get_lineno accessors of | |
13110 | rtx_reader_ptr. | |
13111 | (read_braced_string): Use get_lineno accessor of rtx_reader_ptr. | |
13112 | (read_string): Use get_filename and get_lineno accessors of | |
13113 | rtx_reader_ptr. | |
13114 | (rtx_reader::rtx_reader): New ctor. | |
13115 | (rtx_reader::~rtx_reader): New dtor. | |
13116 | (handle_include): Convert from a function to... | |
13117 | (rtx_reader::handle_include): ...this method, converting | |
13118 | handle_directive from a callback to a virtual function. | |
13119 | (handle_file): Likewise, converting to... | |
13120 | (rtx_reader::handle_file): ...this method. | |
13121 | (handle_toplevel_file): Likewise, converting to... | |
13122 | (rtx_reader::handle_toplevel_file): ...this method. | |
13123 | (rtx_reader::get_current_location): New method. | |
13124 | (parse_include): Convert from a function to... | |
13125 | (rtx_reader::add_include_path): ...this method, dropping redundant | |
13126 | update to unused max_include_len. | |
13127 | (read_md_files): Convert from a function to... | |
13128 | (rtx_reader::read_md_files): ...this method, converting | |
13129 | handle_directive from a callback to a virtual function. | |
13130 | (noop_reader::handle_unknown_directive): New method. | |
13131 | * read-md.h (directive_handler_t): Delete this typedef. | |
13132 | (in_fname): Delete. | |
13133 | (read_md_file): Delete. | |
13134 | (read_md_lineno): Delete. | |
13135 | (read_md_filename): Delete. | |
13136 | (class rtx_reader): New class. | |
13137 | (rtx_reader_ptr): New decl. | |
13138 | (class noop_reader): New subclass of rtx_reader. | |
13139 | (read_char): Reimplement in terms of rtx_reader::read_char. | |
13140 | (unread_char): Reimplement in terms of rtx_reader::unread_char. | |
13141 | (read_md_files): Delete. | |
13142 | * read-rtl.c (read_rtx_code): Update for deletion of globals | |
13143 | read_md_filename and read_md_lineno. | |
13144 | ||
13145 | 2016-09-21 Jason Merrill <jason@redhat.com> | |
13146 | ||
13147 | * input.h (from_macro_definition_at): New. | |
13148 | ||
13149 | 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org> | |
13150 | ||
13151 | * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values. | |
13152 | ||
13153 | 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
13154 | ||
13155 | PR tree-optimization/77550 | |
13156 | * tree-vect-stmts.c (create_array_ref): Change parameters. | |
13157 | (get_group_alias_ptr_type): New function. | |
13158 | (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type. | |
13159 | ||
13160 | 2016-09-21 Marek Polacek <polacek@redhat.com> | |
13161 | ||
13162 | * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length): | |
13163 | Add falls through comment. | |
13164 | ||
13165 | 2016-09-21 Richard Biener <rguenther@suse.de> | |
13166 | ||
13167 | * dwarf2out.c (remove_child_with_prev): Clear child->die_sib. | |
13168 | (replace_child): Likewise. | |
13169 | (remove_child_TAG): Adjust. | |
13170 | (move_marked_base_types): Likewise. | |
13171 | (prune_unused_types_prune): Clear die_sib of removed children. | |
13172 | ||
13173 | 2016-09-21 Georg-Johann Lay <avr@gjlay.de> | |
13174 | ||
13175 | PR target/77326 | |
13176 | * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn | |
13177 | touches some regs mentioned in cc_status, do CC_STATUS_INIT. | |
13178 | ||
13179 | 2016-09-21 Richard Biener <rguenther@suse.de> | |
13180 | ||
13181 | PR tree-optimization/77648 | |
13182 | * tree-ssa-structalias.c (process_constraint): Handle all DEREF | |
13183 | with complex RHS. | |
13184 | (make_transitive_closure_constraints): Adjust comment. | |
13185 | (make_any_offset_constraints): New function. | |
13186 | (handle_rhs_call): Make sure to first expand a pointer to all | |
13187 | subfields before transitively closing it. | |
13188 | (handle_const_call): Likewise. Properly expand returned | |
13189 | pointers as well. | |
13190 | (handle_pure_call): Likewise. | |
13191 | ||
13192 | 2016-09-21 Richard Biener <rguenther@suse.de> | |
13193 | Jakub Jelinek <jakub@redhat.com> | |
13194 | ||
13195 | PR tree-optimization/77621 | |
13196 | * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split | |
13197 | group at non-vectorizable stmts. | |
13198 | ||
13199 | 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org> | |
13200 | ||
13201 | PR tree-optimization/72835 | |
13202 | * tree-ssa-reassoc.c (make_new_ssa_for_def): New. | |
13203 | (make_new_ssa_for_all_defs): Likewise. | |
13204 | (zero_one_operation): Replace all SSA_NAMEs defined in the chain. | |
13205 | ||
13206 | 2016-09-20 Martin Sebor <msebor@redhat.com> | |
13207 | ||
13208 | PR middle-end/49905 | |
13209 | * Makefile.in (OBJS): Add gimple-ssa-sprintf.o. | |
13210 | * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine. | |
13211 | * config/linux.c (gnu_libc_printf_pointer_format): New function. | |
13212 | * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same. | |
13213 | * config/sol2.c (solaris_printf_pointer_format): New function. | |
13214 | * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New | |
13215 | options. | |
13216 | * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document. | |
13217 | * doc/tm.texi: Regenerate. | |
13218 | * gimple-fold.h (get_range_strlen): New function. | |
13219 | (get_maxval_strlen): Declare existing function. | |
13220 | * gimple-fold.c (get_range_strlen): Add arguments and compute both | |
13221 | maximum and minimum. | |
13222 | (get_range_strlen): Define overload. | |
13223 | (get_maxval_strlen): Adjust. | |
13224 | * gimple-ssa-sprintf.c: New file and pass. | |
13225 | * passes.def (pass_sprintf_length): Add new pass. | |
13226 | * targhooks.h (default_printf_pointer_format): Declare new function. | |
13227 | (gnu_libc_printf_pointer_format): Same. | |
13228 | (solaris_libc_printf_pointer_format): Same. | |
13229 | * targhooks.c (default_printf_pointer_format): Define new function. | |
13230 | * tree-pass.h (make_pass_sprintf_length): Declare new function. | |
13231 | * print-tree.c: Increase buffer size. | |
13232 | ||
13233 | 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org> | |
13234 | ||
13235 | * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results. | |
13236 | ||
13237 | 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org> | |
13238 | ||
13239 | * common.opt: New option -fipa-vrp. | |
13240 | * ipa-cp.c (ipa_get_vr_lat): New. | |
13241 | (ipcp_vr_lattice::print): Likewise. | |
13242 | (print_all_lattices): Call ipcp_vr_lattice::print. | |
13243 | (ipcp_vr_lattice::meet_with): New. | |
13244 | (ipcp_vr_lattice::meet_with_1): Likewise. | |
13245 | (ipcp_vr_lattice::top_p): Likewise. | |
13246 | (ipcp_vr_lattice::bottom_p): Likewsie. | |
13247 | (ipcp_vr_lattice::set_to_bottom): Likewise. | |
13248 | (set_all_contains_variable): Call VR set_to_bottom. | |
13249 | (initialize_node_lattices): Init VR lattices. | |
13250 | (propagate_vr_accross_jump_function): New. | |
13251 | (propagate_constants_accross_call): Call | |
13252 | propagate_vr_accross_jump_function. | |
13253 | (ipcp_store_vr_results): New. | |
13254 | (ipcp_driver): Handle VR. | |
13255 | * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR. | |
13256 | (ipa_set_jf_unknown): Likewise. | |
13257 | (ipa_compute_jump_functions_for_edge): Likewise. | |
13258 | (ipa_node_params_t::duplicate): Likewise. | |
13259 | (ipa_write_jump_function): Likewise. | |
13260 | (ipa_read_jump_function): Likewise. | |
13261 | (write_ipcp_transformation_info): Likewise. | |
13262 | (read_ipcp_transformation_info): Likewise. | |
13263 | (ipcp_update_vr): New. | |
13264 | (ipcp_transform_function): Handle VR. | |
13265 | * ipa-prop.h (struct ipa_vr): New. | |
13266 | * cgraph.c: Include tree-vrp.h. | |
13267 | * cgraphunit.c: Likewise. | |
13268 | * ipa-utils.c: Likewise. | |
13269 | * ipa.c: Likewise. | |
13270 | * opts.c: Likewise. | |
13271 | * toplev.c: Likewise. | |
13272 | * ipa-devirt.c: Likewise. | |
13273 | * ipa-inline-transform.c: Likewise. | |
13274 | * ipa-inline.c: Likewise. | |
13275 | * ipa-profile.c: Likewise. | |
13276 | ||
13277 | 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org> | |
13278 | ||
13279 | * doc/invoke.texi: Document -fdump-tree-evrp. | |
13280 | * passes.def: Define new pass_early_vrp. | |
13281 | * timevar.def: Define new TV_TREE_EARLY_VRP. | |
13282 | * tree-pass.h (make_pass_early_vrp): New. | |
13283 | * tree-ssa-propagate.c: Make replace_uses_in non static. | |
13284 | * tree-ssa-propagate.h: Export replace_uses_in. | |
13285 | * tree-vrp.c (extract_range_for_var_from_comparison_expr): New. | |
13286 | (extract_range_from_assert): Factor out | |
13287 | extract_range_for_var_from_comparison_expr. | |
13288 | (vrp_initialize_lattice): New. | |
13289 | (vrp_initialize): Factor out vrp_initialize_lattice. | |
13290 | (vrp_valueize): Fix it to reject complex value ranges. | |
13291 | (vrp_free_lattice): New. | |
13292 | (evrp_dom_walker::before_dom_children): Likewise. | |
13293 | (evrp_dom_walker::after_dom_children): Likewise. | |
13294 | (evrp_dom_walker::push_value_range): Likewise. | |
13295 | (evrp_dom_walker::pop_value_range): Likewise. | |
13296 | (execute_early_vrp): Likewise. | |
13297 | (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice. | |
13298 | (make_pass_early_vrp): New. | |
13299 | ||
13300 | 2016-09-20 Uros Bizjak <ubizjak@gmail.com> | |
13301 | ||
13302 | * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi | |
13303 | instead of exact_log2. | |
13304 | ||
13305 | 2016-09-20 Uros Bizjak <ubizjak@gmail.com> | |
13306 | ||
13307 | PR target/77621 | |
13308 | * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>: | |
13309 | Don't return word_mode for !TARGET_VECTORIZE_DOUBLE. | |
13310 | (ix86_add_stmt_cost): Penalize DFmode vector operations | |
13311 | for !TARGET_VECTORIZE_DOUBLE. | |
13312 | ||
13313 | 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com> | |
13314 | ||
13315 | * doc/invoke.texi (Warning Options): Simplify language. | |
13316 | (Optimize Options): Complete sentence. | |
13317 | ||
13318 | 2016-09-20 David Edelsohn <dje.gcc@gmail.com> | |
13319 | ||
13320 | * dbxout.c (xcoff_debug_hooks): Add filename parameter to | |
13321 | early_finish hook. | |
13322 | ||
13323 | 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com> | |
13324 | ||
13325 | PR target/71395 | |
13326 | * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF | |
13327 | inits on power8 and above, use the VMRGEW instruction instead of a | |
13328 | permute. | |
13329 | ||
13330 | * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec. | |
13331 | (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating | |
13332 | initialization. | |
13333 | ||
13334 | 2016-09-20 Tamar Christina <tamar.christina@arm.com> | |
13335 | ||
13336 | * config/aarch64/arm_neon.h | |
13337 | (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes. | |
13338 | (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise. | |
13339 | (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise. | |
13340 | ||
13341 | 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
13342 | ||
13343 | * config/var/vax.h (ELIMINABLE_REGS): Define. | |
13344 | (INITIAL_ELIMINATION_OFFSET): Define. | |
13345 | ||
13346 | 2016-09-20 Jakub Jelinek <jakub@redhat.com> | |
13347 | ||
13348 | PR middle-end/77624 | |
13349 | * builtins.c (fold_builtin_atomic_always_lock_free): Only look through | |
13350 | cast to void * if the cast is from some other pointer type. | |
13351 | ||
13352 | 2016-09-20 Richard Biener <rguenther@suse.de> | |
13353 | ||
13354 | PR tree-optimization/77646 | |
13355 | * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number | |
13356 | a VDEF. | |
13357 | ||
13358 | 2016-09-20 Tamar Christina <tamar.christina@arm.com> | |
13359 | ||
13360 | * config/aarch64/arm_neon.h: Add gnu_inline and artificial | |
13361 | attributes to all inlined functions and make them extern. | |
13362 | ||
13363 | 2016-09-20 Richard Biener <rguenther@suse.de> | |
13364 | ||
13365 | * debug.h (gcc_debug_hooks): Add filename parameter to early_finish | |
13366 | hook. | |
13367 | * debug.c (do_nothing_debug_hooks): Adjust. | |
13368 | * dbxout.c (dbx_debug_hooks): Likewise. | |
13369 | * sdbout.c (sdb_debug_hooks): Likewise. | |
13370 | * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise. | |
13371 | (dwarf2out_finish): Move producer, filename and | |
13372 | path annotation ... | |
13373 | (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing. | |
13374 | * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust. | |
13375 | ||
13376 | 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
13377 | ||
13378 | PR c++/77434 | |
13379 | * doc/invoke.texi: Document -Wint-in-bool-context. | |
13380 | ||
13381 | PR middle-end/77421 | |
13382 | * dwarf2out.c (output_loc_operands): Fix an assertion. | |
13383 | ||
13384 | 2016-09-19 Joseph Myers <joseph@codesourcery.com> | |
13385 | ||
13386 | * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__] | |
13387 | (CR_DECIMAL_DIG): New macro. | |
13388 | ||
13389 | 2016-09-19 Joseph Myers <joseph@codesourcery.com> | |
13390 | ||
13391 | * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128 | |
13392 | element. | |
13393 | ||
13394 | 2016-09-19 Vladimir Makarov <vmakarov@redhat.com> | |
13395 | ||
13396 | PR rtl-optimization/77416 | |
13397 | * lra-remat.c (operand_to_remat): Process hard coded insn | |
13398 | registers. | |
13399 | ||
13400 | 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
13401 | ||
13402 | * simplify-rtx.c (simplify_relational_operation_1): Add transformation | |
13403 | (GTU (PLUS a C) (C - 1)) --> (LTU a -C). | |
13404 | ||
13405 | 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org> | |
13406 | ||
13407 | * target.def (lra_p): Wordsmithing. | |
13408 | * doc/tm.texi: Regenerate. | |
13409 | ||
13410 | 2016-09-19 Jakub Jelinek <jakub@redhat.com> | |
13411 | Jan Hubicka <jh@suse.cz> | |
13412 | ||
13413 | PR target/77587 | |
13414 | * cgraph.c (cgraph_node::rtl_info): Pass &avail to | |
13415 | ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE. | |
13416 | Call ultimate_alias_target just once, not up to 4 times. | |
13417 | ||
13418 | 2016-09-19 Richard Biener <rguenther@suse.de> | |
13419 | ||
13420 | * dwarf2out.c (early_dwarf_finished): New global. | |
13421 | (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished | |
13422 | is false. | |
13423 | (dwarf2out_early_finish): Set early_dwarf_finished at the end, | |
13424 | if called from LTO exit early. | |
13425 | (dwarf2out_late_global_decl): When being during the early | |
13426 | debug phase do not add locations but only const value attributes. | |
13427 | Adjust the way we generate early DIEs for LTO. | |
13428 | ||
13429 | 2016-09-19 Richard Biener <rguenther@suse.de> | |
13430 | ||
13431 | PR middle-end/77605 | |
13432 | * tree-data-ref.c (analyze_subscript_affine_affine): Use the | |
13433 | proper niter to bound the loops. | |
13434 | ||
13435 | 2016-09-19 Richard Biener <rguenther@suse.de> | |
13436 | ||
13437 | PR tree-optimization/77514 | |
13438 | * tree-ssa-pre.c (create_expression_by_pieces): Optimize | |
13439 | search for folded stmt. | |
13440 | ||
13441 | 2016-09-17 Jan Hubicka <hubicka@ucw.cz> | |
13442 | ||
13443 | * passes.def (pass_early_thread_jumps): Schedule after forwprop. | |
13444 | * tree-pass.h (make_pass_early_thread_jumps): Declare. | |
13445 | * tree-ssa-threadbackward.c (fsm_find_thread_path, | |
13446 | fsm_find_thread_path, profitable_jump_thread_path, | |
13447 | fsm_find_control_statement_thread_paths, | |
13448 | find_jump_threads_backwards): Add speed_p parameter. | |
13449 | (pass_data_early_thread_jumps): New pass. | |
13450 | (make_pass_early_thread_jumps): New function. | |
13451 | ||
13452 | 2016-09-17 Andreas Schwab <schwab@suse.de> | |
13453 | ||
13454 | * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast. | |
13455 | * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise. | |
13456 | ||
13457 | 2016-09-16 Eric Botcazou <ebotcazou@adacore.com> | |
13458 | ||
13459 | * recog.c (rest_of_handle_split_after_reload): Delete. | |
13460 | (pass_split_after_reload::gate): New method. | |
13461 | (pass_split_after_reload::execute): Call split_all_insns directly. | |
13462 | ||
13463 | 2016-09-16 Jonathan Wakely <jwakely@redhat.com> | |
13464 | ||
13465 | * doc/extend.texi (Integer Overflow Builtins): Fix type of out | |
13466 | parameters for functions taking long long arguments. | |
13467 | ||
13468 | 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
13469 | ||
13470 | PR target/77613 | |
13471 | * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for | |
13472 | splat with truncate. | |
13473 | ||
13474 | 2016-09-16 Jason Merrill <jason@redhat.com> | |
13475 | ||
13476 | * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero): | |
13477 | New. | |
13478 | * hwint.c (exact_log2): Use pow2p_hwi. | |
13479 | (ctz_hwi, ffs_hwi): Use least_bit_hwi. | |
13480 | * alias.c (memrefs_conflict_p): Use pow2_or_zerop. | |
13481 | * builtins.c (get_object_alignment_2, get_object_alignment) | |
13482 | (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use | |
13483 | least_bit_hwi. | |
13484 | * calls.c (compute_argument_addresses, store_one_arg): Use | |
13485 | least_bit_hwi. | |
13486 | * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi. | |
13487 | * combine.c (force_to_mode): Use least_bit_hwi. | |
13488 | (contains_muldiv, find_split_point, combine_simplify_rtx) | |
13489 | (simplify_if_then_else, simplify_set, force_to_mode) | |
13490 | (if_then_else_cond, simplify_and_const_int_1) | |
13491 | (simplify_compare_const): Use pow2p_hwi. | |
13492 | * cse.c (fold_rtx): Use pow2p_hwi. | |
13493 | * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1): | |
13494 | Use least_bit_hwi. | |
13495 | * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi. | |
13496 | (init_expmed_one_conv): Use pow2p_hwi. | |
13497 | * expr.c (is_aligning_offset): Use pow2p_hwi. | |
13498 | * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop. | |
13499 | (fold_binary_loc): Use pow2p_hwi. | |
13500 | * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi. | |
13501 | * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi. | |
13502 | * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi. | |
13503 | * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment): | |
13504 | Use least_bit_hwi. | |
13505 | * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi. | |
13506 | * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi. | |
13507 | * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi. | |
13508 | * omp-low.c (oacc_loop_fixed_partitions) | |
13509 | (oacc_loop_auto_partitions): Use least_bit_hwi. | |
13510 | * rtlanal.c (nonzero_bits1): Use ctz_or_zero. | |
13511 | * stor-layout.c (place_field): Use least_bit_hwi. | |
13512 | * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi. | |
13513 | * tree-sra.c (build_ref_for_offset): Use least_bit_hwi. | |
13514 | * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi. | |
13515 | * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi. | |
13516 | * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi. | |
13517 | * tree-vect-data-refs.c (vect_analyze_group_access_1) | |
13518 | (vect_grouped_store_supported, vect_grouped_load_supported) | |
13519 | (vect_permute_load_chain, vect_shift_permute_load_chain) | |
13520 | (vect_transform_grouped_load): Use pow2p_hwi. | |
13521 | * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero. | |
13522 | * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero. | |
13523 | * tree-vect-stmts.c (vectorizable_mask_load_store): Use | |
13524 | least_bit_hwi. | |
13525 | * tsan.c (instrument_expr): Use least_bit_hwi. | |
13526 | * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop. | |
13527 | ||
13528 | 2016-09-16 Andreas Schwab <schwab@suse.de> | |
13529 | ||
13530 | * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter | |
13531 | OFFSET, not offset. | |
13532 | * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise. | |
13533 | ||
13534 | 2016-09-16 Jakub Jelinek <jakub@redhat.com> | |
13535 | ||
13536 | PR target/77526 | |
13537 | * combine.c (rest_of_handle_combine): If any edges have been purged, | |
13538 | free dominators if available. | |
13539 | ||
13540 | 2016-09-16 Jakub Jelinek <jakub@redhat.com> | |
13541 | Eric Botcazou <ebotcazou@adacore.com> | |
13542 | ||
13543 | PR middle-end/77594 | |
13544 | * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall | |
13545 | through into expand_addsub_overflow after expand_neg_overflow. | |
13546 | ||
13547 | 2016-09-15 David Malcolm <dmalcolm@redhat.com> | |
13548 | ||
13549 | * diagnostic-show-locus.c | |
13550 | (selftest::test_fixit_insert_containing_newline): New function. | |
13551 | (selftest::test_fixit_replace_containing_newline): New function. | |
13552 | (selftest::diagnostic_show_locus_c_tests): Call the above. | |
13553 | ||
13554 | 2016-09-15 Bin Cheng <bin.cheng@arm.com> | |
13555 | ||
13556 | PR tree-optimization/77503 | |
13557 | * tree-vect-loop.c (vectorizable_reduction): Record reduction | |
13558 | code for CONST_COND_REDUCTION at analysis stage and use it at | |
13559 | transform stage. | |
13560 | * tree-vectorizer.h (struct _stmt_vec_info): New field. | |
13561 | (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro. | |
13562 | * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new | |
13563 | field. | |
13564 | ||
13565 | 2016-09-15 Richard Biener <rguenther@suse.de> | |
13566 | ||
13567 | PR middle-end/77544 | |
13568 | * fold-const.c (split_tree): Do not split constant ~X. | |
13569 | ||
13570 | 2016-09-15 Jakub Jelinek <jakub@redhat.com> | |
13571 | ||
13572 | PR rtl-optimization/77425 | |
13573 | * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list | |
13574 | is NULL. | |
13575 | ||
13576 | PR middle-end/77475 | |
13577 | * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify, | |
13578 | use %qs instead of %s where desirable, use argument instead of arg in | |
13579 | the diagnostic wording, add list of supported strategies and | |
13580 | spellcheck hint. | |
13581 | (ix86_option_override_internal): Emit target("m...") instead of | |
13582 | option("m...") in the diagnostic. Use %qs instead of %s in invalid | |
13583 | -march/-mtune option diagnostic. Add list of supported arches/tunings | |
13584 | and spellcheck hint. Remove prefix, suffix and sw variables, use | |
13585 | main_args_p ? "..." : "..." in diagnostics to make translation | |
13586 | possible. | |
13587 | ||
13588 | 2016-09-15 Richard Biener <rguenther@suse.de> | |
13589 | ||
13590 | * dwarf2asm.h (dw2_asm_output_offset): Add overload with | |
13591 | extra offset argument. | |
13592 | * dwarf2asm.c (dw2_asm_output_offset): Implement that. | |
13593 | * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation | |
13594 | to reflect new offset parameter. | |
13595 | * doc/tm.texi: Regenerate. | |
13596 | * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust. | |
13597 | * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add | |
13598 | offset argument. | |
13599 | (darwin_asm_output_dwarf_offset): Likewise. | |
13600 | * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset | |
13601 | argument. | |
13602 | (darwin_asm_output_dwarf_offset): Pass offset argument through. | |
13603 | * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust. | |
13604 | * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise. | |
13605 | ||
13606 | 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com> | |
13607 | ||
13608 | PR fortran/72743 | |
13609 | * ipa-icf.c (set_alias_uids): New function. | |
13610 | (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of | |
13611 | all the merged variable's referring aliases. | |
13612 | ||
13613 | 2016-09-15 Richard Biener <rguenther@suse.de> | |
13614 | ||
13615 | PR tree-optimization/77514 | |
13616 | * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage | |
13617 | only forced_stmts sequence. | |
13618 | ||
13619 | 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org> | |
13620 | ||
13621 | * tree-ssanames.h (FOR_EACH_SSA_NAME): New. | |
13622 | * cfgexpand.c (update_alias_info_with_stack_vars): Use | |
13623 | FOR_EACH_SSA_NAME to iterate over SSA variables. | |
13624 | (pass_expand::execute): Likewise. | |
13625 | * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise. | |
13626 | * tree-cfg.c (dump_function_to_file): Likewise. | |
13627 | * tree-into-ssa.c (pass_build_ssa::execute): Likewise. | |
13628 | (update_ssa): Likewise. | |
13629 | * tree-ssa-alias.c (dump_alias_info): Likewise. | |
13630 | * tree-ssa-ccp.c (ccp_finalize): Likewise. | |
13631 | * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise. | |
13632 | (create_outofssa_var_map): Likewise. | |
13633 | (coalesce_ssa_name): Likewise. | |
13634 | * tree-ssa-operands.c (dump_immediate_uses): Likewise. | |
13635 | * tree-ssa-pre.c (compute_avail): Likewise. | |
13636 | * tree-ssa-sccvn.c (init_scc_vn): Likewise. | |
13637 | (scc_vn_restore_ssa_info): Likewise. | |
13638 | (free_scc_vn): Likwise. | |
13639 | (run_scc_vn): Likewise. | |
13640 | * tree-ssa-structalias.c (compute_points_to_sets): Likewise. | |
13641 | * tree-ssa-ter.c (new_temp_expr_table): Likewise. | |
13642 | * tree-ssa-copy.c (fini_copy_prop): Likewise. | |
13643 | * tree-ssa.c (verify_ssa): Likewise. | |
13644 | ||
13645 | 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com> | |
13646 | ||
13647 | * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2 | |
13648 | and mips64r2 as default 32-bit and 64-bit architectures. | |
13649 | (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6 | |
13650 | as default 32-bit and 64-bit architectures. | |
13651 | ||
13652 | 2016-09-14 Pat Haugen <pthaugen@us.ibm.com> | |
13653 | ||
13654 | * loop-unroll.c (unroll_loop_runtime_iterations): Set probability | |
13655 | of succ edge. | |
13656 | ||
13657 | 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org> | |
13658 | ||
13659 | * target.def (lra_p): Change commentary (for the manual) for the | |
13660 | new default. | |
13661 | * doc/tm.texi: Regenerate. | |
13662 | ||
13663 | 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org> | |
13664 | ||
13665 | * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro. | |
13666 | * config/arm/arm.c (TARGET_LRA_P): Delete macro. | |
13667 | * config/i386/i386.c (TARGET_LRA_P): Delete macro. | |
13668 | * config/nds32/nds32.c (TARGET_LRA_P): Delete macro. | |
13669 | ||
13670 | 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org> | |
13671 | ||
13672 | * targhooks.c (default_lra_p): Return true instead of false. | |
13673 | ||
13674 | 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org> | |
13675 | ||
13676 | * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to | |
13677 | hook_bool_void_false. | |
13678 | * config/avr/avr.c: Ditto. | |
13679 | * config/bfin/bfin.c: Ditto. | |
13680 | * config/c6x/c6x.c: Ditto. | |
13681 | * config/cr16/cr16.c: Ditto. | |
13682 | * config/cris/cris.c: Ditto. | |
13683 | * config/epiphany/epiphany.c: Ditto. | |
13684 | * config/fr30/fr30.c: Ditto. | |
13685 | * config/frv/frv.c: Ditto. | |
13686 | * config/h8300/h8300.c: Ditto. | |
13687 | * config/ia64/ia64.c: Ditto. | |
13688 | * config/iq2000/iq2000.c: Ditto. | |
13689 | * config/lm32/lm32.c: Ditto. | |
13690 | * config/m32c/m32c.c: Ditto. | |
13691 | * config/m32r/m32r.c: Ditto. | |
13692 | * config/m68k/m68k.c: Ditto. | |
13693 | * config/mcore/mcore.c: Ditto. | |
13694 | * config/microblaze/microblaze.c: Ditto. | |
13695 | * config/mmix/mmix.c: Ditto. | |
13696 | * config/mn10300/mn10300.c: Ditto. | |
13697 | * config/moxie/moxie.c: Ditto. | |
13698 | * config/msp430/msp430.c: Ditto. | |
13699 | * config/nios2/nios2.c: Ditto. | |
13700 | * config/nvptx/nvptx.c: Ditto. | |
13701 | * config/pa/pa.c: Ditto. | |
13702 | * config/pdp11/pdp11.c: Ditto. | |
13703 | * config/rl78/rl78.c: Ditto. | |
13704 | * config/sparc/sparc.c: Ditto. | |
13705 | * config/spu/spu.c: Ditto. | |
13706 | * config/stormy16/stormy16.c: Ditto. | |
13707 | * config/tilegx/tilegx.c: Ditto. | |
13708 | * config/tilepro/tilepro.c: Ditto. | |
13709 | * config/v850/v850.c: Ditto. | |
13710 | * config/vax/vax.c: Ditto. | |
13711 | * config/visium/visium.c: Ditto. | |
13712 | * config/xtensa/xtensa.c: Ditto. | |
13713 | ||
13714 | 2016-09-14 Jakub Jelinek <jakub@redhat.com> | |
13715 | ||
13716 | PR sanitizer/68260 | |
13717 | * tsan.c: Include target.h. | |
13718 | (enum tsan_atomic_action): Add bool_clear and bool_test_and_set. | |
13719 | (BOOL_CLEAR, BOOL_TEST_AND_SET): Define. | |
13720 | (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and | |
13721 | BUILT_IN_ATOMIC_TEST_AND_SET entries. | |
13722 | (instrument_builtin_call): Handle bool_clear and bool_test_and_set. | |
13723 | ||
13724 | 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
13725 | Martin Liska <mliska@suse.cz> | |
13726 | ||
13727 | PR middle-end/77574 | |
13728 | * predict.c (force_edge_cold): Add braces to a condition. | |
13729 | ||
13730 | 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
13731 | ||
13732 | PR rtl-optimization/77289 | |
13733 | * lra-constraints.c (get_final_hard_regno): Removed. | |
13734 | (get_hard_regno): Add new parameter final_p. | |
13735 | (get_reg_class): Directly call lra_get_elimination_hard_regno. | |
13736 | (operands_match_p): Adjust call to get_hard_regno. | |
13737 | (uses_hard_regs_p): Likewise. | |
13738 | (process_alt_operands): Likewise. | |
13739 | ||
13740 | 2016-09-13 Joe Seymour <joe.s@somniumtech.com> | |
13741 | ||
13742 | PR target/70713 | |
13743 | * config/msp430/msp430.c (msp430_start_function): Emit an error | |
13744 | if a function is both weak and specifies an interrupt number. | |
13745 | ||
13746 | 2016-09-13 Jakub Jelinek <jakub@redhat.com> | |
13747 | ||
13748 | PR tree-optimization/77454 | |
13749 | * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after | |
13750 | changing GIMPLE_COND. Move update_stmt_if_modified call after this. | |
13751 | Formatting fix. | |
13752 | ||
13753 | 2016-09-13 Tamar Christina <tamar.christina@arm.com> | |
13754 | ||
13755 | * config/aarch64/aarch64-builtins.c | |
13756 | (aarch64_init_simd_builtins): Fix builtin type signature printing. | |
13757 | ||
13758 | 2016-09-13 Uros Bizjak <ubizjak@gmail.com> | |
13759 | ||
13760 | * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named | |
13761 | SFmode and SCmode arguments by reference. | |
13762 | ||
13763 | 2016-09-13 David Malcolm <dmalcolm@redhat.com> | |
13764 | ||
13765 | * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert): | |
13766 | Rename to... | |
13767 | (selftest::test_one_liner_fixit_insert_before): ...this, and update | |
13768 | for renaming of add_fixit_insert to add_fixit_insert_before. | |
13769 | (selftest::test_one_liner_fixit_insert_after): New function. | |
13770 | (selftest::test_one_liner_fixit_validation_adhoc_locations): | |
13771 | Update for renaming of add_fixit_insert to add_fixit_insert_before. | |
13772 | (selftest::test_one_liner_many_fixits): Likewise. | |
13773 | (selftest::test_diagnostic_show_locus_one_liner): Update for | |
13774 | renaming, call new test function. | |
13775 | (selftest::test_diagnostic_show_locus_fixit_lines): Update for | |
13776 | renaming of add_fixit_insert to add_fixit_insert_before. | |
13777 | (selftest::test_fixit_consolidation): Likewise. | |
13778 | * diagnostic.c (selftest::test_print_parseable_fixits_insert): | |
13779 | Likewise. | |
13780 | * edit-context.c (selftest::test_applying_fixits_insert): Rename to... | |
13781 | (selftest::test_applying_fixits_insert_before): ...this. | |
13782 | (selftest::test_applying_fixits_insert): Update for renaming of | |
13783 | add_fixit_insert to add_fixit_insert_before. | |
13784 | (selftest::test_applying_fixits_insert_after): New function. | |
13785 | (selftest::test_applying_fixits_insert_after_at_line_end): New | |
13786 | function. | |
13787 | (selftest::test_applying_fixits_insert_after_failure): New function. | |
13788 | (selftest::test_applying_fixits_multiple): Update for renaming of | |
13789 | add_fixit_insert to add_fixit_insert_before. | |
13790 | (selftest::change_line): Likewise. | |
13791 | (selftest::test_applying_fixits_unreadable_file): Likewise. | |
13792 | (selftest::test_applying_fixits_line_out_of_range): Likewise. | |
13793 | (selftest::test_applying_fixits_column_validation): Likewise. | |
13794 | (selftest::test_applying_fixits_column_validation): Likewise. | |
13795 | (selftest::edit_context_c_tests): Update for renamed test function; | |
13796 | call new test functions. | |
13797 | ||
13798 | 2016-09-13 Pat Haugen <pthaugen@us.ibm.com> | |
13799 | ||
13800 | PR tree-optimization/77536 | |
13801 | PR rtl-optimization/68212 | |
13802 | * config/rs6000/rs6000.md (div->recip splitter): Remove | |
13803 | optimize_insn_for_speed_p condition. | |
13804 | ||
13805 | 2016-09-13 Maciej W. Rozycki <macro@imgtec.com> | |
13806 | ||
13807 | * optabs.c (prepare_cmp_insn): Update documentation comment. | |
13808 | ||
13809 | 2016-09-13 Jakub Jelinek <jakub@redhat.com> | |
13810 | Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
13811 | ||
13812 | PR middle-end/77475 | |
13813 | * opts.h (candidates_list_and_hint): Declare. | |
13814 | * opts-common.c (candidates_list_and_hint): New function. | |
13815 | (cmdline_handle_error): Use it. | |
13816 | ||
13817 | 2016-09-12 David Malcolm <dmalcolm@redhat.com> | |
13818 | ||
13819 | * edit-context.c (edited_line::get_len): New accessor. | |
13820 | (edited_file::print_diff): Split out hunk-printing into... | |
13821 | (edited_file::print_diff_hunk): New method. | |
13822 | (edited_file::print_diff_line): New method. | |
13823 | ||
13824 | 2016-09-12 Andrew Pinski <apinski@cavium.com> | |
13825 | ||
13826 | * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW): | |
13827 | New tuning option. | |
13828 | * config/aarch64/aarch64.c (thunderx_tunings): Enable | |
13829 | AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW. | |
13830 | (aarch64_operands_ok_for_ldpstp): Return false if | |
13831 | AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode | |
13832 | was SImode and the alignment is less than 8 byte. | |
13833 | (aarch64_operands_adjust_ok_for_ldpstp): Likewise. | |
13834 | ||
13835 | 2016-09-12 Orlando Arias <oarias@knights.ucf.edu> | |
13836 | ||
13837 | PR target/77570 | |
13838 | * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm. | |
13839 | ||
13840 | 2016-09-12 Marek Polacek <polacek@redhat.com> | |
13841 | ||
13842 | * doc/extend.texi: Use lowercase "boolean". | |
13843 | * doc/invoke.texi: Likewise. | |
13844 | * doc/md.texi: Likewise. | |
13845 | * target.def: Likewise. | |
13846 | * doc/tm.texi: Regenerated. | |
13847 | ||
13848 | 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
13849 | ||
13850 | PR middle-end/77426 | |
13851 | * expmed.c (synth_mult): Delete duplicate mode check. | |
13852 | ||
13853 | 2016-09-10 Tom de Vries <tom@codesourcery.com> | |
13854 | ||
13855 | PR C/71602 | |
13856 | * builtins.c (std_canonical_va_list_type): Strictly return non-null for | |
13857 | va_list type only. | |
13858 | * config/i386/i386.c (ix86_canonical_va_list_type): Same. | |
13859 | * gimplify.c (gimplify_va_arg_expr): Handle &va_list. | |
13860 | ||
13861 | 2016-09-09 Peter Bergner <bergner@vnet.ibm.com> | |
13862 | ||
13863 | PR rtl-optimization/77289 | |
13864 | * lra-constraints.c (get_final_hard_regno): Add support for non hard | |
13865 | register numbers. Remove support for subregs. | |
13866 | (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno(). | |
13867 | (get_reg_class): Delete removed get_final_hard_regno() argument. | |
13868 | (uses_hard_regs_p): Call get_final_hard_regno(). | |
13869 | ||
13870 | 2016-09-09 Martin Sebor <msebor@redhat.com> | |
13871 | ||
13872 | PR c/77520 | |
13873 | PR c/77521 | |
13874 | * pretty-print.c (pp_quoted_string): New function. | |
13875 | (pp_format): Call it for %c and %s directives. | |
13876 | ||
13877 | 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
13878 | ||
13879 | * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove. | |
13880 | (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE, | |
13881 | INITIAL_ELIMINATION_OFFSET) : Update documentation. | |
13882 | * target.def (frame_pointer_required, can_eliminate): Likewise. | |
13883 | * doc/tm.texi: Regenerated. | |
13884 | * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef | |
13885 | ELIMINABLE_REGS. | |
13886 | * df-scan.c (df_hard_reg_init): Likewise. | |
13887 | * ira.c (ira_setup_eliminable_regset): Likewise. | |
13888 | * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate, | |
13889 | init_elim_table): Likewise. | |
13890 | * reload1.c (reg_eliminate_1, verify_initial_elim_offsets, | |
13891 | set_initial_elim_offsets, update_eliminables, | |
13892 | init_elim_table): Likewise. | |
13893 | * rtlanal.c (get_initial_register_offset): Likewise. | |
13894 | * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove. | |
13895 | * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise. | |
13896 | * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise. | |
13897 | * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise. | |
13898 | * config/fr30/fr30.h: Fix comment. | |
13899 | * config/frv/frv.c: Likewise. | |
13900 | * config/frv/frv.h: Likewise. | |
13901 | * config/ft32/ft32.h: Likewise. | |
13902 | * config/visium/visium.h: Likewise. | |
13903 | * config/pa/pa64-linux.h: Likewise. | |
13904 | * config/v850/v850.h: Likewise. | |
13905 | * config/cris/cris.c: Likewise. | |
13906 | * config/ia64/ia64.h: Likewise. | |
13907 | * config/moxie/moxie.h: Likewise. | |
13908 | * config/m32r/m32r.h: Likewise. | |
13909 | ||
13910 | 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com> | |
13911 | ||
13912 | PR target/77267 | |
13913 | * config.in: Regenerate. | |
13914 | * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH): | |
13915 | New macro. | |
13916 | (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto. | |
13917 | (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from | |
13918 | static-libmpxwrappers case. | |
13919 | (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and | |
13920 | MPX_LD_AS_NEEDED_GUARD_POP. | |
13921 | * configure: Regenerate. | |
13922 | * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable. | |
13923 | defined if linker support "--push-state"/"--pop-state". | |
13924 | ||
13925 | 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
13926 | ||
13927 | * doc/cpp.texi (__*_WIDTH__): Small wording fixes. | |
13928 | ||
13929 | 2016-09-09 Joseph Myers <joseph@codesourcery.com> | |
13930 | ||
13931 | * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__) | |
13932 | (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__) | |
13933 | (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__) | |
13934 | (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__) | |
13935 | (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__) | |
13936 | (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__) | |
13937 | (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__): | |
13938 | Document. | |
13939 | * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define | |
13940 | width macros from TS 18661-1. | |
13941 | * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise. | |
13942 | ||
13943 | 2016-09-08 Jakub Jelinek <jakub@redhat.com> | |
13944 | ||
13945 | PR fortran/77516 | |
13946 | * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive | |
13947 | OMP_CLAUSE_SAFELEN_EXPR. | |
13948 | ||
13949 | 2016-09-07 David Malcolm <dmalcolm@redhat.com> | |
13950 | ||
13951 | * Makefile.in (OBJS): Add substring-locations.o. | |
13952 | * langhooks-def.h (class substring_loc): New forward decl. | |
13953 | (lhd_get_substring_location): New decl. | |
13954 | (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro. | |
13955 | (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION. | |
13956 | * langhooks.c (lhd_get_substring_location): New function. | |
13957 | * langhooks.h (class substring_loc): New forward decl. | |
13958 | (struct lang_hooks): Add field get_substring_location. | |
13959 | * substring-locations.c: New file, taking definition of | |
13960 | format_warning_va and format_warning_at_substring from | |
13961 | c-family/c-format.c, making them non-static. | |
13962 | * substring-locations.h (class substring_loc): Move class here | |
13963 | from c-family/c-common.h. Add and rewrite comments. | |
13964 | (format_warning_va): New decl. | |
13965 | (format_warning_at_substring): New decl. | |
13966 | (get_source_location_for_substring): Add comment. | |
13967 | ||
13968 | 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu> | |
13969 | ||
13970 | * config/i386/i386.c: Add 'U' suffix to processor feature bits | |
13971 | to avoid -Wnarrowing warning. | |
13972 | * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks. | |
13973 | * opts.c: Likewise for SANITIZER_OPT bitmasks. | |
13974 | ||
13975 | 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com> | |
13976 | ||
13977 | * config/aarch64/aarch64.c (aarch64_legitimize_address): | |
13978 | Avoid use of base_offset if offset already in range. | |
13979 | ||
13980 | 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org> | |
13981 | ||
13982 | * config/sh/sh-protos.h (struct sh_atomic_model, | |
13983 | selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT, | |
13984 | TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS, | |
13985 | TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to... | |
13986 | * config/sh/sh.h (struct sh_atomic_model, | |
13987 | selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT, | |
13988 | TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS, | |
13989 | TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here. | |
13990 | Guard with __cplusplus. | |
13991 | ||
13992 | 2016-09-06 Jakub Jelinek <jakub@redhat.com> | |
13993 | ||
13994 | PR target/69255 | |
13995 | * config/i386/i386.c (ix86_expand_builtin): For builtin with | |
13996 | unsupported or unknown ISA, use expand_call. | |
13997 | ||
13998 | 2016-09-06 Martin Liska <mliska@suse.cz> | |
13999 | ||
14000 | PR gcov-profile/77378 | |
14001 | PR gcov-profile/77466 | |
14002 | * tree-profile.c (tree_profiling): Detect whether target can use | |
14003 | -fprofile-update=atomic. | |
14004 | ||
14005 | 2016-09-06 Richard Biener <rguenther@suse.de> | |
14006 | ||
14007 | PR tree-optimization/77479 | |
14008 | * tree-vrp.c (update_value_range): Extend overflow handling to | |
14009 | VARYING. | |
14010 | ||
14011 | 2016-09-05 Jakub Jelinek <jakub@redhat.com> | |
14012 | ||
14013 | PR target/77476 | |
14014 | * config/i386/i386.md (isa): Add x64_avx512bw. | |
14015 | (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa. | |
14016 | (kmov_isa): New mode attr. | |
14017 | (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative. | |
14018 | (*zero_extend<mode>si2): Likewise. | |
14019 | (*zero_extendqihi2): Use avx512dq isa for the last alternative. | |
14020 | ||
14021 | 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com> | |
14022 | ||
14023 | * doc/invoke.texi (SPU Options): nops -> NOPs. | |
14024 | (x86 Options): Ditto. | |
14025 | ||
14026 | 2016-09-05 Jakub Jelinek <jakub@redhat.com> | |
14027 | ||
14028 | PR middle-end/77475 | |
14029 | * toplev.c (process_options): Temporarily set input_location | |
14030 | to UNKNOWN_LOCATION around targetm.target_option.override () call. | |
14031 | ||
14032 | 2016-09-05 Uros Bizjak <ubizjak@gmail.com> | |
14033 | ||
14034 | PR rtl-optimization/77452 | |
14035 | * explow.c (plus_constant) <case MEM>: Extract scalar constant from | |
14036 | inner-mode reference to a CONST_VECTOR constant in the constant pool. | |
14037 | ||
14038 | 2016-09-05 Marek Polacek <polacek@redhat.com> | |
14039 | ||
14040 | PR c/77423 | |
14041 | * doc/invoke.texi: Update -Wlogical-not-parentheses documentation. | |
14042 | ||
14043 | 2016-09-05 Jakub Jelinek <jakub@redhat.com> | |
14044 | ||
14045 | PR other/77421 | |
14046 | * gensupport.c (alter_output_for_subst_insn): Remove redundant | |
14047 | *insn_out == '*' test. Don't copy unnecessary to yet another | |
14048 | memory buffer, and don't leak it. | |
14049 | ||
14050 | PR rtl-optimization/77425 | |
14051 | * ipa-devirt.c (get_odr_type): Set val->id unconditionally. | |
14052 | ||
14053 | 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com> | |
14054 | ||
14055 | * ubsan.c (ubsan_use_new_style_p): Fix check for empty string. | |
14056 | ||
14057 | 2016-09-02 David Malcolm <dmalcolm@redhat.com> | |
14058 | ||
14059 | * common.opt (fdiagnostics-generate-patch): New option. | |
14060 | * diagnostic.c: Include "edit-context.h". | |
14061 | (diagnostic_initialize): Initialize context->edit_context_ptr. | |
14062 | (diagnostic_finish): Delete context->edit_context_ptr. | |
14063 | (diagnostic_report_diagnostic): Add fix-it hints from the | |
14064 | diagnostic to context->edit_context_ptr, if any. | |
14065 | * diagnostic.h (class edit_context): Add forward decl. | |
14066 | (struct diagnostic_context): Add field "edit_context_ptr". | |
14067 | * doc/invoke.texi (Diagnostic Message Formatting Options): Add | |
14068 | -fdiagnostics-generate-patch. | |
14069 | (-fdiagnostics-generate-patch): New item. | |
14070 | * toplev.c: Include "edit-context.h". | |
14071 | (process_options): Set global_dc->edit_context_ptr to a new | |
14072 | edit_context if the options need one. | |
14073 | (toplev::main): Handle -fdiagnostics-generate-patch by using | |
14074 | global_dc->edit_context_ptr. | |
14075 | ||
14076 | 2016-09-02 Jakub Jelinek <jakub@redhat.com> | |
14077 | ||
14078 | PR c/65467 | |
14079 | * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit | |
14080 | map and firstprivate clauses on target construct for _Atomic | |
14081 | qualified decls. | |
14082 | (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses | |
14083 | on target construct for _Atomic qualified decls. | |
14084 | * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified | |
14085 | decls. | |
14086 | * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for | |
14087 | _Atomic qualified arguments not mentioned in uniform clause. | |
14088 | ||
14089 | 2016-09-02 David Malcolm <dmalcolm@redhat.com> | |
14090 | ||
14091 | * Makefile.in (OBJS-libcommon): Add edit-context.o. | |
14092 | * diagnostic-color.c (color_dict): Add "diff-filename", | |
14093 | "diff-hunk", "diff-delete", and "diff-insert". | |
14094 | (parse_gcc_colors): Update default value of GCC_COLORS in comment | |
14095 | to reflect above changes. | |
14096 | * doc/invoke.texi (-fdiagnostics-color): Update description of | |
14097 | default GCC_COLORS, and of the supported capabilities. | |
14098 | * edit-context.c: New file. | |
14099 | * edit-context.h: New file. | |
14100 | * input.c (struct fcache): Add field "missing_trailing_newline". | |
14101 | (diagnostics_file_cache_forcibly_evict_file): Initialize it to | |
14102 | true. | |
14103 | (add_file_to_cache_tab): Likewise. | |
14104 | (fcache::fcache): Likewise. | |
14105 | (get_next_line): Update c->missing_trailing_newline. | |
14106 | (location_missing_trailing_newline): New function. | |
14107 | * input.h (location_missing_trailing_newline): New decl. | |
14108 | * selftest-run-tests.c (selftest::run_tests): Call | |
14109 | edit_context_c_tests. | |
14110 | * selftest.h (edit_context_c_tests): New decl. | |
14111 | ||
14112 | 2016-09-02 Jakub Jelinek <jakub@redhat.com> | |
14113 | Richard Biener <rguenth@suse.de> | |
14114 | ||
14115 | PR tree-optimization/77444 | |
14116 | * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype | |
14117 | as steptype, remove redundant initialization. | |
14118 | ||
14119 | 2016-09-02 Jakub Jelinek <jakub@redhat.com> | |
14120 | ||
14121 | PR sanitizer/77396 | |
14122 | * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h. | |
14123 | (sanopt_optimize_walker): Optimize away | |
14124 | __asan_before_dynamic_init (...) followed by | |
14125 | __asan_after_dynamic_init () without intervening memory loads/stores. | |
14126 | * ipa-pure-const.c (special_builtin_state): Handle | |
14127 | BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and | |
14128 | BUILT_IN_ASAN_AFTER_DYNAMIC_INIT. | |
14129 | ||
14130 | 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
14131 | ||
14132 | * cfg.c (free_original_copy_tables): Replace second assignment of | |
14133 | bb_copy = NULL by bb_original = NULL. | |
14134 | ||
14135 | 2016-09-02 Jakub Jelinek <jakub@redhat.com> | |
14136 | ||
14137 | PR other/77421 | |
14138 | * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant | |
14139 | assignment added in r216794. | |
14140 | ||
14141 | 2016-09-02 David Malcolm <dmalcolm@redhat.com> | |
14142 | ||
14143 | * Makefile.in (OBJS): Add typed-splay-tree.o. | |
14144 | * selftest-run-tests.c (selftest::run_tests): Call | |
14145 | typed_splay_tree_c_tests. | |
14146 | * selftest.h (typed_splay_tree_c_tests): New decl. | |
14147 | * typed-splay-tree.c: New file. | |
14148 | * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef. | |
14149 | (typed_splay_tree::max): New method. | |
14150 | (typed_splay_tree::min): New method. | |
14151 | (typed_splay_tree::foreach): New method. | |
14152 | (typed_splay_tree::closure): New struct. | |
14153 | (typed_splay_tree::inner_foreach_fn): New function. | |
14154 | ||
14155 | 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
14156 | ||
14157 | * ipa-cp.c (ipcp_store_bits_results): Change option name from | |
14158 | -fipa-cp-bit to -fipa-bit-cp. | |
14159 | ||
14160 | 2016-09-01 Martin Sebor <msebor@redhat.com> | |
14161 | ||
14162 | PR tree-optimization/71831 | |
14163 | * tree-object-size.h: Return bool instead of the size and add | |
14164 | argument for the size. | |
14165 | * tree-object-size.c (compute_object_offset): Update signature. | |
14166 | (addr_object_size): Same. | |
14167 | (compute_builtin_object_size): Return bool instead of the size | |
14168 | and add argument for the size. Handle POINTER_PLUS_EXPR when | |
14169 | optimization is disabled. | |
14170 | (expr_object_size): Adjust. | |
14171 | (plus_stmt_object_size): Adjust. | |
14172 | (pass_object_sizes::execute): Adjust. | |
14173 | * builtins.c (fold_builtin_object_size): Adjust. | |
14174 | * doc/extend.texi (Object Size Checking): Update. | |
14175 | * ubsan.c (instrument_object_size): Adjust. | |
14176 | ||
14177 | 2016-09-01 Martin Sebor <msebor@redhat.com> | |
14178 | ||
14179 | * genmatch.c (parser::parse_expr): Increase buffer size to guarantee | |
14180 | it fits the output of the formatted function regardless of its | |
14181 | arguments. | |
14182 | * genmodes.c (parser::parse_expr): Same. | |
14183 | * gimplify.c (gimplify_asm_expr): Same. | |
14184 | * passes.c (pass_manager::register_one_dump_file): Same. | |
14185 | * print-tree.c (print_node): Same. | |
14186 | ||
14187 | 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org> | |
14188 | ||
14189 | * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout. | |
14190 | ||
14191 | 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org> | |
14192 | ||
14193 | * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout. | |
14194 | ||
14195 | 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org> | |
14196 | ||
14197 | * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout. | |
14198 | * config/rs6000/vector.md: Ditto. | |
14199 | * config/rs6000/vsx.md: Ditto. | |
14200 | ||
14201 | 2016-09-01 Eric Botcazou <ebotcazou@adacore.com> | |
14202 | ||
14203 | * ipa-inline-analysis.c (param_change_prob): Get to the base object | |
14204 | first in all cases. | |
14205 | ||
14206 | 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org> | |
14207 | ||
14208 | * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11, | |
14209 | *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1, | |
14210 | *return_and_restore_gpregs_<mode>_r11, | |
14211 | *return_and_restore_gpregs_<mode>_r12, | |
14212 | *return_and_restore_gpregs_<mode>_r1, | |
14213 | *return_and_restore_fpregs_<mode>_r11, | |
14214 | *return_and_restore_fpregs_<mode>_r12, | |
14215 | *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO | |
14216 | directly instead of via the "l" constraint. Renumber operands. | |
14217 | Fix whitespace. | |
14218 | ||
14219 | 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org> | |
14220 | ||
14221 | * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11, | |
14222 | save_vregs_<mode>_r12, *restore_vregs_<mode>_r11, | |
14223 | *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65. | |
14224 | * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si, | |
14225 | load_macho_picbase_di, *call_indirect_nonlocal_darwin64, | |
14226 | *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64, | |
14227 | *call_value_nonlocal_darwin64, reload_macho_picbase, | |
14228 | reload_macho_picbase_si, reload_macho_picbase_di): Ditto. | |
14229 | * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto. | |
14230 | * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11, | |
14231 | *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1, | |
14232 | *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12, | |
14233 | *save_fpregs_<mode>_r1): Ditto. | |
14234 | * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe, | |
14235 | *return_and_restore_gpregs_spe): Ditto. | |
14236 | ||
14237 | 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org> | |
14238 | ||
14239 | * config/rs6000/rs6000.md | |
14240 | (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete | |
14241 | the use of the link register. | |
14242 | (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto. | |
14243 | ||
14244 | 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
14245 | Michael Meissner <meissner@linux.vnet.ibm.com> | |
14246 | ||
14247 | PR target/72827 | |
14248 | * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid | |
14249 | reg+reg addressing for TImode. | |
14250 | (rs6000_legitimate_address_p): Only allow register indirect | |
14251 | addressing for TImode, even without TARGET_QUAD_MEMORY. | |
14252 | ||
14253 | 2016-09-01 Richard Biener <rguenther@suse.de> | |
14254 | ||
14255 | PR middle-end/77436 | |
14256 | * tree-chrec.c (tree_fold_binomial): Use widest_int, properly | |
14257 | check whether the result fits the desired result type. | |
14258 | ||
14259 | 2016-09-01 Nathan Sidwell <nathan@acm.org> | |
14260 | ||
14261 | * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const. | |
14262 | ||
14263 | 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com> | |
14264 | ||
14265 | * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement): | |
14266 | New function. | |
14267 | (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define. | |
14268 | ||
14269 | 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
14270 | ||
14271 | * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern. | |
14272 | * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode | |
14273 | for comparisons of integer ZERO_EXTEND against zero. | |
14274 | ||
14275 | 2016-09-01 Eric Botcazou <ebotcazou@adacore.com> | |
14276 | ||
14277 | * config/i386/i386.c (ix86_option_override_internal): Also disable the | |
14278 | STV pass if -mstackrealign is enabled. | |
14279 | ||
14280 | 2016-08-31 Ilya Verbin <iverbin@gmail.com> | |
14281 | ||
14282 | * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of | |
14283 | AVX512IFMA. | |
14284 | ||
14285 | 2016-08-31 David Malcolm <dmalcolm@redhat.com> | |
14286 | ||
14287 | * diagnostic-show-locus.c (class layout): Add field m_fixit_hints. | |
14288 | (layout_range::intersects_line_p): New method. | |
14289 | (test_range_contains_point_for_single_point): Rename to... | |
14290 | (test_layout_range_for_single_point): ...this, and add testing | |
14291 | for layout_range::intersects_line_p. | |
14292 | (test_range_contains_point_for_single_line): Rename to... | |
14293 | (test_layout_range_for_single_line): ...this, and add testing | |
14294 | for layout_range::intersects_line_p. | |
14295 | (test_range_contains_point_for_multiple_lines): Rename to... | |
14296 | (test_layout_range_for_multiple_lines): ...this, and add testing | |
14297 | for layout_range::intersects_line_p. | |
14298 | (layout::layout): Populate m_fixit_hints. | |
14299 | (layout::get_expanded_location): Handle the case of a line-span | |
14300 | for a fix-it hint. | |
14301 | (layout::validate_fixit_hint_p): New method. | |
14302 | (get_line_span_for_fixit_hint): New function. | |
14303 | (layout::calculate_line_spans): Add spans for fixit-hints. | |
14304 | (layout::should_print_annotation_line_p): New method. | |
14305 | (layout::print_any_fixits): Drop param "richloc", instead using | |
14306 | validated fixits in m_fixit_hints. Add "const" to hint pointers. | |
14307 | (diagnostic_show_locus): Avoid printing blank annotation lines. | |
14308 | (selftest::test_diagnostic_context::test_diagnostic_context): | |
14309 | Initialize show_column and start_span. | |
14310 | (selftest::test_diagnostic_context::start_span_cb): New static | |
14311 | function. | |
14312 | (selftest::test_diagnostic_show_locus_fixit_lines): New function. | |
14313 | (selftest::diagnostic_show_locus_c_tests): Update for function | |
14314 | renamings. Call test_diagnostic_show_locus_fixit_lines. | |
14315 | ||
14316 | 2016-08-31 Marc Glisse <marc.glisse@inria.fr> | |
14317 | ||
14318 | PR tree-optimization/73714 | |
14319 | * match.pd (a * (1 << b)): Revert change from 2016-05-23. | |
14320 | ||
14321 | 2016-08-31 David Malcolm <dmalcolm@redhat.com> | |
14322 | ||
14323 | * selftest.c: Move "namespace selftest {" to top of file, | |
14324 | removing explicit "selftest::" qualifiers throughout. | |
14325 | ||
14326 | 2016-08-31 Marc Glisse <marc.glisse@inria.fr> | |
14327 | ||
14328 | * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u): | |
14329 | New types. | |
14330 | (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps, | |
14331 | _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512): | |
14332 | Replace builtin with vector extension. | |
14333 | * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u): | |
14334 | New types. | |
14335 | (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps, | |
14336 | _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256): | |
14337 | Replace builtin with vector extension. | |
14338 | * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types. | |
14339 | (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128): | |
14340 | Replace builtin with vector extension. | |
14341 | * config/i386/xmmintrin.h (__m128_u): New type. | |
14342 | (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension. | |
14343 | (_mm_load_ps, _mm_store_ps): Simplify. | |
14344 | ||
14345 | 2016-08-31 Eric Botcazou <ebotcazou@adacore.com> | |
14346 | ||
14347 | * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard. | |
14348 | ||
14349 | 2016-08-30 David Malcolm <dmalcolm@redhat.com> | |
14350 | ||
14351 | * diagnostic-show-locus.c (colorizer::begin_state): Support more | |
14352 | than 3 ranges per diagnostic by alternating between color 1 and | |
14353 | color 2. | |
14354 | (layout::layout): Replace use of rich_location::MAX_RANGES | |
14355 | with richloc->get_num_locations (). | |
14356 | (layout::calculate_line_spans): Replace use of | |
14357 | rich_location::MAX_RANGES with m_layout_ranges.length (). | |
14358 | (layout::print_annotation_line): Handle arbitrary numbers of | |
14359 | ranges in caret-printing by defaulting to '^'. | |
14360 | (selftest::test_one_liner_many_fixits): New function. | |
14361 | (test_diagnostic_show_locus_one_liner): Call it. | |
14362 | * diagnostic.c (diagnostic_initialize): Update for renaming | |
14363 | of rich_location::MAX_RANGES to | |
14364 | rich_location::STATICALLY_ALLOCATED_RANGES. | |
14365 | * diagnostic.h (struct diagnostic_context): Likewise. | |
14366 | ||
14367 | 2016-08-30 David Malcolm <dmalcolm@redhat.com> | |
14368 | ||
14369 | * selftest.c (selftest::named_temp_file::named_temp_file): New | |
14370 | ctor. | |
14371 | (selftest::temp_source_file::~temp_source_file): Move to... | |
14372 | (selftest::named_temp_file::~named_temp_file): ...here. | |
14373 | (selftest::test_named_temp_file): New function. | |
14374 | (selftest::selftest_c_tests): Call test_named_temp_file. | |
14375 | * selftest.h (class named_temp_file): New class. | |
14376 | (class temp_source_file): Convert to a subclass of named_temp_file. | |
14377 | ||
14378 | 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org> | |
14379 | ||
14380 | * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit | |
14381 | USEs of LR_REGNO in returns and sibcalls. | |
14382 | (rs6000_output_mi_thunk): Similar. | |
14383 | (rs6000_sibcall_aix): Similar. | |
14384 | * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32, | |
14385 | sibcall_local64, sibcall_value_local32, sibcall_value_local64, | |
14386 | sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>): | |
14387 | Remove the USE of LR_REGNO from the patterns as well. Delete an | |
14388 | obsolete comment. | |
14389 | (return_internal_<mode>): Delete. | |
14390 | ||
14391 | 2016-08-30 Tamar Christina <tamar.christina@arm.com> | |
14392 | ||
14393 | * config/aarch64/aarch64-simd.md | |
14394 | (aarch64_ld2<mode>_dreg_le): New. | |
14395 | (aarch64_ld2<mode>_dreg_be): New. | |
14396 | (aarch64_ld2<mode>_dreg): Removed. | |
14397 | (aarch64_ld3<mode>_dreg_le): New. | |
14398 | (aarch64_ld3<mode>_dreg_be): New. | |
14399 | (aarch64_ld3<mode>_dreg): Removed. | |
14400 | (aarch64_ld4<mode>_dreg_le): New. | |
14401 | (aarch64_ld4<mode>_dreg_be): New. | |
14402 | (aarch64_ld4<mode>_dreg): Removed. | |
14403 | (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be. | |
14404 | ||
14405 | 2016-08-30 David Malcolm <dmalcolm@redhat.com> | |
14406 | ||
14407 | * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove | |
14408 | redundant location param. | |
14409 | (test_one_liner_fixit_remove): Likewise. | |
14410 | (test_one_liner_fixit_replace): Likewise. | |
14411 | (test_one_liner_fixit_replace_equal_secondary_range): Likewise. | |
14412 | * gcc-rich-location.c | |
14413 | (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to | |
14414 | get_range_from_loc. Drop overload taking a const char *. | |
14415 | * gcc-rich-location.h | |
14416 | (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking | |
14417 | a const char *. | |
14418 | ||
14419 | 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
14420 | ||
14421 | * config/linux.c (linux_libc_has_function): Return true on musl. | |
14422 | ||
14423 | 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
14424 | ||
14425 | * config.gcc (*-*-*musl*): Disable gnu-indirect-function. | |
14426 | ||
14427 | 2016-08-30 Eric Botcazou <ebotcazou@adacore.com> | |
14428 | ||
14429 | * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion | |
14430 | used for abnormal egdes. | |
14431 | ||
14432 | 2016-08-30 Jakub Jelinek <jakub@redhat.com> | |
14433 | ||
14434 | PR tree-optimization/72866 | |
14435 | * tree-vect-patterns.c (search_type_for_mask): Turn into | |
14436 | a small wrapper, move all code to ... | |
14437 | (search_type_for_mask_1): ... this new function. Add caching | |
14438 | and adjust recursive calls. | |
14439 | ||
14440 | PR debug/77363 | |
14441 | * dwarf2out.c (modified_type_die): Use lookup_type_die (type) | |
14442 | instead of lookup_type_die (type_main_variant (type)) even for array | |
14443 | types. | |
14444 | ||
14445 | PR middle-end/77377 | |
14446 | * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds | |
14447 | constant pool reference return x instead of c. | |
14448 | ||
14449 | 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org> | |
14450 | ||
14451 | * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not | |
14452 | include MQ. | |
14453 | ||
14454 | 2016-08-29 David Malcolm <dmalcolm@redhat.com> | |
14455 | ||
14456 | * input.c | |
14457 | (selftest::test_make_location_nonpure_range_endpoints): Fix | |
14458 | header comment. | |
14459 | ||
14460 | 2016-08-29 David Malcolm <dmalcolm@redhat.com> | |
14461 | ||
14462 | * diagnostic-show-locus.c | |
14463 | (selftest::test_one_liner_fixit_validation_adhoc_locations): New | |
14464 | function. | |
14465 | (selftest::test_diagnostic_show_locus_one_liner): Call it. | |
14466 | * input.c (get_pure_location): Move to libcpp/line-map.c. | |
14467 | * input.h (get_pure_location): Convert decl to an inline function | |
14468 | calling implementation in libcpp. | |
14469 | ||
14470 | 2016-08-29 Uros Bizjak <ubizjak@gmail.com> | |
14471 | ||
14472 | PR target/77403 | |
14473 | * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler | |
14474 | template for intel asm dialect. | |
14475 | (vec_set_hi_<mode><mask_name>): Ditto. | |
14476 | ||
14477 | 2016-08-29 David Malcolm <dmalcolm@redhat.com> | |
14478 | ||
14479 | * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN. | |
14480 | (selftest::fail_formatted): Likewise. | |
14481 | ||
14482 | 2016-08-29 David Malcolm <dmalcolm@redhat.com> | |
14483 | ||
14484 | * input.c (make_location): Call get_start and get_finish | |
14485 | on the endpoints to avoid storing packed ranges or ad-hoc | |
14486 | ranges in them. | |
14487 | (selftest::test_make_location_nonpure_range_endpoints): New function. | |
14488 | (selftest::input_c_tests): Call it. | |
14489 | * input.h (get_start): New inline function. | |
14490 | ||
14491 | 2016-08-29 Tom de Vries <tom@codesourcery.com> | |
14492 | ||
14493 | PR c/77398 | |
14494 | * gimplify.c (gimplify_va_arg_expr): Replace first argument type error | |
14495 | with assert. | |
14496 | ||
14497 | 2016-08-29 Eric Botcazou <ebotcazou@adacore.com> | |
14498 | ||
14499 | * Makefile.in (gcov-iov.h): Add dummy recipe. | |
14500 | ||
14501 | 2016-08-29 Nathan Sidwell <nathan@acm.org> | |
14502 | ||
14503 | * config/nvptx/nvptx.c: #include tree-vrp.h. | |
14504 | ||
14505 | 2016-08-28 Eric Botcazou <ebotcazou@adacore.com> | |
14506 | ||
14507 | PR target/77324 | |
14508 | * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special | |
14509 | HIGH+LO construct during reload. | |
14510 | ||
14511 | 2016-08-28 Tom de Vries <tom@codesourcery.com> | |
14512 | ||
14513 | PR lto/70955 | |
14514 | * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with | |
14515 | 'sysv_abi va_list' attribute. | |
14516 | (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute. | |
14517 | (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list' | |
14518 | attributes. | |
14519 | ||
14520 | 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
14521 | ||
14522 | * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector. | |
14523 | * emit-rtl.c (unshare_all_rtl_1): Adjust. | |
14524 | (unshare_all_rtl_again): Likewise. | |
14525 | * function.c (assign_stack_local_1): Likewise. | |
14526 | (assign_stack_temp_for_type): Likewise. | |
14527 | ||
14528 | 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
14529 | ||
14530 | * cfgbuild.c (make_edges): Adjust. | |
14531 | * cfgrtl.c (can_delete_label_p): Likewise. | |
14532 | * dwarf2cfi.c (create_trace_edges): Likewise. | |
14533 | * except.c (sjlj_emit_dispatch_table): Likewise. | |
14534 | * function.h (struct expr_status): make x_forced_labels a vector. | |
14535 | * jump.c (rebuild_jump_labels_1): Adjust. | |
14536 | * reload1.c (set_initial_label_offsets): Likewise. | |
14537 | * stmt.c (force_label_rtx): Likewise. | |
14538 | (expand_label): Likewise. | |
14539 | ||
14540 | 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
14541 | ||
14542 | * haifa-sched.c (fix_recovery_deps): Make ready_list a vector. | |
14543 | ||
14544 | 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org> | |
14545 | ||
14546 | PR tree-optimization/71077 | |
14547 | PR tree-optimization/68542 | |
14548 | * fold-const.c (fold_relational_const): Fix folding of | |
14549 | VECTOR_CST comparisons that have a scalar boolean result type. | |
14550 | (selftest::test_vector_folding): New static function. | |
14551 | (selftest::fold_const_c_tests): Call it. | |
14552 | ||
14553 | 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com> | |
14554 | ||
14555 | * doc/extend.texi (SPU Built-in Functions): Remove stale | |
14556 | references to material formerly at IBM and Sony. | |
14557 | ||
14558 | 2016-08-26 David Edelsohn <dje.gcc@gmail.com> | |
14559 | ||
14560 | PR target/77349 | |
14561 | * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE. | |
14562 | ||
14563 | 2016-08-26 David Malcolm <dmalcolm@redhat.com> | |
14564 | ||
14565 | * diagnostic-show-locus.c | |
14566 | (selftest::test_fixit_consolidation): New function. | |
14567 | (selftest::diagnostic_show_locus_c_tests): Call it. | |
14568 | * gcc-rich-location.h (gcc_rich_location): Eliminate unused | |
14569 | constructor based on source_range. | |
14570 | ||
14571 | 2016-08-26 David Malcolm <dmalcolm@redhat.com> | |
14572 | ||
14573 | * diagnostic-color.c (color_dict): Add "fixit-insert" and | |
14574 | "fixit-delete". | |
14575 | (parse_gcc_colors): Update description of default GCC_COLORS. | |
14576 | * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete. | |
14577 | (colorizer::set_fixit_insert): New method. | |
14578 | (colorizer::set_fixit_delete): New method. | |
14579 | (colorizer::get_color_by_name): New method. | |
14580 | (colorizer::STATE_FIXIT_INSERT): New constant. | |
14581 | (colorizer::STATE_FIXIT_DELETE): New constant. | |
14582 | (class colorizer): Drop "_cs" suffix from fields. Delete "_ce" | |
14583 | fields in favor of new field "m_stop_color". Add fields | |
14584 | "m_fixit_insert" and "m_fixit_delete". | |
14585 | (colorizer::colorizer): Update for above changes. Replace | |
14586 | colorize_start calls with calls to get_color_by_name. | |
14587 | (colorizer::begin_state): Handle STATE_FIXIT_INSERT and | |
14588 | STATE_FIXIT_DELETE. Update for field renamings. | |
14589 | (colorizer::finish_state): Simplify by using m_stop_color, | |
14590 | rather than multiple identical "*_ce" fields. | |
14591 | (colorizer::get_color_by_name): New method. | |
14592 | (layout::print_any_fixits): Print insertions and replacements | |
14593 | using the "fixit-insert" color, and deletions using the | |
14594 | "fixit-delete" color. | |
14595 | * doc/invoke.texi (-fdiagnostics-color): Update description of | |
14596 | default GCC_COLORS, and of the supported capabilities. | |
14597 | ||
14598 | 2016-08-26 Max Filippov <jcmvbkbc@gmail.com> | |
14599 | ||
14600 | * config/xtensa/xtensa.c (xtensa_expand_prologue): Update | |
14601 | current_function_static_stack_size variable with the static | |
14602 | stack frame size of the current function when | |
14603 | flag_stack_usage_info is enabled. | |
14604 | ||
14605 | 2016-08-26 Nathan Sidwell <nathan@acm.org> | |
14606 | ||
14607 | * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary | |
14608 | assignment inside if condition. | |
14609 | ||
14610 | 2016-08-26 Richard Biener <rguenther@suse.de> | |
14611 | ||
14612 | PR tree-optimization/69047 | |
14613 | * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield | |
14614 | extracts similar to what FRE does. | |
14615 | (non_rewritable_mem_ref_base): Likewise. | |
14616 | ||
14617 | 2016-08-26 Joseph Myers <joseph@codesourcery.com> | |
14618 | ||
14619 | * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p) | |
14620 | (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove. | |
14621 | * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise. | |
14622 | * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise. | |
14623 | * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): | |
14624 | Likewise. | |
14625 | * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise. | |
14626 | * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise. | |
14627 | * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise. | |
14628 | * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise. | |
14629 | * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise. | |
14630 | ||
14631 | 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
14632 | ||
14633 | PR target/70473 | |
14634 | * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce | |
14635 | reservation duration to 15 cycles. | |
14636 | (cortex_a8_vfp_macs): Likewise. | |
14637 | (cortex_a8_vfp_macd): Likewise. | |
14638 | (cortex_a8_vfp_divs): Likewise. | |
14639 | (cortex_a8_vfp_divd): Likewise. | |
14640 | ||
14641 | 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
14642 | ||
14643 | * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function. | |
14644 | (aarch_macro_fusion_pair_p): Use above to avoid early return. | |
14645 | ||
14646 | 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
14647 | Martin Jambhor <mjambor@suse.cz> | |
14648 | ||
14649 | * common.opt: New option -fipa-bit-cp. | |
14650 | * doc/invoke.texi: Document -fipa-bit-cp. | |
14651 | * opts.c (default_options_table): Add entry for -fipa-bit-cp. | |
14652 | (enable_fdo_optimizations): Check for flag_ipa_bit_cp. | |
14653 | * tree-ssa-ccp.h: New header file. | |
14654 | * tree-ssa-ccp.c: Include tree-ssa-ccp.h | |
14655 | (bit_value_binop_1): Change to bit_value_binop_1 and export it. | |
14656 | Replace all occurences of tree parameter by two new params: signop, int. | |
14657 | (bit_value_unop_1): Change to bit_value_unop and export it. | |
14658 | Replace all occurences of tree parameter by two new params: signop, | |
14659 | int. | |
14660 | (bit_value_binop): Change call from bit_value_binop_1 to | |
14661 | bit_value_binop. | |
14662 | (bit_value_assume_aligned): Likewise. | |
14663 | (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop. | |
14664 | (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p | |
14665 | to ccp_finalize. | |
14666 | (ccp_finalize): Skip processing if val->mask == 0. | |
14667 | * ipa-cp.c: Include tree-ssa-ccp.h | |
14668 | (ipcp_bits_lattice): New class. | |
14669 | (ipcp_param_lattice (bits_lattice): New member. | |
14670 | (print_all_lattices): Call ipcp_bits_lattice::print. | |
14671 | (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom. | |
14672 | (initialize_node_lattices): Likewise. | |
14673 | (propagate_bits_accross_jump_function): New function. | |
14674 | (propagate_constants_accross_call): Call | |
14675 | propagate_bits_accross_jump_function. | |
14676 | (ipcp_propagate_stage): Store parameter types when in_lto_p is true. | |
14677 | (ipcp_store_bits_results): New function. | |
14678 | (ipcp_driver): Call ipcp_store_bits_results. | |
14679 | * ipa-prop.h (ipa_bits): New struct. | |
14680 | (ipa_jump_func): Add new member bits of type ipa_bits. | |
14681 | (ipa_param_descriptor): Change decl to decl_or_type. | |
14682 | (ipa_get_param): Change decl to decl_or_type and assert on | |
14683 | PARM_DECL. | |
14684 | (ipa_get_type): New function. | |
14685 | (ipcp_transformation_summary): New member bits. | |
14686 | * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type. | |
14687 | (ipa_populate_param_decls): Likewise. | |
14688 | (ipa_dump_param): Likewise. | |
14689 | (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump | |
14690 | function. | |
14691 | (ipa_set_jf_unknown): Set ipa_bits::known to false. | |
14692 | (ipa_compute_jump_functions_for_edge): Compute jump function for bits | |
14693 | propagation. | |
14694 | (ipa_node_params_t::duplicate): Copy src->bits into dst->bits. | |
14695 | (ipa_write_jump_function): Add streaming for ipa_bits. | |
14696 | (ipa_read_jump_function): Add support for reading streamed ipa_bits. | |
14697 | (write_ipcp_transformation_info): Add streaming for ipa_bits | |
14698 | summary for ltrans. | |
14699 | (read_ipcp_transfomration_info): Add support for reading streamed | |
14700 | ipa_bits. | |
14701 | (ipcp_update_bits): New function. | |
14702 | (ipcp_transform_function): Call ipcp_update_bits. | |
14703 | ||
14704 | 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
14705 | ||
14706 | * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update. | |
14707 | (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update. | |
14708 | ||
14709 | 2016-08-25 David Edelsohn <dje.gcc@gmail.com> | |
14710 | ||
14711 | * multiple_target.c (pass_data_dispatcher_calls): Fix typo. | |
14712 | ||
14713 | 2016-08-25 Richard Biener <rguenther@suse.de> | |
14714 | ||
14715 | * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes): | |
14716 | Only add locations in late dwarf. | |
14717 | (gen_scheduled_generic_parms_dies): Do not set early dwarf here. | |
14718 | (dwarf2out_early_finish): But do it here. | |
14719 | ||
14720 | 2016-08-24 Michael Collison <michael.collison@linaro.org> | |
14721 | Michael Collison <michael.collison@arm.com> | |
14722 | ||
14723 | * config/arm/arm-modes.def: Add new condition code mode CC_V | |
14724 | to represent the overflow bit. | |
14725 | * config/arm/arm.c (maybe_get_arm_condition_code): | |
14726 | Add support for CC_Vmode. | |
14727 | (arm_gen_unlikely_cbranch): New function to generate common | |
14728 | rtl conditional branches for overflow patterns. | |
14729 | * config/arm/arm-protos.h: Add prototype for | |
14730 | arm_gen_unlikely_cbranch. | |
14731 | * config/arm/arm.md (addv<mode>4, add<mode>3_compareV, | |
14732 | addsi3_compareV_upper): New patterns to support signed | |
14733 | builtin overflow add operations. | |
14734 | (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper): | |
14735 | New patterns to support unsigned builtin add overflow operations. | |
14736 | (subv<mode>4, sub<mode>3_compare1): New patterns to support signed | |
14737 | builtin overflow subtract operations, | |
14738 | (usubv<mode>4): New patterns to support unsigned builtin subtract | |
14739 | overflow operations. | |
14740 | (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns | |
14741 | to support builtin overflow negate operations. | |
14742 | ||
14743 | 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
14744 | ||
14745 | Revert | |
14746 | 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
14747 | ||
14748 | * explow.c (get_dynamic_stack_size): Take known alignment of stack | |
14749 | pointer + STACK_DYNAMIC_OFFSET into account when calculating the size | |
14750 | needed. | |
14751 | ||
14752 | 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
14753 | ||
14754 | * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in | |
14755 | MULTILIB_OPTIONS should be used. Small wording fixes. | |
14756 | * genmultilib: Memorize set of all option combinations in | |
14757 | combination_space. Detect if RHS of MULTILIB_REUSE uses an option not | |
14758 | found in MULTILIB_OPTIONS by checking if option set is listed in | |
14759 | combination_space. Output new and existing error message to stderr. | |
14760 | ||
14761 | 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
14762 | ||
14763 | * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for | |
14764 | -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8. | |
14765 | Fix typo in -mfpu=vfpv3-d16-fp16 mapping. | |
14766 | (MULTILIB_REUSE): Remove reuse rules for option set including | |
14767 | -mfpu=fp-armv8 and -mfpu=vfpv4 | |
14768 | ||
14769 | 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
14770 | ||
14771 | * config/arm/t-rtems: Add vfp multilib. | |
14772 | ||
14773 | 2016-08-23 Ian Lance Taylor <iant@golang.org> | |
14774 | ||
14775 | * config/s390/s390.c (s390_asm_file_start): Call | |
14776 | default_file_start. | |
14777 | ||
14778 | 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com> | |
14779 | ||
14780 | * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set | |
14781 | initialization of all 0's to the 0 constant, instead of directly | |
14782 | generating XOR. Add support for V4SImode vector initialization on | |
14783 | 64-bit systems with direct move, and rework the ISA 3.0 V4SImode | |
14784 | initialization. Change variables used in V4SFmode vector | |
14785 | intialization. For V4SFmode vector splat on ISA 3.0, make sure | |
14786 | any memory addresses are in index form. Add support for using | |
14787 | VSPLTH/VSPLTB to initialize vector short and vector char vectors | |
14788 | with all of the same element. | |
14789 | (regno_or_subregno): New helper function to return a register | |
14790 | number for either REG or SUBREG. | |
14791 | (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>. | |
14792 | Use regno_or_subregno where possible. | |
14793 | (rs6000_split_v4si_init_di_reg): New helper function to build up a | |
14794 | DImode value from two SImode values in order to generate V4SImode | |
14795 | vector initialization on 64-bit systems with direct move. | |
14796 | (rs6000_split_v4si_init): Split up the insns for a V4SImode vector | |
14797 | initialization. | |
14798 | (rtx_is_swappable_p): V4SImode vector initialization insn is not | |
14799 | swappable. | |
14800 | * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add | |
14801 | declaration. | |
14802 | * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and | |
14803 | attributes to initialize V8HImode and V16QImode vectors with the | |
14804 | same element. | |
14805 | (VSX_SPLAT_COUNT): Likewise. | |
14806 | (VSX_SPLAT_SUFFIX): Likewise. | |
14807 | (UNSPEC_VSX_VEC_INIT): New unspec. | |
14808 | (vsx_concat_v2sf): Eliminate using 'preferred' register classes. | |
14809 | Allow SFmode values to come from Altivec registers. | |
14810 | (vsx_init_v4si): New insn/split for V4SImode vector initialization | |
14811 | on 64-bit systems with direct move. | |
14812 | (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode | |
14813 | vector initializations, to allow V4SImode vector initializations | |
14814 | on 64-bit systems with direct move. | |
14815 | (vsx_splat_v4si): Likewise. | |
14816 | (vsx_splat_v4si_di): Likewise. | |
14817 | (vsx_splat_v4sf): Likewise. | |
14818 | (vsx_splat_v4sf_internal): Likewise. | |
14819 | (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred' | |
14820 | register classes. | |
14821 | (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise. | |
14822 | (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support | |
14823 | initializing V8HImode and V16QImode vectors with the same | |
14824 | element. | |
14825 | * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow | |
14826 | optimization if -maltivec=be. | |
14827 | ||
14828 | 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org> | |
14829 | ||
14830 | * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it | |
14831 | attribute for alternatives 3 and 4. | |
14832 | ||
14833 | 2016-08-23 David Malcolm <dmalcolm@redhat.com> | |
14834 | ||
14835 | * selftest.c (selftest::assert_str_contains): New function. | |
14836 | (selftest::test_assertions): Verify ASSERT_STR_CONTAINS. | |
14837 | * selftest.h (selftest::assert_str_contains): New decl. | |
14838 | (ASSERT_STR_CONTAINS): New macro. | |
14839 | ||
14840 | 2016-08-23 Richard Biener <rguenther@suse.de> | |
14841 | ||
14842 | PR tree-optimization/77286 | |
14843 | * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify | |
14844 | the CFG here. | |
14845 | (vect_transform_loop): Split exit edges of loop and scalar | |
14846 | loop if required and at the appropriate time. | |
14847 | ||
14848 | 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
14849 | ||
14850 | * explow.c (get_dynamic_stack_size): Take known alignment of stack | |
14851 | pointer + STACK_DYNAMIC_OFFSET into account when calculating the size | |
14852 | needed. | |
14853 | Correct a typo in a comment. | |
14854 | ||
14855 | 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
14856 | ||
14857 | * config/s390/s390.md ("*andc_split"): New splitter for and with | |
14858 | complement. | |
14859 | ||
14860 | 2016-08-23 Richard Biener <rguenther@suse.de> | |
14861 | ||
14862 | PR tree-optimization/27336 | |
14863 | * tree-vrp.c (infer_value_range): Handle stmts that can throw | |
14864 | by looking for a non-EH edge. | |
14865 | (process_assert_insertions_for): Likewise. | |
14866 | ||
14867 | 2016-08-23 Richard Biener <rguenther@suse.de> | |
14868 | ||
14869 | PR middle-end/77305 | |
14870 | * statistics.c (statistics_counter_event): Robustify against | |
14871 | NULL current_pass. | |
14872 | ||
14873 | 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com> | |
14874 | ||
14875 | * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW | |
14876 | for targets amdfam10 and barcelona. | |
14877 | ||
14878 | 2016-08-22 Uros Bizjak <ubizjak@gmail.com> | |
14879 | ||
14880 | * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative. | |
14881 | (zero_extend<mode>di2): Ditto. | |
14882 | (*zero_extend<mode>si2): Ditto. | |
14883 | (*zero_extendqihi2): Ditto. | |
14884 | ||
14885 | 2016-08-22 Joseph Myers <joseph@codesourcery.com> | |
14886 | ||
14887 | PR middle-end/77269 | |
14888 | * builtins.c (fold_builtin_classify): Use builtin_decl_explicit | |
14889 | (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign. | |
14890 | ||
14891 | 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org> | |
14892 | ||
14893 | * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of | |
14894 | identical consecutive elements. | |
14895 | [SSA_NAME]: Print the name's def stmt on its own line. When printing | |
14896 | the node's def stmt, avoid printing an unwanted trailing newline by | |
14897 | replacing the call to print_gimple_stmt() with its inlined body and | |
14898 | adjusting it to not set pp_needs_newline and to call pp_flush() | |
14899 | instead of pp_newline_and_flush(). | |
14900 | ||
14901 | 2016-08-22 Joseph Myers <joseph@codesourcery.com> | |
14902 | ||
14903 | * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node) | |
14904 | (float32_type_node, float64_type_node, float32x_type_node) | |
14905 | (float128x_type_node): New macros. | |
14906 | * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64) | |
14907 | (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X) | |
14908 | (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128) | |
14909 | (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X) | |
14910 | (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32) | |
14911 | (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128) | |
14912 | (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X) | |
14913 | (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING) | |
14914 | (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING) | |
14915 | (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING) | |
14916 | (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING) | |
14917 | (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32) | |
14918 | (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128) | |
14919 | (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X) | |
14920 | (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X) | |
14921 | (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions. | |
14922 | * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro. | |
14923 | (copysign, fabs, huge_val, inf, nan, nans): Use it. | |
14924 | * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs | |
14925 | and copysign. | |
14926 | (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val. | |
14927 | (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs. | |
14928 | * doc/extend.texi (Other Builtins): Document these built-in | |
14929 | functions. | |
14930 | * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX | |
14931 | for nan and nans. | |
14932 | ||
14933 | 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com> | |
14934 | ||
14935 | * doc/install.texi (Binaries): www.opencsw.org now uses https. | |
14936 | ||
14937 | 2016-08-22 Richard Biener <rguenther@suse.de> | |
14938 | ||
14939 | * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order. | |
14940 | ||
14941 | 2016-08-21 Uros Bizjak <ubizjak@gmail.com> | |
14942 | ||
14943 | PR target/77270 | |
14944 | * config/i386/i386.md (prefetch): When TARGET_PRFCHW or | |
14945 | TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for | |
14946 | non-SSE2 athlons only, otherwise prefer SSE prefetches. | |
14947 | ||
14948 | 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org> | |
14949 | ||
14950 | * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR. | |
14951 | (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P. | |
14952 | (vrp_visit_switch_stmt): Likewise. | |
14953 | (extract_range_from_stmt): Factored out from vrp_visit_stmt. | |
14954 | (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt. | |
14955 | (vrp_visit_stmt): Use extract_range_from_stmt. | |
14956 | (vrp_visit_phi_node): Use extract_range_from_phi_node. | |
14957 | ||
14958 | 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org> | |
14959 | ||
14960 | * Makefile.in: Add tree-vrp.h to GTFILES. | |
14961 | * gengtype.c (open_base_files): Add tree-vrp.h. | |
14962 | * asan.c: Add tree-vrp.h which now has the definition value_range_type. | |
14963 | * builtins.c: Likewise. | |
14964 | * fold-const.c: Likewise. | |
14965 | * gimple-builder.c: Likewise. | |
14966 | * gimple-laddress.c: Likewise. | |
14967 | * hsa-gen.c: Likewise. | |
14968 | * internal-fn.c: Likewise. | |
14969 | * ssa.h: Likewise. | |
14970 | * targhooks.c: Liewise, | |
14971 | * tree-ssa-address.c: Likewise. | |
14972 | * tree-ssanames.h (value_range_type: Move to tree-vrp.h. | |
14973 | * tree-vrp.c (struct value_range): Move to tree-vrp.h | |
14974 | * tree-vrp.h: New file. | |
14975 | ||
14976 | 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org> | |
14977 | ||
14978 | PR tree-optimization/61839 | |
14979 | * tree-vrp.c (two_valued_val_range_p): New. | |
14980 | (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is | |
14981 | two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2). | |
14982 | Also Convert VAR BINOP CST where VAR is two-valued to | |
14983 | VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST). | |
14984 | ||
14985 | 2016-08-19 David Malcolm <dmalcolm@redhat.com> | |
14986 | ||
14987 | * diagnostic-show-locus.c | |
14988 | (layout::annotation_line_showed_range_p): New method. | |
14989 | (layout::print_any_fixits): Remove case fixit_hint::REMOVE. | |
14990 | Reimplement case fixit_hint::REPLACE to cover removals, and | |
14991 | replacements where the range of the replacement isn't one | |
14992 | of the ranges in the rich_location. | |
14993 | (test_one_liner_fixit_replace): Likewise. | |
14994 | (selftest::test_one_liner_fixit_replace_non_equal_range): New | |
14995 | function. | |
14996 | (selftest::test_one_liner_fixit_replace_equal_secondary_range): | |
14997 | New function. | |
14998 | (selftest::test_diagnostic_show_locus_one_liner): Call the new | |
14999 | functions. | |
15000 | * diagnostic.c (print_parseable_fixits): Remove case | |
15001 | fixit_hint::REMOVE. | |
15002 | ||
15003 | 2016-08-19 Uros Bizjak <ubizjak@gmail.com> | |
15004 | ||
15005 | PR target/77270 | |
15006 | * config/i386/i386.c (ix86_option_override_internal): Remove | |
15007 | PTA_PRFCHW from entries that also have PTA_3DNOW flag. | |
15008 | Enable SSE prefetch also for TARGET_PREFETCHWT1. | |
15009 | Do not try to enable TARGET_PRFCHW ISA flag here. | |
15010 | * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW. | |
15011 | Rewrite expander function body. | |
15012 | (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1. | |
15013 | ||
15014 | 2016-08-19 Joseph Myers <joseph@codesourcery.com> | |
15015 | ||
15016 | PR c/32187 | |
15017 | * tree-core.h (TI_COMPLEX_FLOAT16_TYPE) | |
15018 | (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE) | |
15019 | (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE) | |
15020 | (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE) | |
15021 | (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST) | |
15022 | (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE) | |
15023 | (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE) | |
15024 | (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE) | |
15025 | (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum | |
15026 | tree_index values. | |
15027 | (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New | |
15028 | macros. | |
15029 | (struct floatn_type_info): New structure type. | |
15030 | (floatn_nx_types): New variable declaration. | |
15031 | * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE) | |
15032 | (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node) | |
15033 | (COMPLEX_FLOATN_NX_TYPE_NODE): New macros. | |
15034 | * tree.c (floatn_nx_types): New variable. | |
15035 | (build_common_tree_nodes): Initialize _FloatN, _FloatNx and | |
15036 | corresponding complex types. | |
15037 | * target.def (floatn_mode): New hook. | |
15038 | * targhooks.c: Include "real.h". | |
15039 | (default_floatn_mode): New function. | |
15040 | * targhooks.h (default_floatn_mode): New prototype. | |
15041 | * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx | |
15042 | types. | |
15043 | * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new | |
15044 | effective-target and dg-add-options keywords. | |
15045 | (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime): | |
15046 | Document new effective-target keywords. | |
15047 | * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook. | |
15048 | * doc/tm.texi: Regenerate. | |
15049 | * ginclude/float.h (LDBL_DECIMAL_DIG): Define to | |
15050 | __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__. | |
15051 | [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS | |
15052 | 18661-3. | |
15053 | * real.h (struct real_format): Add field ieee_bits. | |
15054 | * real.c (ieee_single_format, mips_single_format) | |
15055 | (motorola_single_format, spu_single_format, ieee_double_format) | |
15056 | (mips_double_format, motorola_double_format) | |
15057 | (ieee_extended_motorola_format, ieee_extended_intel_96_format) | |
15058 | (ieee_extended_intel_128_format) | |
15059 | (ieee_extended_intel_96_round_53_format, ibm_extended_format) | |
15060 | (mips_extended_format, ieee_quad_format, mips_quad_format) | |
15061 | (vax_f_format, vax_d_format, vax_g_format, decimal_single_format) | |
15062 | (decimal_double_format, decimal_quad_format, ieee_half_format) | |
15063 | (arm_half_format, real_internal_format: Initialize ieee_bits | |
15064 | field. | |
15065 | * config/i386/i386.c (ix86_init_builtin_types): Do not initialize | |
15066 | float128_type_node. Set float80_type_node to float64x_type_node | |
15067 | if appropriate and long_double_type_node not appropriate. | |
15068 | * config/ia64/ia64.c (ia64_init_builtins): Likewise. | |
15069 | * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): | |
15070 | Initialize ieee_bits field. | |
15071 | * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro. | |
15072 | (rs6000_init_builtins): Set ieee128_float_type_node to | |
15073 | float128_type_node. | |
15074 | (rs6000_floatn_mode): New function. | |
15075 | ||
15076 | 2016-08-19 Jakub Jelinek <jakub@redhat.com> | |
15077 | ||
15078 | * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step, | |
15079 | _rdseed64_step): Uglify argument names and/or local variable names | |
15080 | in inline functions. | |
15081 | * config/i386/rtmintrin.h (_xabort): Likewise. | |
15082 | * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64, | |
15083 | _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64, | |
15084 | _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32, | |
15085 | _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64, | |
15086 | _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64, | |
15087 | _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32, | |
15088 | _mm_maskz_ternarylogic_epi32): Likewise. | |
15089 | * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64, | |
15090 | __lwpins32, __lwpins64): Likewise. | |
15091 | * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd, | |
15092 | _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd, | |
15093 | _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd, | |
15094 | _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps, | |
15095 | _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps, | |
15096 | _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64, | |
15097 | _mm_mask_i32gather_epi64, _mm256_i32gather_epi64, | |
15098 | _mm256_mask_i32gather_epi64, _mm_i64gather_epi64, | |
15099 | _mm_mask_i64gather_epi64, _mm256_i64gather_epi64, | |
15100 | _mm256_mask_i64gather_epi64, _mm_i32gather_epi32, | |
15101 | _mm_mask_i32gather_epi32, _mm256_i32gather_epi32, | |
15102 | _mm256_mask_i32gather_epi32, _mm_i64gather_epi32, | |
15103 | _mm_mask_i64gather_epi32, _mm256_i64gather_epi32, | |
15104 | _mm256_mask_i64gather_epi32): Likewise. | |
15105 | * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise. | |
15106 | * config/i386/ia32intrin.h (__writeeflags): Likewise. | |
15107 | * config/i386/pkuintrin.h (_wrpkru): Likewise. | |
15108 | * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd, | |
15109 | _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd, | |
15110 | _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd, | |
15111 | _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd, | |
15112 | _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd, | |
15113 | _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd, | |
15114 | _mm512_mask_prefetch_i64scatter_ps): Likewise. | |
15115 | * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise. | |
15116 | * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64, | |
15117 | _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64, | |
15118 | _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32, | |
15119 | _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps, | |
15120 | _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps, | |
15121 | _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64, | |
15122 | _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise. | |
15123 | ||
15124 | * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines | |
15125 | returning void. | |
15126 | (_fxrstor, _fxsave64, _fxrstor64): Likewise. | |
15127 | * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64): | |
15128 | Likewise. | |
15129 | * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise. | |
15130 | * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after | |
15131 | function name. | |
15132 | (_rdpkru_u32): Add space after function name. | |
15133 | ||
15134 | * config/i386/t-i386 (i386-c.o): Don't depend on | |
15135 | i386-builtin-types.inc. | |
15136 | (i386.o): Depend on i386-builtin-types.inc. | |
15137 | ||
15138 | 2016-08-19 Matthew Wahab <matthew.wahab@arm.com> | |
15139 | ||
15140 | PR target/77281 | |
15141 | * config/arm/arm.c (neon_valid_immediate): Delete declaration. | |
15142 | Use const_vec_duplicate to check for duplicated elements. | |
15143 | ||
15144 | 2016-08-19 Richard Biener <rguenther@suse.de> | |
15145 | ||
15146 | PR tree-optimization/77290 | |
15147 | * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): | |
15148 | Fix flag_tree_parallelize_loops check. | |
15149 | ||
15150 | 2016-08-19 Richard Biener <rguenther@suse.de> | |
15151 | ||
15152 | * match.pd (x | 0 -> x): Add. | |
15153 | ||
15154 | 2016-08-19 Richard Biener <rguenther@suse.de> | |
15155 | ||
15156 | PR tree-optimization/77286 | |
15157 | * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges): | |
15158 | Deal with virtual PHIs being out-of-order. | |
15159 | ||
15160 | 2016-08-18 David Malcolm <dmalcolm@redhat.com> | |
15161 | ||
15162 | * doc/invoke.texi (fverbose-asm): Note that source code lines | |
15163 | are emitted, and provide an example. | |
15164 | * final.c (asm_show_source): New function. | |
15165 | (final_scan_insn): Call asm_show_source. | |
15166 | ||
15167 | 2016-08-18 David Malcolm <dmalcolm@redhat.com> | |
15168 | ||
15169 | * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic | |
15170 | param with diagnostic_kind. | |
15171 | (class colorizer): Similarly replace field m_diagnostic with | |
15172 | m_diagnostic_kind. | |
15173 | (colorizer::colorizer): Replace diagnostic | |
15174 | param with diagnostic_kind. | |
15175 | (colorizer::begin_state): Update for above field change. | |
15176 | (layout::layout): Replace diagnostic param with rich_location * | |
15177 | and diagnostic_kind. | |
15178 | (diagnostic_show_locus): Replace diagnostic param with richloc | |
15179 | and diagnostic_kind. | |
15180 | (class selftest::test_diagnostic_context): New class. | |
15181 | (selftest::test_diagnostic_show_locus_unknown_location): New | |
15182 | function. | |
15183 | (selftest::test_one_liner_simple_caret): New function. | |
15184 | (selftest::test_one_liner_caret_and_range): New function. | |
15185 | (selftest::test_one_liner_multiple_carets_and_ranges): New | |
15186 | function. | |
15187 | (selftest::test_one_liner_fixit_remove): New function. | |
15188 | (selftest::test_one_liner_fixit_replace): New function. | |
15189 | (selftest::test_diagnostic_show_locus_one_liner): New function. | |
15190 | (selftest::diagnostic_show_locus_c_tests): Call the new test | |
15191 | functions. | |
15192 | * diagnostic.c (diagnostic_initialize): Initialize | |
15193 | colorize_source_p, show_ruler_p and parseable_fixits_p. | |
15194 | (default_diagnostic_finalizer): Update for change to | |
15195 | diagnostic_show_locus. | |
15196 | (diagnostic_append_note): Likewise. | |
15197 | * diagnostic.h (diagnostic_show_locus): Replace | |
15198 | const diagnostic_info * param with location * and diagnostic_t. | |
15199 | ||
15200 | 2016-08-18 David Malcolm <dmalcolm@redhat.com> | |
15201 | ||
15202 | * input.c (saved_line_table): New global. | |
15203 | (class selftest::temp_line_table): Rename to line_table_test and | |
15204 | move declaration to selftest.h, and drop field m_old_line_table. | |
15205 | (selftest::temp_line_table::temp_line_table): Rename ctor to... | |
15206 | (selftest::line_table_test::line_table_test): ...this. Add a | |
15207 | default ctor. Store current value of line_table within | |
15208 | saved_line_table. | |
15209 | (selftest::temp_line_table::~temp_line_table): Rename dtor to... | |
15210 | (selftest::line_table_test::~line_table_test): ...this, and | |
15211 | restore line_table from the saved_line_table, rather than | |
15212 | m_old_line_table. | |
15213 | (selftest::test_accessing_ordinary_linemaps): Update for above | |
15214 | renaming. | |
15215 | (selftest::test_lexer): Likewise. | |
15216 | (struct selftest::lexer_test): Likewise. | |
15217 | (selftest::lexer_test::lexer_test): Likewise. | |
15218 | (selftest::input_c_tests): Move the looping over test cases from | |
15219 | here into... | |
15220 | (selftest::for_each_line_table_case): New function. | |
15221 | * input.h (saved_line_table): New decl. | |
15222 | * selftest.h (struct selftest::line_table_case): New forward decl. | |
15223 | (class selftest::line_table_test): New class, moved here from | |
15224 | selftest::temp_line_table in input.c, and renamed. | |
15225 | (selftest::for_each_line_table_case): New decl. | |
15226 | ||
15227 | 2015-08-18 H.J. Lu <hongjiu.lu@intel.com> | |
15228 | ||
15229 | PR target/72839 | |
15230 | * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17. | |
15231 | ||
15232 | 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com> | |
15233 | ||
15234 | PR middle-end/70895 | |
15235 | * gimplify.c (omp_add_variable): Adjust/add variable mapping on | |
15236 | enclosing parallel construct for reduction variables on OpenACC loop | |
15237 | directives. | |
15238 | ||
15239 | 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com> | |
15240 | ||
15241 | * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment. | |
15242 | (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for | |
15243 | -gdwarf-3. | |
15244 | (function_to_dwarf_procedure): Update comment. | |
15245 | ||
15246 | 2016-08-18 David Malcolm <dmalcolm@redhat.com> | |
15247 | ||
15248 | * input.c (diagnostics_file_cache_forcibly_evict_file): New | |
15249 | function. | |
15250 | * input.h (diagnostics_file_cache_forcibly_evict_file): New | |
15251 | declaration. | |
15252 | * selftest.c (selftest::temp_source_file::~temp_source_file): | |
15253 | Evict m_filename from the diagnostic file cache. | |
15254 | ||
15255 | 2016-08-18 Richard Biener <rguenther@suse.de> | |
15256 | ||
15257 | * tree-pass.h (make_pass_materialize_all_clones): Declare. | |
15258 | * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones, | |
15259 | make_pass_materialize_all_clones): New simple IPA pass encapsulating | |
15260 | clone materialization. | |
15261 | * passes.def (all_late_ipa_passes): Start with | |
15262 | pass_materialize_all_clones. | |
15263 | * cgraphunit.c (symbol_table::compile): Remove call to | |
15264 | materialize_all_clones. | |
15265 | * tree-into-ssa.c: Include statistics.h. | |
15266 | (update_ssa): Count number of times we do incremental/rewrite | |
15267 | SSA update. | |
15268 | ||
15269 | 2016-08-18 Richard Biener <rguenther@suse.de> | |
15270 | ||
15271 | PR tree-optimization/77282 | |
15272 | * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): | |
15273 | When doing auto-parallelizing also prevent use of PHIs that | |
15274 | carry dependences across loop backedges. | |
15275 | ||
15276 | 2016-08-18 Tamar Christina <tamar.christina@arm.com> | |
15277 | Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
15278 | ||
15279 | * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls. | |
15280 | ||
15281 | 2016-08-18 Richard Biener <rguenther@suse.de> | |
15282 | ||
15283 | * ssa-iterators.h (ssa_vuse_operand): New inline. | |
15284 | * tree-if-conv.c (ifc_temp_var): Update virtual operand. | |
15285 | (predicate_all_scalar_phis): Use remove_phi_node to remove | |
15286 | phi nodes predicated. Delay removing virtual PHIs. | |
15287 | (predicate_mem_writes): Update virtual operands. | |
15288 | (combine_blocks): Likewise. Propagate out remaining virtual PHIs. | |
15289 | (tree_if_conversion): Do not rewrite virtual SSA form. | |
15290 | * tree-phinodes.c (release_phi_node): Make static. | |
15291 | * tree-phinodes.h (release_phi_node): Remove. | |
15292 | ||
15293 | 2016-08-18 Jakub Jelinek <jakub@redhat.com> | |
15294 | ||
15295 | * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_* | |
15296 | codes that appear in bdesc_* arrays, instead include i386-builtin.def | |
15297 | twice to define those. | |
15298 | (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args, | |
15299 | bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const, | |
15300 | bdesc_multi_arg): Define by including i386-builtin.def the third time. | |
15301 | * config/i386/i386-builtin.def: New file. | |
15302 | ||
15303 | 2016-08-17 David Malcolm <dmalcolm@redhat.com> | |
15304 | ||
15305 | * input.c (get_source_range_for_char): Rename to... | |
15306 | (selftest::get_source_range_for_char): ...this, and move within | |
15307 | the #if CHECKING_P guard. | |
15308 | (get_num_source_ranges_for_substring): Rename to... | |
15309 | (selftest::get_num_source_ranges_for_substring): ...this, move | |
15310 | within the #if CHECKING_P guard, and make static. | |
15311 | (selftest::assert_num_substring_ranges): Initialize | |
15312 | actual_num_ranges. | |
15313 | ||
15314 | 2016-08-18 Alan Modra <amodra@gmail.com> | |
15315 | ||
15316 | PR rtl-optimization/72771 | |
15317 | * reload.c (find_reloads): Don't assume that a subreg mem is OK | |
15318 | when find_reloads_toplev returns address_reloaded==-1. | |
15319 | (alternative_allows_const_pool_ref): Update comment. | |
15320 | ||
15321 | 2015-08-17 Alan Hayward <alan.hayward@arm.com> | |
15322 | ||
15323 | PR tree-optimization/71752 | |
15324 | * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering. | |
15325 | * tree-vect-slp.c (vect_get_slp_defs): Handle null operands. | |
15326 | ||
15327 | 2016-08-17 Jakub Jelinek <jakub@redhat.com> | |
15328 | ||
15329 | * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p | |
15330 | instead of testing ECF_NORETURN bit in gimple_call_flags. | |
15331 | * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise. | |
15332 | * predict.c (tree_bb_level_predictions): Likewise. | |
15333 | * gimple-low.c (gimple_stmt_may_fallthru): Likewise. | |
15334 | ||
15335 | PR middle-end/77259 | |
15336 | * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If | |
15337 | turning a call into __builtin_unreachable-like noreturn call, adjust | |
15338 | gimple_call_set_fntype. | |
15339 | * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if | |
15340 | gimple_call_fntype has void return type. | |
15341 | ||
15342 | 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com> | |
15343 | ||
15344 | * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use | |
15345 | maybe_lookup_decl, to handle nested acc loop directives. | |
15346 | ||
15347 | 2016-08-17 Richard Biener <rguenther@suse.de> | |
15348 | ||
15349 | PR tree-optimization/76490 | |
15350 | * tree-vrp.c (update_value_range): Preserve overflow infinities | |
15351 | when intersecting with ranges from get_range_info. | |
15352 | (operand_less_p): Handle overflow infinities correctly. | |
15353 | (value_range_constant_singleton): Use vrp_operand_equal_p | |
15354 | to handle overflow max/min correctly. | |
15355 | (vrp_valueize): Likewise. | |
15356 | (union_ranges): Likewise. | |
15357 | (intersect_ranges): Likewise. | |
15358 | (vrp_visit_phi_node): Improve iteration limitation to only | |
15359 | apply when we'll possibly re-visit the PHI via a changed argument | |
15360 | on the backedge. | |
15361 | ||
15362 | 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
15363 | ||
15364 | * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ... | |
15365 | (MULTILIB_REQUIRED): This by specifying multilib needing to be built | |
15366 | rather than those that should not be built. | |
15367 | ||
15368 | 2016-08-17 Stanislaw Halik <sthalik@misaki.pl> | |
15369 | ||
15370 | PR target/66488 | |
15371 | * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__. | |
15372 | ||
15373 | 2016-08-17 Richard Biener <rguenther@suse.de> | |
15374 | ||
15375 | * tree-ssa.c: Include tree-cfg.h and tree-dfa.h. | |
15376 | (verify_vssa): New function verifying virtual SSA form. | |
15377 | (verify_ssa): Call it. | |
15378 | * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2): | |
15379 | Do not apply loop-closed SSA handling to virtuals. | |
15380 | * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION. | |
15381 | * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names | |
15382 | when rewriting their symbol. | |
15383 | (prepare_def_site_for): Likewise. | |
15384 | * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual | |
15385 | operands of moved stmts. | |
15386 | ||
15387 | 2016-08-17 Richard Biener <rguenther@suse.de> | |
15388 | ||
15389 | PR tree-optimization/23855 | |
15390 | * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h. | |
15391 | (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we | |
15392 | find guards to hoist. Do not update SSA form but rewrite virtuals | |
15393 | into loop closed SSA. | |
15394 | (find_loop_guard): Adjust to skip already hoisted guards. Do | |
15395 | not mark virtuals for renaming or update SSA form. | |
15396 | ||
15397 | 2016-08-17 Martin Liska <mliska@suse.cz> | |
15398 | ||
15399 | * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with | |
15400 | a LONG_LONG_TYPE_SIZE comparison. | |
15401 | * gcov-io.h: Remove macro definitions. | |
15402 | * tree-profile.c (gimple_gen_edge_profiler): Replace usage | |
15403 | of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE | |
15404 | comparison. | |
15405 | ||
15406 | 2016-08-16 Jakub Jelinek <jakub@redhat.com> | |
15407 | ||
15408 | * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so | |
15409 | that builtins not mentioned in bdesc_* arrays come first, then | |
15410 | the ones mentioned in bdesc_* arrays in the order they appear in | |
15411 | the arrays in between IX86_BUILTIN__BDESC_*_FIRST and | |
15412 | IX86_BUILTIN__BDESC_*_LAST enumerator. | |
15413 | (bdesc_mpx): Fix up a comment typo. | |
15414 | (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and | |
15415 | __builtin_ia32_vpcomneu[bwdq] builtins. | |
15416 | (BDESC_VERIFY, BDESC_VERIFYS): Define. | |
15417 | (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify | |
15418 | enum ix86_builtins ordering. | |
15419 | (ix86_expand_builtin): Use enum ix86_builtins ordering assumption | |
15420 | for direct bdesc_* array member access instead of searching all the | |
15421 | arrays until an fcode match is found. | |
15422 | ||
15423 | 2016-08-16 Uros Bizjak <ubizjak@gmail.com> | |
15424 | ||
15425 | * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn | |
15426 | pattern as define_insn_and_split. Split insn before reload to | |
15427 | ashl<mode>3_1. | |
15428 | (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to | |
15429 | <shift_insn><mode>3_1. | |
15430 | (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to | |
15431 | <rotate_insn><mode>3_1. | |
15432 | ||
15433 | 2016-08-16 David Malcolm <dmalcolm@redhat.com> | |
15434 | ||
15435 | PR c/72857 | |
15436 | * input.c (get_source_range_for_substring): Rename to... | |
15437 | (get_source_location_for_substring): ...this, adding param | |
15438 | "caret_idx", and converting output param from source_range * to | |
15439 | location_t *. | |
15440 | (get_source_range_for_char): New function. | |
15441 | (get_num_source_ranges_for_substring): Update comment to reflect | |
15442 | above renaming. | |
15443 | (assert_char_at_range): Update to use get_source_range_for_char | |
15444 | rather than get_source_range_for_substring. | |
15445 | (test_lexer_string_locations_concatenation_2): Likewise. | |
15446 | * substring-locations.h (get_source_range_for_substring): Rename | |
15447 | to... | |
15448 | (get_source_location_for_substring): ...this, and adding param | |
15449 | "caret_idx", and converting output param from source_range * to | |
15450 | location_t *. | |
15451 | ||
15452 | 2016-08-16 David Malcolm <dmalcolm@redhat.com> | |
15453 | ||
15454 | * input.c (class selftest::temp_source_file): Move to | |
15455 | selftest.h. | |
15456 | (selftest::temp_source_file::temp_source_file): Move to | |
15457 | selftest.c. | |
15458 | (selftest::temp_source_file::~temp_source_file): Likewise. | |
15459 | * selftest.c (selftest::temp_source_file::temp_source_file): Move | |
15460 | here from input.c. | |
15461 | (selftest::temp_source_file::~temp_source_file): Likewise. | |
15462 | * selftest.h (class selftest::temp_source_file): Move here from | |
15463 | input.c | |
15464 | ||
15465 | 2016-08-16 Jakub Jelinek <jakub@redhat.com> | |
15466 | ||
15467 | PR target/71910 | |
15468 | * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before | |
15469 | inlining, add cgraph edge for the added __builtin_unreachable call. | |
15470 | ||
15471 | PR middle-end/67485 | |
15472 | * expmed.c (expand_mult_const): Change val_so_far's type to UHWI, | |
15473 | only cast it to SHWI for the final comparison. | |
15474 | ||
15475 | 2016-08-16 Martin Liska <mliska@suse.cz> | |
15476 | ||
15477 | PR gcov-profile/36412 | |
15478 | * doc/gcov.texi: Document --hash-filenames(-x). | |
15479 | * gcov.c (print_usage): Add the option. | |
15480 | (process_args): Process the option, sort options alphabetically. | |
15481 | (md5sum_to_hex): New function. | |
15482 | (make_gcov_file_name): Do the md5sum and append it to a | |
15483 | filename. | |
15484 | ||
15485 | 2016-08-16 Bin Cheng <bin.cheng@arm.com> | |
15486 | ||
15487 | PR tree-optimization/69848 | |
15488 | * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE | |
15489 | and swtich operands to avoid additional NOT instruction. | |
15490 | (vcond<v_cmp_mixed><mode>): Ditto. | |
15491 | (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto. | |
15492 | ||
15493 | 2016-08-16 Eric Botcazou <ebotcazou@adacore.com> | |
15494 | ||
15495 | * doc/install.texi (*-*-solaris2*): Adjust latest change. | |
15496 | ||
15497 | 2016-08-16 Richard Biener <rguenther@suse.de> | |
15498 | ||
15499 | PR tree-optimization/76783 | |
15500 | * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear | |
15501 | BB visited flags at start. | |
15502 | ||
15503 | 2016-08-16 Bin Cheng <bin.cheng@arm.com> | |
15504 | ||
15505 | PR tree-optimization/72817 | |
15506 | PR tree-optimization/73450 | |
15507 | * tree-ssa-loop-niter.c (number_of_iterations_ne): Check | |
15508 | multiple_of_p for adjusted IV.base. | |
15509 | ||
15510 | 2016-08-15 Uros Bizjak <ubizjak@gmail.com> | |
15511 | ||
15512 | PR target/72867 | |
15513 | * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>): | |
15514 | Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name> | |
15515 | for !flag_finite_math_only or flag_signed_zeros. | |
15516 | (*<code><mode>3<mask_name><round_saeonly_name>): Rename from | |
15517 | *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not | |
15518 | depend on flag_finite_math_only. | |
15519 | (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>): | |
15520 | New insn pattern. | |
15521 | (*<code><mode>3<mask_name><round_saeonly_name>): Remove. | |
15522 | (*ieee_smin<mode>3): Ditto. | |
15523 | (*ieee_smax<mode>3): Ditto. | |
15524 | * config/i386/mmx.md (mmx_<code>v2sf3): Emit | |
15525 | mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or | |
15526 | flag_signed_zeros. | |
15527 | (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not | |
15528 | depend on flag_finite_math_only. | |
15529 | (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern. | |
15530 | (*mmx_<code>v2sf3): Remove. | |
15531 | * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute. | |
15532 | * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check | |
15533 | flag_signed_zeros instead of !flag_unsafe_math_optimizations. | |
15534 | ||
15535 | 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org> | |
15536 | ||
15537 | PR rtl-optimization/73650 | |
15538 | * lra-constraints.c (simple_move_p): If the insn is multiple_sets | |
15539 | it is not a simple move. | |
15540 | ||
15541 | 2016-08-15 Martin Liska <mliska@suse.cz> | |
15542 | ||
15543 | PR driver/72765 | |
15544 | * gcc.c (do_spec_1): Call save_string with the right size. | |
15545 | (save_string): Do an assert about string we copy. | |
15546 | ||
15547 | 2016-08-15 Richard Biener <rguenther@suse.de> | |
15548 | ||
15549 | * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop. | |
15550 | * config/i386/i386.c (pass_data_insert_vzeroupper): Account to | |
15551 | TV_MACH_DEP. | |
15552 | (pass_data_stv): Likewise. | |
15553 | ||
15554 | 2016-08-15 Richard Biener <rguenther@suse.de> | |
15555 | ||
15556 | PR tree-optimization/73434 | |
15557 | * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve | |
15558 | TBAA info on the base when forwarding a non-invariant address. | |
15559 | ||
15560 | 2016-08-15 Jakub Jelinek <jakub@redhat.com> | |
15561 | ||
15562 | * dwarf2out.c (struct checksum_attributes): Add | |
15563 | at_string_length_bit_size and at_string_length_byte_size fields. | |
15564 | (collect_checksum_attributes): Handle DW_AT_string_length_bit_size | |
15565 | and DW_AT_string_length_byte_size. | |
15566 | (die_checksum_ordered): Handle at_string_length_bit_size and | |
15567 | at_string_length_byte_size. | |
15568 | (gen_array_type_die): For dwarf_version >= 5 emit | |
15569 | DW_AT_string_length_byte_size instead of DW_AT_byte_size. | |
15570 | (adjust_string_types): For dwarf_version >= 5 remove | |
15571 | DW_AT_string_length_byte_size instead of DW_AT_byte_size. | |
15572 | (resolve_addr): Likewise. | |
15573 | ||
15574 | PR debug/71906 | |
15575 | * dwarf2out.c (string_types): New variable. | |
15576 | (gen_array_type_die): Change early_dwarf handling of | |
15577 | DW_AT_string_length, create DW_OP_call4 referencing the | |
15578 | length var temporarily. Handle parameters that are pointers | |
15579 | to string length. | |
15580 | (adjust_string_types): New function. | |
15581 | (gen_subprogram_die): Temporarily set string_types to local var, | |
15582 | call adjust_string_types if needed. | |
15583 | (non_dwarf_expression, copy_deref_exprloc, optimize_string_length): | |
15584 | New functions. | |
15585 | (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4. | |
15586 | ||
15587 | 2016-08-15 Eric Botcazou <ebotcazou@adacore.com> | |
15588 | ||
15589 | * doc/install.texi (*-*-solaris2*): Fix version number and document | |
15590 | requirement on GNU make for building libjava with the Solaris linker. | |
15591 | ||
15592 | 2016-08-15 Martin Liska <mliska@suse.cz> | |
15593 | Jakub Jelinek <jakub@redhat.com> | |
15594 | ||
15595 | PR tree-optimization/72824 | |
15596 | * tree-loop-distribution.c (const_with_all_bytes_same) | |
15597 | <case VECTOR_CST>: Fix a typo. | |
15598 | ||
15599 | 2016-08-14 Uros Bizjak <ubizjak@gmail.com> | |
15600 | ||
15601 | PR target/76342 | |
15602 | * config/i386/avx512fintrin.h (_mm512_undefined_epi32): | |
15603 | Renamed from _mm512_undefined_si512. | |
15604 | (_mm_undefined_si512): New definition. | |
15605 | ||
15606 | 2016-08-13 Richard Biener <rguenther@suse.de> | |
15607 | ||
15608 | * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate | |
15609 | into PHIs and update the lattice for its def. | |
15610 | ||
15611 | 2016-08-12 Jakub Jelinek <jakub@redhat.com> | |
15612 | ||
15613 | PR c/71512 | |
15614 | * ubsan.c (instrument_si_overflow): Pass true instead of false | |
15615 | to gsi_replace. | |
15616 | (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end | |
15617 | of bbs. Return TODO_cleanup_cfg if any returned true. | |
15618 | ||
15619 | 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com> | |
15620 | ||
15621 | * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the | |
15622 | ISA 3.0 MTVSRDD instruction. | |
15623 | (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to | |
15624 | vecperm. | |
15625 | ||
15626 | 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
15627 | ||
15628 | PR tree-optimization/71083 | |
15629 | * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the | |
15630 | bitfield access when possible. | |
15631 | ||
15632 | 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org> | |
15633 | ||
15634 | PR middle-end/71654 | |
15635 | * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a | |
15636 | sign-changing cast from a shorter unsigned type to a wider | |
15637 | signed type. | |
15638 | ||
15639 | 2016-08-12 Jakub Jelinek <jakub@redhat.com> | |
15640 | ||
15641 | * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm, | |
15642 | vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask, | |
15643 | vec_extract_hi_<mode>_mask): Use Yk constraint instead of k. | |
15644 | ||
15645 | 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
15646 | ||
15647 | * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): | |
15648 | Correct costs for vec_construct. | |
15649 | ||
15650 | 2016-08-12 Bin Cheng <bin.cheng@arm.com> | |
15651 | ||
15652 | PR tree-optimization/69848 | |
15653 | * tree-vectorizer.h (enum vect_def_type): New condition reduction | |
15654 | type CONST_COND_REDUCTION. | |
15655 | * tree-vect-loop.c (vectorizable_reduction): Support new condition | |
15656 | reudction type CONST_COND_REDUCTION. | |
15657 | ||
15658 | 2016-08-12 Richard Biener <rguenther@suse.de> | |
15659 | ||
15660 | PR tree-optimization/57326 | |
15661 | * tree-ssa-pre.c (fully_constant_expression): Handle simplification | |
15662 | returning an SSA name. | |
15663 | (phi_translate_1): When fully_constant_expression returns a NAME | |
15664 | make sure we have a leader for it. | |
15665 | ||
15666 | 2016-08-12 Martin Liska <mliska@suse.cz> | |
15667 | Adam Fineman <afineman@afineman.com> | |
15668 | ||
15669 | * gcov.c (process_file): Create .gcov file when .gcda | |
15670 | file is missing. | |
15671 | ||
15672 | 2016-08-12 Marek Polacek <polacek@redhat.com> | |
15673 | ||
15674 | PR c/7652 | |
15675 | * alias.c (find_base_value): Adjust fall through comment. | |
15676 | * cfgexpand.c (expand_debug_expr): Likewise. | |
15677 | * combine.c (find_split_point): Likewise. | |
15678 | (expand_compound_operation): Likewise. Add FALLTHRU. | |
15679 | (make_compound_operation): Adjust fall through comment. | |
15680 | (canon_reg_for_combine): Add FALLTHRU. | |
15681 | (force_to_mode): Adjust fall through comment. | |
15682 | (simplify_shift_const_1): Likewise. | |
15683 | (simplify_comparison): Likewise. | |
15684 | * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add | |
15685 | FALLTHRU. | |
15686 | * config/aarch64/predicates.md: Likewise. | |
15687 | * config/i386/i386.c (function_arg_advance_32): Likewise. | |
15688 | (ix86_gimplify_va_arg): Likewise. | |
15689 | (print_reg): Likewise. | |
15690 | (ix86_print_operand): Likewise. | |
15691 | (ix86_build_const_vector): Likewise. | |
15692 | (ix86_expand_branch): Likewise. | |
15693 | (ix86_sched_init_global): Adjust fall through comment. | |
15694 | (ix86_expand_args_builtin): Add FALLTHRU. | |
15695 | (ix86_expand_builtin): Likewise. | |
15696 | (ix86_expand_vector_init_one_var): Likewise. | |
15697 | * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise. | |
15698 | (rs6000_adjust_cost): Likewise. | |
15699 | (insn_must_be_first_in_group): Likewise. | |
15700 | * config/rs6000/rs6000.md: Likewise. Adjust fall through comment. | |
15701 | * dbxout.c (dbxout_symbol): Adjust fall through comment. | |
15702 | * df-scan.c (df_uses_record): Likewise. | |
15703 | * dojump.c (do_jump): Add FALLTHRU. | |
15704 | * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through | |
15705 | comment. | |
15706 | (resolve_args_picking_1): Adjust fall through comment. | |
15707 | (loc_list_from_tree_1): Likewise. | |
15708 | * expmed.c (make_tree): Likewise. | |
15709 | * expr.c (expand_expr_real_2): Add FALLTHRU. | |
15710 | (expand_expr_real_1): Likewise. Adjust fall through comment. | |
15711 | * fold-const.c (const_binop): Adjust fall through comment. | |
15712 | (fold_truth_not_expr): Likewise. | |
15713 | (fold_cond_expr_with_comparison): Add FALLTHRU. | |
15714 | (fold_binary_loc): Likewise. | |
15715 | (contains_label_1): Adjust fall through comment. | |
15716 | (multiple_of_p): Likewise. | |
15717 | * gcov-tool.c (process_args): Add FALLTHRU. | |
15718 | * genattrtab.c (check_attr_test): Likewise. | |
15719 | (write_test_expr): Likewise. | |
15720 | * genconfig.c (walk_insn_part): Likewise. | |
15721 | * genpreds.c (validate_exp): Adjust fall through comment. | |
15722 | (needs_variable): Likewise. | |
15723 | * gensupport.c (get_alternatives_number): Add FALLTHRU. | |
15724 | (subst_dup): Likewise. | |
15725 | * gimple-pretty-print.c (dump_gimple_assign): Likewise. | |
15726 | * gimplify.c (gimplify_addr_expr): Adjust fall through comment. | |
15727 | (gimplify_scan_omp_clauses): Add FALLTHRU. | |
15728 | (goa_stabilize_expr): Likewise. | |
15729 | * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall | |
15730 | through comment. | |
15731 | * hsa-gen.c (get_address_from_value): Likewise. | |
15732 | * ipa-icf.c (sem_function::hash_stmt): Likewise. | |
15733 | * ira.c (ira_setup_alts): Add FALLTHRU. | |
15734 | * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through | |
15735 | comment. | |
15736 | * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU. | |
15737 | * opts.c (common_handle_option): Likewise. | |
15738 | * read-rtl.c (read_rtx_code): Likewise. | |
15739 | * real.c (round_for_format): Likewise. | |
15740 | * recog.c (asm_operand_ok): Likewise. | |
15741 | * reginfo.c (reg_scan_mark_refs): Adjust fall through comment. | |
15742 | * reload1.c (set_label_offsets): Likewise. | |
15743 | (eliminate_regs_1): Likewise. | |
15744 | (reload_reg_reaches_end_p): Likewise. | |
15745 | * rtlanal.c (commutative_operand_precedence): Add FALLTHRU. | |
15746 | (rtx_cost): Likewise. | |
15747 | * sched-rgn.c (is_exception_free): Likewise. | |
15748 | * simplify-rtx.c (simplify_rtx): Adjust fall through comment. | |
15749 | * stor-layout.c (int_mode_for_mode): Likewise. | |
15750 | * toplev.c (print_to_asm_out_file): Likewise. | |
15751 | (print_to_stderr): Likewise. | |
15752 | * tree-cfg.c (gimple_verify_flow_info): Likewise. | |
15753 | * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU. | |
15754 | (chrec_fold_multiply): Likewise. | |
15755 | (evolution_function_is_invariant_rec_p): Likewise. | |
15756 | (for_each_scev_op): Likewise. | |
15757 | * tree-data-ref.c (siv_subscript_p): Likewise. | |
15758 | (get_references_in_stmt): Likewise. | |
15759 | * tree.c (find_placeholder_in_expr): Adjust fall through comment. | |
15760 | (substitute_in_expr): Likewise. | |
15761 | (type_cache_hasher::equal): Likewise. | |
15762 | (walk_type_fields): Likewise. | |
15763 | * var-tracking.c (adjust_mems): Add FALLTHRU. | |
15764 | (set_dv_changed): Adjust fall through comment. | |
15765 | * varasm.c (default_function_section): Add FALLTHRU. | |
15766 | ||
15767 | 2016-08-12 Marek Polacek <polacek@redhat.com> | |
15768 | ||
15769 | PR c/7652 | |
15770 | * tree-complex.c (expand_complex_division): Add missing break. | |
15771 | ||
15772 | 2016-08-12 Richard Biener <rguenther@suse.de> | |
15773 | ||
15774 | * passes.c (execute_todo): Do not push/pop TV_TODO. | |
15775 | (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution. | |
15776 | (execute_one_pass): Likewise. | |
15777 | * common.opt (ftime-report-details): New switch. | |
15778 | * doc/invoke.texi (ftime-report-details): Document. | |
15779 | * timevar.h (timer::print_row): Adjust signature. | |
15780 | (timer::all_zero): New static helper. | |
15781 | (timer::child_map_t): New typedef. | |
15782 | (timer::time_var_def): Add children field. | |
15783 | * timevar.c (timer::named_items::print): Adjust. | |
15784 | (timer::~timer): Free timevar recorded children. | |
15785 | (timer::pop_internal): When -ftime-report-details record | |
15786 | time spent in sub-timevars. | |
15787 | (timer::print_row): Adjust. | |
15788 | (timer::print): Print sub-timevar stats, use all_zero. | |
15789 | * timevar.def (TV_TODO): Remove. | |
15790 | ||
15791 | 2016-08-12 Richard Biener <rguenther@suse.de> | |
15792 | ||
15793 | PR tree-optimization/72851 | |
15794 | * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt | |
15795 | worklists to use bitmaps indexed in execution order. | |
15796 | (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head, | |
15797 | bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove. | |
15798 | (cfg_blocks): Make a bitmap. | |
15799 | (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt): | |
15800 | New globals. | |
15801 | (cfg_blocks_empty_p): Adjust. | |
15802 | (cfg_blocks_add): Likewise. | |
15803 | (cfg_blocks_get): Likewise. | |
15804 | (add_ssa_edge): Likewise. | |
15805 | (add_control_edge): Likewise. | |
15806 | (simulate_stmt): Likewise. | |
15807 | (process_ssa_edge_worklist): Likewise. | |
15808 | (simulate_block): Likewise. | |
15809 | (ssa_prop_init): Compute PRE order and stmt UIDs. | |
15810 | (ssa_prop_fini): Adjust. | |
15811 | (ssa_propagate): Adjust. | |
15812 | ||
15813 | 2016-08-12 Richard Biener <rguenther@suse.de> | |
15814 | ||
15815 | * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if | |
15816 | the currently executable edges have fixed ranges. Always | |
15817 | go through update_value_range. | |
15818 | ||
15819 | 2016-08-12 Alexandre Oliva <aoliva@redhat.com> | |
15820 | ||
15821 | PR debug/63240 | |
15822 | * langhooks-def.h | |
15823 | (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify. | |
15824 | (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise. | |
15825 | (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default. | |
15826 | (LANG_HOOKS_DECLS): Add it. | |
15827 | * langhooks.h (struct lang_hooks_for_decls): Add | |
15828 | function_decl_defaulted. Const_tree-ify | |
15829 | function_decl_explicit_p and function_decl_deleted_p. | |
15830 | * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted | |
15831 | attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted, | |
15832 | also at strict DWARF v5. | |
15833 | ||
15834 | PR debug/55641 | |
15835 | * dwarf2out.c (decl_quals): Don't map TREE_READONLY to | |
15836 | TYPE_QUAL_CONST in reference-typed decls. | |
15837 | ||
15838 | PR debug/49366 | |
15839 | * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs | |
15840 | in DW_OP_pieces, just enough to handle pointers to member | |
15841 | functions. | |
15842 | (gen_remaining_tmpl_value_param_die_attribute): Use a location | |
15843 | expression on DWARFv5 if a constant value doesn't work. | |
15844 | ||
15845 | 2016-08-11 David Malcolm <dmalcolm@redhat.com> | |
15846 | ||
15847 | * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests. | |
15848 | * selftest.c (selftest::test_assertions): New function. | |
15849 | (selftest::selftest_c_tests): New function. | |
15850 | * selftest.h (selftest::selftest_c_tests): New declaration. | |
15851 | ||
15852 | 2016-08-11 Richard Biener <rguenther@suse.de> | |
15853 | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
15854 | ||
15855 | PR rtl-optimization/72855 | |
15856 | * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end. | |
15857 | ||
15858 | 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
15859 | ||
15860 | PR target/72863 | |
15861 | * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time. | |
15862 | (vsx_store_<mode>): Likewise. | |
15863 | ||
15864 | 2015-08-11 H.J. Lu <hongjiu.lu@intel.com> | |
15865 | ||
15866 | * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow | |
15867 | TImode CONST_WIDE_INT store. | |
15868 | (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store. | |
15869 | ||
15870 | 2015-08-11 H.J. Lu <hongjiu.lu@intel.com> | |
15871 | ||
15872 | * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit | |
15873 | mode if unaligned SSE load and store are optimal. | |
15874 | ||
15875 | 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
15876 | ||
15877 | PR tree-optimization/71083 | |
15878 | * tree-predcom.c (ref_at_iteration): Correctly align the | |
15879 | reference type. | |
15880 | ||
15881 | 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
15882 | ||
15883 | * config/s390/s390-builtin-types.def: Add INT128 types. | |
15884 | * config/s390/s390-builtins.def: Add INT128 variants for the add | |
15885 | sub low-level builtins dealing with TImode. | |
15886 | * config/s390/s390.c (s390_expand_builtin): Allow mode conversions | |
15887 | via subreg when expanding a builtin. | |
15888 | * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128, | |
15889 | UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants. | |
15890 | Fix comment. | |
15891 | * config/s390/vecintrin.h: Adjust builtin names accordingly. | |
15892 | * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander. | |
15893 | ("vec_addc<mode>", "vec_addc_u128"): Merge to | |
15894 | "vacc<bhfgq>_<mode>". | |
15895 | ("vec_adde_u128"): Rename to "vacq". Change mode to TImode. | |
15896 | ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode. | |
15897 | ("vec_subc<mode>", "vec_subc_u128"): Merge to | |
15898 | "vscbi<bhfgq>_<mode>". | |
15899 | ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode. | |
15900 | ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode. | |
15901 | ||
15902 | 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
15903 | ||
15904 | * config/s390/s390-builtins.def: Mark last operand of s390_vlvg* | |
15905 | ||
15906 | 2016-08-11 Bin Cheng <bin.cheng@arm.com> | |
15907 | ||
15908 | * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete | |
15909 | unused declaration. | |
15910 | (vcond<v_cmp_mixed><mode>): Ditto. | |
15911 | (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto. | |
15912 | ||
15913 | 2016-08-11 Bin Cheng <bin.cheng@arm.com> | |
15914 | ||
15915 | * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init | |
15916 | variable explicitly, also assert on it before use. | |
15917 | ||
15918 | 2016-08-11 Richard Biener <rguenther@suse.de> | |
15919 | ||
15920 | PR tree-optimization/72772 | |
15921 | * cfgloopmanip.c (create_preheader): Use split_edge if there | |
15922 | is a single loop entry, avoiding degenerate PHIs. | |
15923 | ||
15924 | 2016-08-11 Richard Biener <rguenther@suse.de> | |
15925 | ||
15926 | * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove | |
15927 | unconditional TODO_cleanup_cfg. | |
15928 | (pass_thread_jumps::execute): Initialize loops, perform a CFG | |
15929 | cleanup only if we threaded a jump. | |
15930 | ||
15931 | 2016-08-11 Alan Modra <amodra@gmail.com> | |
15932 | ||
15933 | PR target/71680 | |
15934 | * lra-constraints.c (simplify_operand_subreg): Allow subreg | |
15935 | mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also | |
15936 | slow. Emit two reloads for slow mem case, first loading in | |
15937 | fast innermode, then converting to required mode. | |
15938 | ||
15939 | 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
15940 | ||
15941 | * config/rs6000/altivec.h (vec_extract_exp): New macro. | |
15942 | (vec_extract_sig): New macro. | |
15943 | (vec_insert_exp): New macro. | |
15944 | (vec_test_data_class): New macro. | |
15945 | (scalar_extract_exp): New macro. | |
15946 | (scalar_extract_sig): New macro. | |
15947 | (scalar_insert_exp): New macro. | |
15948 | (scalar_test_data_class): New macro. | |
15949 | (scalar_test_neg): New macro. | |
15950 | (scalar_cmp_exp_gt): New macro. | |
15951 | (scalar_cmp_exp_lt): New macro. | |
15952 | (scalar_cmp_exp_eq): New macro. | |
15953 | (scalar_cmp_exp_unordered): New macro. | |
15954 | * config/rs6000/predicates.md (u7bit_cint_operand): New predicate | |
15955 | to enforce constraint that operand is a 7-bit unsigned literal. | |
15956 | * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro | |
15957 | for power9 built-ins. | |
15958 | (BU_P9V_VSX_2): Likewise. | |
15959 | (BU_P9V_64BIT_VSX_2): Likewise. | |
15960 | (VSEEDP): Add scalar extract exponent support. | |
15961 | (VSEESP): Add scalar extract signature support. | |
15962 | (VSTDCNDP): Add scalar test negative support. | |
15963 | (VSTDCNSP): Likewise. | |
15964 | (VSIEDP): Add scalar insert exponent support. | |
15965 | (VSCEDPGT): Add scalar compare exponent greater than support. | |
15966 | (VSCEDPLT): Add scalar compare exponent less than support. | |
15967 | (VSCEDPEQ): Add scalar compare exponent test-for-equality support. | |
15968 | (VSCEDPUO): Add scalar compare exponent test-for-unordered support. | |
15969 | (VSTDCDP): Add scalar test data class support. | |
15970 | (VSTDCSP): Likewise. | |
15971 | (VSEEDP): Add overload support for scalar extract exponent | |
15972 | operation. | |
15973 | (VSESDP): Add overload support for scalar extract signature | |
15974 | operation. | |
15975 | (VSTDCN): Add overload support for scalar test negative | |
15976 | operation. | |
15977 | (VSTDCNDP): Add overload support for scalar test negative | |
15978 | operation. | |
15979 | (VSTDCNSP): Add overload support for scalar test negative | |
15980 | operation. | |
15981 | (VSIEDP): Add overload support for scalar insert exponent | |
15982 | operation. | |
15983 | (VSTDC): Add overload support for scalar test data class | |
15984 | operation. | |
15985 | (VSTDCDP): Add overload support for scalar test data class | |
15986 | operation. | |
15987 | (VSTDCSP): Add overload support for scalar test data class | |
15988 | opreation. | |
15989 | (VSCEDPGT): Add overload support for scalar compare exponent | |
15990 | greater than operation. | |
15991 | (VSCEDPLT): Add overload support for scalar compare exponent | |
15992 | less than operation. | |
15993 | (VSCEDPEQ): Add overload support for scalar compare exponent | |
15994 | test-for-equality operation. | |
15995 | (VSCEDPUO): Add overload support for scalar compare exponent | |
15996 | test-for-unordered operation. | |
15997 | (VEEDP): Add vector extract exponent support. | |
15998 | (VEESP): Likewise. | |
15999 | (VESDP): Add vector extract significand support. | |
16000 | (VESSP): Likewise. | |
16001 | (VIEDP): Add vector insert exponent support. | |
16002 | (VIESP): Likewise. | |
16003 | (VTDCDP): Add vector test data class support. | |
16004 | (VTDCSP): Likewise. | |
16005 | (VES): Add overload support for vector extract significand operation. | |
16006 | (VESDP): Likewise. | |
16007 | (VESSP): Likewise | |
16008 | (VEE): Add overload support for vector extract exponent operation. | |
16009 | (VEEDP): Likewise. | |
16010 | (VEESP): Likewise. | |
16011 | (VTDC): Add overload support for vector test data class operation. | |
16012 | (VTDCDP): Likewise. | |
16013 | (VTDCSP): Likewise. | |
16014 | (VIE): Add overload support for vector insert exponent operation. | |
16015 | (VIEDP): Likewise. | |
16016 | (VIESP): Likewise. | |
16017 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
16018 | overloaded binary floating point functions. | |
16019 | (altivec_resolve_overloaded_builtin): Improve error messages to | |
16020 | distinguish between functions not supported in the current | |
16021 | compiler configuration and functions that were invoked with an | |
16022 | invalid parameter combination, and include the built-in function | |
16023 | name in both error messages. | |
16024 | * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name): | |
16025 | New prototype. | |
16026 | * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New | |
16027 | function. | |
16028 | (rs6000_expand_binop_builtin): Add check to enforce that argument | |
16029 | 2 of the test data class operations is a 7-bit unsigned literal. | |
16030 | (rs6000_invalid_builtin): Add code to issue an error message if a | |
16031 | built-in function that requires the power9_vector and -m32 | |
16032 | command-line options is compiled without these options. | |
16033 | * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value. | |
16034 | (UNSPEC_VSX_SXSIGDP): New value. | |
16035 | (UNSPEC_VSX_SXSIGPDP): New value. | |
16036 | (UNSPEC_VSX_SIEXPDP): New value. | |
16037 | (UNSPEC_VSX_SCMPEXPDP): New value. | |
16038 | (UNSPEC_VSX_STSTDC): New value. | |
16039 | (UNSPEC_VSX_VXEXP): New value. | |
16040 | (UNSPEC_VSX_VXSIG): New value. | |
16041 | (UNSPEC_VSX_VIEXP): New value. | |
16042 | (UNSPEC_VSX_VTSTDC): New value. | |
16043 | (xsxexpdp): New insn for scalar extract exponent. | |
16044 | (xsxsigdp): New insn for scalar extract significand. | |
16045 | (xsiexpdp): New insn for scalar insert exponent. | |
16046 | (xscmpexpdp_<code>): New expansion for scalar compare exponents. | |
16047 | (*xscmpexpdp): New insn for scalar compare exponents. | |
16048 | (xststdc<Fvsx): New expansion for both single- and | |
16049 | double-precision scalar test data class operations. | |
16050 | (xststdcneg<Fvsx>): New expansion for both single- and | |
16051 | double-precision scalar test for negative value operations. | |
16052 | (*xststdc<Fvsx>): New insn for scalar test data class | |
16053 | operation. | |
16054 | (xvxexp<VSs>): New insn for single- and double-precision | |
16055 | vector extract exponent operation. | |
16056 | (xvxsig<VSs>): New insn for single- and double-precision | |
16057 | vector extract significand operation. | |
16058 | (xviexp<VSs>): New insn for single- and double-precision | |
16059 | vector insert exponent operation. | |
16060 | (xvtstdc<VSs>): New insn for single- and double-precision | |
16061 | vector test data class operation. | |
16062 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document | |
16063 | built-in functions to represent the Power9 binary floating-point | |
16064 | support instructions. | |
16065 | ||
16066 | 2016-08-10 bin cheng <bin.cheng@arm.com> | |
16067 | ||
16068 | * doc/sourcebuild.texi (@item vect_cond_mixed): New item. | |
16069 | ||
16070 | 2016-08-10 Alan Lawrence <alan.lawrence@arm.com> | |
16071 | Renlin Li <renlin.li@arm.com> | |
16072 | Bin Cheng <bin.cheng@arm.com> | |
16073 | ||
16074 | * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New. | |
16075 | * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call | |
16076 | gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di. | |
16077 | (aarch64_vcond_internal<mode><mode>): Delete pattern. | |
16078 | (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto. | |
16079 | (vcond<v_cmp_result><mode>): Ditto. | |
16080 | (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask. | |
16081 | (vcondu<mode><mode>): Ditto. | |
16082 | (vcond<v_cmp_mixed><mode>): New pattern. | |
16083 | (vcondu<mode><v_cmp_mixed>): New pattern. | |
16084 | (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead | |
16085 | of aarch64_vcond_internal. | |
16086 | ||
16087 | 2016-08-10 Alan Lawrence <alan.lawrence@arm.com> | |
16088 | Renlin Li <renlin.li@arm.com> | |
16089 | Bin Cheng <bin.cheng@arm.com> | |
16090 | ||
16091 | * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern. | |
16092 | (vec_cmp<mode><v_cmp_result>): New pattern. | |
16093 | (vec_cmpu<mode><mode>): New pattern. | |
16094 | (vcond_mask_<mode><v_cmp_result>): New pattern. | |
16095 | ||
16096 | 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com> | |
16097 | ||
16098 | PR tree-optimization/71734 | |
16099 | * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument | |
16100 | REF_LOOP, invoke ref_indep_loop_p_1. | |
16101 | (outermost_indep_loop): Pass LOOP argumnet where REF was defined | |
16102 | to ref_indep_loop_p. | |
16103 | (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP, | |
16104 | combine it with ref_indep_lopp_p_2, update SAFELEN if only REF | |
16105 | is inside LOOP, do not cache dpendence value for loops with | |
16106 | non-zero SAFELEN. | |
16107 | (ref_indep_loop_p_2): Delete function. | |
16108 | (can_sm_ref_p): Pass LOOP as additional argument to | |
16109 | ref_indep_loop_p. | |
16110 | ||
16111 | 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com> | |
16112 | ||
16113 | PR target/72853 | |
16114 | * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op | |
16115 | being an offsettable address. | |
16116 | ||
16117 | 2016-08-10 Martin Liska <mliska@suse.cz> | |
16118 | ||
16119 | PR gcov-profile/58306 | |
16120 | * tree-profile.c (gimple_init_edge_profiler): Create conditionally | |
16121 | atomic variants of profile update functions. | |
16122 | ||
16123 | 2016-08-10 Martin Liska <mliska@suse.cz> | |
16124 | ||
16125 | Cherry picked (and modified) from google-4_7 branch | |
16126 | 2012-12-26 Rong Xu <xur@google.com> | |
16127 | * common.opt (fprofile-update): Add new flag. | |
16128 | * coretypes.h: Define enum profile_update. | |
16129 | * doc/invoke.texi: Document -fprofile-update. | |
16130 | * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and | |
16131 | GCOV_TYPE_ATOMIC_FETCH_ADD_FN. | |
16132 | * tree-profile.c (gimple_init_edge_profiler): Generate | |
16133 | also atomic profiler update. | |
16134 | (gimple_gen_edge_profiler): Likewise. | |
16135 | ||
16136 | 2016-08-10 David Malcolm <dmalcolm@redhat.com> | |
16137 | ||
16138 | * toplev.c (finalize): Set aux_info_file, asm_out_file, and | |
16139 | stack_usage_file to NULL after fclose calls. | |
16140 | ||
16141 | 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> | |
16142 | ||
16143 | PR target/71873 | |
16144 | * reload.c (push_reload): Compute subreg_in_class for | |
16145 | subregs of constants and plus expressions. Remove special | |
16146 | handling of SYMBOL_REFs. | |
16147 | ||
16148 | 2016-08-10 Alan Modra <amodra@gmail.com> | |
16149 | ||
16150 | PR target/71680 | |
16151 | * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return | |
16152 | SImode for TARGET_E500_DOUBLE when given SImode. | |
16153 | ||
16154 | 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com> | |
16155 | ||
16156 | * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove | |
16157 | unused variable __O. | |
16158 | ||
16159 | 2016-08-09 Martin Liska <mliska@suse.cz> | |
16160 | ||
16161 | * doc/gcov.texi: Change _gcov_dump to __gcov_dump and | |
16162 | _gcov_reset to __gcov_reset. | |
16163 | * doc/gcov-tool.texi: Fix typo. | |
16164 | ||
16165 | 2016-08-09 Martin Liska <mliska@suse.cz> | |
16166 | ||
16167 | * value-prof.c (gimple_divmod_values_to_profile): Do not | |
16168 | instrument MOD histogram if a value is not a SSA name. | |
16169 | ||
16170 | 2016-08-09 Martin Liska <mliska@suse.cz> | |
16171 | ||
16172 | * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2 | |
16173 | values. | |
16174 | ||
16175 | 2016-08-09 Renlin Li <renlin.li@arm.com> | |
16176 | ||
16177 | PR middle-end/64971 | |
16178 | * calls.c (prepare_call_address): Convert funexp to Pmode when | |
16179 | necessary. | |
16180 | * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971. | |
16181 | (sibcall_value): Likewise. | |
16182 | ||
16183 | 2016-08-09 Marek Polacek <polacek@redhat.com> | |
16184 | ||
16185 | PR c/7652 | |
16186 | * cselib.c (cselib_expand_value_rtx_1): Add return. | |
16187 | * gengtype.c (dbgprint_count_type_at): Likewise. | |
16188 | * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise. | |
16189 | * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning. | |
16190 | ||
16191 | 2016-08-09 Martin Jambor <mjambor@suse.cz> | |
16192 | ||
16193 | PR ipa/71981 | |
16194 | * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully | |
16195 | if instance is a MEM_REF. | |
16196 | ||
16197 | 2016-08-09 Uros Bizjak <ubizjak@gmail.com> | |
16198 | ||
16199 | PR target/72843 | |
16200 | * config/i386/i386.md (*movtf_internal): Use | |
16201 | lra_in_progress || reload_completed instead of !can_create_pseudo_p | |
16202 | in the insn constraint. | |
16203 | (*movxf_internal): Ditto. | |
16204 | (*movdf_internal): Ditto. | |
16205 | (*movsf_internal): Ditto. | |
16206 | ||
16207 | 2016-08-09 Bin Cheng <bin.cheng@arm.com> | |
16208 | ||
16209 | PR tree-optimization/72772 | |
16210 | * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality | |
16211 | for expanded base. | |
16212 | ||
16213 | 2016-08-09 Bin Cheng <bin.cheng@arm.com> | |
16214 | ||
16215 | PR tree-optimization/72772 | |
16216 | * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete | |
16217 | parameter STOP. | |
16218 | * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete | |
16219 | parameter STOP and update calls. Move expand_simple_operations | |
16220 | function call from here... | |
16221 | (simplify_using_initial_conditions): ...to here. Delete parameter | |
16222 | STOP. | |
16223 | (tree_simplify_using_condition): Delete parameter STOP. | |
16224 | * tree-scalar-evolution.c (simple_iv_with_niters): Update call to | |
16225 | simplify_using_initial_conditions. | |
16226 | ||
16227 | 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com> | |
16228 | ||
16229 | PR c/65345 | |
16230 | * config/mips/mips.c (mips_atomic_assign_expand_fenv): | |
16231 | Use create_tmp_var_raw instead of create_tmp_var. | |
16232 | ||
16233 | 2016-08-09 Richard Biener <rguenther@suse.de> | |
16234 | ||
16235 | * tree-ssa-threadbackward.c (profitable_jump_thread_path): | |
16236 | Treat same SSA names related. | |
16237 | ||
16238 | 2016-08-09 Jakub Jelinek <jakub@redhat.com> | |
16239 | ||
16240 | PR tree-optimization/72824 | |
16241 | * tree-loop-distribution.c (const_with_all_bytes_same): Verify | |
16242 | real_zerop is not negative. | |
16243 | ||
16244 | 2016-08-09 Richard Biener <rguenther@suse.de> | |
16245 | ||
16246 | PR tree-optimization/71802 | |
16247 | * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch | |
16248 | all merge opportunities with the predecessor. | |
16249 | ||
16250 | 2016-08-09 Richard Biener <rguenther@suse.de> | |
16251 | ||
16252 | PR ipa/68273 | |
16253 | * ipa-prop.c (ipa_modify_formal_parameters): Build | |
16254 | parameter types with natural alignment also for the | |
16255 | over-aligned case. | |
16256 | ||
16257 | 2016-08-08 Andi Kleen <ak@linux.intel.com> | |
16258 | ||
16259 | * tree-vrp.c (get_single_symbol): Always initialize inv and neg. | |
16260 | ||
16261 | 2016-08-08 David Malcolm <dmalcolm@redhat.com> | |
16262 | ||
16263 | PR c/64955 | |
16264 | * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default | |
16265 | do-nothing langhook. | |
16266 | (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS. | |
16267 | * langhooks.h (struct lang_hooks): Add run_lang_selftests. | |
16268 | * selftest-run-tests.c: Include "tree.h" and "langhooks.h". | |
16269 | (selftest::run_tests): Call lang_hooks.run_lang_selftests. | |
16270 | ||
16271 | 2016-08-08 David Malcolm <dmalcolm@redhat.com> | |
16272 | ||
16273 | PR bootstrap/72844 | |
16274 | * input.c: Ensure that HAVE_ICONV is defined. | |
16275 | ||
16276 | 2016-08-08 Jakub Jelinek <jakub@redhat.com> | |
16277 | ||
16278 | PR middle-end/72781 | |
16279 | * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the | |
16280 | private vars for lastprivate and for linear iterator. | |
16281 | ||
16282 | PR middle-end/68762 | |
16283 | * omp-simd-clone.c: Include varasm.h. | |
16284 | (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL, | |
16285 | DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for | |
16286 | DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and | |
16287 | update function name. | |
16288 | ||
16289 | 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com> | |
16290 | ||
16291 | * config/avr/driver-avr.c (specfiles_doc_url): Remove. | |
16292 | (avr_diagnose_devicespecs_error): Remove. | |
16293 | (avr_devicespecs_file): Remove composing absolute path for specfile | |
16294 | and its verbose info. Remove conditions to check specs-file, | |
16295 | ||
16296 | 2016-08-08 Jakub Jelinek <jakub@redhat.com> | |
16297 | ||
16298 | PR rtl-optimization/72821 | |
16299 | * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers, | |
16300 | just return false for them. | |
16301 | ||
16302 | 2016-08-08 Alan Modra <amodra@gmail.com> | |
16303 | ||
16304 | PR target/72771 | |
16305 | * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high)) | |
16306 | toc refs created during reload. Update function comment. | |
16307 | ||
16308 | 2016-08-08 Alan Modra <amodra@gmail.com> | |
16309 | ||
16310 | PR target/72802 | |
16311 | * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort | |
16312 | alternatives. Put loads first, then stores, and reg/reg moves | |
16313 | within same class later. Delete attr length. | |
16314 | ||
16315 | 2016-08-08 Alan Modra <amodra@gmail.com> | |
16316 | ||
16317 | PR target/72802 | |
16318 | * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test. | |
16319 | (mem_operand_ds_form): New predicate. | |
16320 | * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare. | |
16321 | * config/rs6000/constraints.md (wY): Use mem_operand_df_form. | |
16322 | * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete. | |
16323 | * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF. | |
16324 | (extendsfdf2_fpr): Replace o constraint with wY. | |
16325 | ||
16326 | 2016-08-07 Jan Hubicka <hubicka@ucw.cz> | |
16327 | ||
16328 | * tree-ssa-threadbackward.c: Include tree-inline.h | |
16329 | (profitable_jump_thread_path): Use estimate_num_insns to estimate | |
16330 | size of copied block; for cold paths reduce duplication. | |
16331 | (find_jump_threads_backwards): Remove redundant tests. | |
16332 | (pass_thread_jumps::gate): Enable for -Os. | |
16333 | ||
16334 | 2016-08-07 Jakub Jelinek <jakub@redhat.com> | |
16335 | ||
16336 | PR c/72816 | |
16337 | * stor-layout.c (layout_decl): Fix up formatting. | |
16338 | (relayout_decl): Allow DECL to be FIELD_DECL. | |
16339 | ||
16340 | 2016-08-07 Alan Modra <amodra@gmail.com> | |
16341 | ||
16342 | * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg. | |
16343 | ||
16344 | 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org> | |
16345 | ||
16346 | * data-streamer-in.c (streamer_read_wide_int): New. | |
16347 | (streamer_read_widest_int): Renamed function. | |
16348 | * data-streamer-out.c (streamer_write_wide_int): New | |
16349 | (streamer_write_widest_int): Renamed function. | |
16350 | * lto-streamer-in.c (streamer_read_wi): Renamed and moved to | |
16351 | data-stream-in.c. | |
16352 | (input_cfg): Call renamed function. | |
16353 | * lto-streamer-out.c (streamer_write_wi): Renamed and moved to | |
16354 | data-stream-out.c. | |
16355 | (output_cfg): Call renamed function. | |
16356 | * data-streamer.h: Add declarations. | |
16357 | ||
16358 | 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
16359 | ||
16360 | * tree-ssa-ccp.c (extend_mask): New param sgn. | |
16361 | Remove ORing with wi::mask. | |
16362 | (get_default_value): Adjust call to extend_mask to pass sign. | |
16363 | (evaluate_stmt): Likewise. | |
16364 | ||
16365 | 2016-08-06 Jakub Jelinek <jakub@redhat.com> | |
16366 | ||
16367 | * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of | |
16368 | INT64_MAX. | |
16369 | ||
16370 | 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
16371 | ||
16372 | * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable | |
16373 | transform if operand's type is pointer to function or method. | |
16374 | ||
16375 | 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org> | |
16376 | ||
16377 | PR tree-optimization/18046 | |
16378 | * tree-ssa-threadedge.c: Include cfganal.h. | |
16379 | (simplify_control_statement_condition): If simplifying a | |
16380 | GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH | |
16381 | with the dominating ASSERT_EXPR before handing it off to VRP. | |
16382 | Mention that a CASE_LABEL_EXPR may be returned. | |
16383 | (thread_around_empty_blocks): Adjust to handle | |
16384 | simplify_control_statement_condition() returning a | |
16385 | CASE_LABEL_EXPR. | |
16386 | (thread_through_normal_block): Likewise. | |
16387 | * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify | |
16388 | a switch statement by trying to determine which case label | |
16389 | will be taken. | |
16390 | ||
16391 | 2016-08-05 Vladimir Makarov <vmakarov@redhat.com> | |
16392 | ||
16393 | PR rtl-optimization/69847 | |
16394 | * lra-constraints.c (process_invariant_for_inheritance): Save | |
16395 | pattern instead of src. | |
16396 | (remove_inheritance_pseudos): Use the pattern. Add assert. | |
16397 | ||
16398 | 2016-08-05 David Malcolm <dmalcolm@redhat.com> | |
16399 | ||
16400 | * input.c (string_concat::string_concat): New constructor. | |
16401 | (string_concat_db::string_concat_db): New constructor. | |
16402 | (string_concat_db::record_string_concatenation): New method. | |
16403 | (string_concat_db::get_string_concatenation): New method. | |
16404 | (string_concat_db::get_key_loc): New method. | |
16405 | (class auto_cpp_string_vec): New class. | |
16406 | (get_substring_ranges_for_loc): New function. | |
16407 | (get_source_range_for_substring): New function. | |
16408 | (get_num_source_ranges_for_substring): New function. | |
16409 | (class selftest::lexer_test_options): New class. | |
16410 | (struct selftest::lexer_test): New struct. | |
16411 | (class selftest::ebcdic_execution_charset): New class. | |
16412 | (selftest::ebcdic_execution_charset::s_singleton): New variable. | |
16413 | (selftest::lexer_test::lexer_test): New constructor. | |
16414 | (selftest::lexer_test::~lexer_test): New destructor. | |
16415 | (selftest::lexer_test::get_token): New method. | |
16416 | (selftest::assert_char_at_range): New function. | |
16417 | (ASSERT_CHAR_AT_RANGE): New macro. | |
16418 | (selftest::assert_num_substring_ranges): New function. | |
16419 | (ASSERT_NUM_SUBSTRING_RANGES): New macro. | |
16420 | (selftest::assert_has_no_substring_ranges): New function. | |
16421 | (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro. | |
16422 | (selftest::test_lexer_string_locations_simple): New function. | |
16423 | (selftest::test_lexer_string_locations_ebcdic): New function. | |
16424 | (selftest::test_lexer_string_locations_hex): New function. | |
16425 | (selftest::test_lexer_string_locations_oct): New function. | |
16426 | (selftest::test_lexer_string_locations_letter_escape_1): New function. | |
16427 | (selftest::test_lexer_string_locations_letter_escape_2): New function. | |
16428 | (selftest::test_lexer_string_locations_ucn4): New function. | |
16429 | (selftest::test_lexer_string_locations_ucn8): New function. | |
16430 | (selftest::uint32_from_big_endian): New function. | |
16431 | (selftest::test_lexer_string_locations_wide_string): New function. | |
16432 | (selftest::uint16_from_big_endian): New function. | |
16433 | (selftest::test_lexer_string_locations_string16): New function. | |
16434 | (selftest::test_lexer_string_locations_string32): New function. | |
16435 | (selftest::test_lexer_string_locations_u8): New function. | |
16436 | (selftest::test_lexer_string_locations_utf8_source): New function. | |
16437 | (selftest::test_lexer_string_locations_concatenation_1): New | |
16438 | function. | |
16439 | (selftest::test_lexer_string_locations_concatenation_2): New | |
16440 | function. | |
16441 | (selftest::test_lexer_string_locations_concatenation_3): New | |
16442 | function. | |
16443 | (selftest::test_lexer_string_locations_macro): New function. | |
16444 | (selftest::test_lexer_string_locations_stringified_macro_argument): | |
16445 | New function. | |
16446 | (selftest::test_lexer_string_locations_non_string): New function. | |
16447 | (selftest::test_lexer_string_locations_long_line): New function. | |
16448 | (selftest::test_lexer_char_constants): New function. | |
16449 | (selftest::input_c_tests): Call the new test functions once per | |
16450 | case within the line_table test matrix. | |
16451 | * input.h (struct string_concat): New struct. | |
16452 | (struct location_hash): New struct. | |
16453 | (class string_concat_db): New class. | |
16454 | * substring-locations.h: New header. | |
16455 | ||
16456 | 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org> | |
16457 | ||
16458 | PR tree-optimization/72810 | |
16459 | * tree-vrp.c (simplify_switch_using_ranges): Avoid changing | |
16460 | the type of the case labels when truncating. | |
16461 | ||
16462 | 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com> | |
16463 | ||
16464 | PR Target/72819 | |
16465 | * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare. | |
16466 | (aarch64_fp16_ptr_type_node): Likewise. | |
16467 | * config/aarch64/aarch64-simd-builtins.c | |
16468 | (aarch64_fp16_ptr_type_node): Define. | |
16469 | (aarch64_init_fp16_types): New, refactored out of... | |
16470 | (aarch64_init_builtins): ...here, update to call | |
16471 | aarch64_init_fp16_types. | |
16472 | * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle | |
16473 | HFmode. | |
16474 | (aapcs_vfp_sub_candidate): Likewise. | |
16475 | ||
16476 | 2016-08-05 Martin Liska <mliska@suse.cz> | |
16477 | Joshua Cranmer <Pidgeot18@gmail.com> | |
16478 | ||
16479 | * gcov.c (line_t::has_block): New function. | |
16480 | (enum loop_type): New enum. | |
16481 | (handle_cycle): New function. | |
16482 | (unblock): Likewise. | |
16483 | (circuit): Likewise. | |
16484 | (get_cycles_count): Likewise. | |
16485 | (accumulate_line_counts): Use new loop detection algorithm. | |
16486 | ||
16487 | 2016-08-05 Martin Liska <mliska@suse.cz> | |
16488 | ||
16489 | * gcov.c (output_intermediate_file): Rename | |
16490 | function_info::line_next to next_file_fn. | |
16491 | (process_file): Likewise. | |
16492 | (read_graph_file): Likewise. | |
16493 | (accumulate_line_counts): Likewise. | |
16494 | (output_lines): Likewise. | |
16495 | ||
16496 | 2016-08-05 Richard Biener <rguenther@suse.de> | |
16497 | ||
16498 | * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary | |
16499 | restriction on threading to a loop header. | |
16500 | ||
16501 | 2016-08-05 Richard Biener <rguenther@suse.de> | |
16502 | ||
16503 | * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p. | |
16504 | * cfghooks.c (force_nonfallthru): If we ended up splitting a latch | |
16505 | adjust loop info accordingly. | |
16506 | ||
16507 | 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org> | |
16508 | ||
16509 | * tree-vrp.c (extract_range_basic): Check cfun->after_inlining | |
16510 | before folding call to __builtin_constant_p with parameters to false. | |
16511 | ||
16512 | 2016-08-05 Alan Modra <amodra@gmail.com> | |
16513 | ||
16514 | * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete | |
16515 | code accidentally committed 2016-05-02 providing class when given | |
16516 | NO_REGS. | |
16517 | ||
16518 | 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org> | |
16519 | ||
16520 | * tree-vrp.c (simplify_switch_using_ranges): Try to truncate | |
16521 | the case label ranges that partially overlap with OP's value | |
16522 | range. | |
16523 | ||
16524 | 2016-08-04 Uros Bizjak <ubizjak@gmail.com> | |
16525 | ||
16526 | PR target/72805 | |
16527 | * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]: | |
16528 | Cast builtin function result to __mmask16 instead of __mmask8. | |
16529 | (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto. | |
16530 | (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto. | |
16531 | (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto. | |
16532 | ||
16533 | 2016-08-04 David Malcolm <dmalcolm@redhat.com> | |
16534 | ||
16535 | * selftest.h (ASSERT_TRUE): Reimplement in terms of... | |
16536 | (ASSERT_TRUE_AT): New macro. | |
16537 | (ASSERT_FALSE): Reimplement in terms of... | |
16538 | (ASSERT_FALSE_AT): New macro. | |
16539 | (ASSERT_STREQ_AT): Fix typo in comment. | |
16540 | ||
16541 | 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org> | |
16542 | ||
16543 | * gimple.c (preprocess_case_label_vec_for_gimple): When the case | |
16544 | labels are exhaustive, designate the label with the widest | |
16545 | range to be the default label. | |
16546 | ||
16547 | 2016-08-04 Andrew Pinski <apinski@cavium.com> | |
16548 | ||
16549 | * config/aarch64/aarch64.c (thunderx_vector_cost): New variable. | |
16550 | (thunderx_tunings): Use thunderx_vector_cost instead of | |
16551 | generic_vector_cost. | |
16552 | ||
16553 | 2016-08-04 Martin Liska <mliska@suse.cz> | |
16554 | ||
16555 | * gcov.c (main): Fix GNU coding style. | |
16556 | (output_intermediate_file): Likewise. | |
16557 | (process_file): Likewise. | |
16558 | (generate_results): Likewise. | |
16559 | (release_structures): Likewise. | |
16560 | (create_file_names): Likewise. | |
16561 | (find_source): Likewise. | |
16562 | (read_graph_file): Likewise. | |
16563 | (find_exception_blocks): Likewise. | |
16564 | (canonicalize_name): Likewise. | |
16565 | (make_gcov_file_name): Likewise. | |
16566 | (mangle_name): Likewise. | |
16567 | (accumulate_line_counts): Likewise. | |
16568 | (output_branch_count): Likewise. | |
16569 | (read_line): Likewise. | |
16570 | ||
16571 | 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
16572 | ||
16573 | PR rtl-optimization/71779 | |
16574 | * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER, | |
16575 | if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED | |
16576 | or if it was truncated. | |
16577 | ||
16578 | PR rtl-optimization/70903 | |
16579 | * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST. | |
16580 | ||
16581 | 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org> | |
16582 | ||
16583 | * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before | |
16584 | accessing SSA_NAME_PTR_INFO. | |
16585 | ||
16586 | 2016-08-04 Georg-Johann Lay <avr@gjlay.de> | |
16587 | ||
16588 | PR 70677 | |
16589 | * common/config/avr/avr-common.c (avr_option_optimization_table) | |
16590 | [OPT_LEVELS_ALL]: Turn off -fcaller-saves. | |
16591 | ||
16592 | 2016-08-04 Georg-Johann Lay <avr@gjlay.de> | |
16593 | ||
16594 | PR 55181 | |
16595 | * config/avr/avr.md: New pattern to work around do_store_flag | |
16596 | generating shift instructions for bit extractions. | |
16597 | ||
16598 | 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org> | |
16599 | ||
16600 | * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with | |
16601 | BITMAP_ALLOC. | |
16602 | (add_equivalence): Likewise. | |
16603 | (get_value_range): Allocate value range with vrp_value_range_pool. | |
16604 | (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation. | |
16605 | (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool. | |
16606 | ||
16607 | 2016-08-03 Peter Bergner <bergner@vnet.ibm.com> | |
16608 | ||
16609 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA | |
16610 | the default for the rs6000 port. | |
16611 | ||
16612 | 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
16613 | ||
16614 | PR middle-end/71876 | |
16615 | * calls.c (special_function_p): Remove special handling of | |
16616 | "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the | |
16617 | prefix "__x". Recognize "savectx", "vfork" and "getcontext" only | |
16618 | without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN. | |
16619 | ||
16620 | 2016-08-03 Vladimir Makarov <vmakarov@redhat.com> | |
16621 | ||
16622 | PR middle-end/72778 | |
16623 | * lra-spills.c (regno_in_use_p): Check bb and regno modification. | |
16624 | Don't stop on regular insns. | |
16625 | ||
16626 | 2016-08-03 Nathan Sidwell <nathan@codesourcery.com> | |
16627 | ||
16628 | * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame | |
16629 | size to DImode boundary. | |
16630 | (nvptx_propagate): Likewise. | |
16631 | ||
16632 | 2016-08-03 Alan Modra <amodra@gmail.com> | |
16633 | ||
16634 | * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar | |
16635 | float access depend on TARGET_EFFICIENT_UNALIGNED_VSX. | |
16636 | * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed | |
16637 | from -mefficient-unaligned-vector. Note that this affects fp too. | |
16638 | ||
16639 | 2016-08-03 Alan Modra <amodra@gmail.com> | |
16640 | ||
16641 | * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem | |
16642 | cost more. | |
16643 | ||
16644 | 2016-08-03 Alan Modra <amodra@gmail.com> | |
16645 | ||
16646 | * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand | |
16647 | to a reg. Localize vars. | |
16648 | ||
16649 | 2016-08-03 Alan Modra <amodra@gmail.com> | |
16650 | ||
16651 | * config/rs6000/rs6000.opt: Remove negatives from help strings | |
16652 | and comments. | |
16653 | ||
16654 | 2016-08-03 Alan Modra <amodra@gmail.com> | |
16655 | ||
16656 | * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move): | |
16657 | Delete duplicated code. | |
16658 | ||
16659 | 2016-08-02 Vladimir Makarov <vmakarov@redhat.com> | |
16660 | ||
16661 | PR middle-end/72778 | |
16662 | * lra-spills.c (regno_in_use_p): New. | |
16663 | (lra_final_code_change): Use it. | |
16664 | ||
16665 | 2016-08-02 Vladimir Makarov <vmakarov@redhat.com> | |
16666 | ||
16667 | PR rtl-optimization/69847 | |
16668 | * lra-int.h (struct lra-reg): Use restore_rtx instead of | |
16669 | restore_regno. | |
16670 | (lra_rtx_hash): New. | |
16671 | * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead | |
16672 | of restore_regno. | |
16673 | (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash. | |
16674 | * lra-remat.c (rtx_hash): Rename and Move to lra.c. | |
16675 | * lra-spills.c (lra_final_code_change): Don't delete insn when the | |
16676 | next insn is USE with the same reg as the current insn source. | |
16677 | * lra-constraints.c (curr_insn_transform): Use restore_rtx instead | |
16678 | of restore_regno. | |
16679 | (lra_constraints_init): Call initiate_invariants. | |
16680 | (lra_constraints_finish): Call finish_invariants. | |
16681 | (struct invariant, invariant_t, invariant_ptr_t): New. | |
16682 | (const_invariant_ptr_t, invariants, invariants_pool): New. | |
16683 | (invariant_table, invariant_hash, invariant_eq_p): New. | |
16684 | (insert_invariant, initiate_invariants, finish_invariants): New. | |
16685 | (clear_invariants, invalid_invariant_regs): New. | |
16686 | (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx | |
16687 | instead of restore_regno. | |
16688 | (invariant_p, process_invariant_for_inheritance): New. | |
16689 | (inherit_in_ebb): Implement invariant inheritance. | |
16690 | (lra_inheritance): Initialize and finalize invalid_invariant_regs. | |
16691 | (remove_inheritance_pseudos): Implement undoing invariant | |
16692 | inheritance. | |
16693 | (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx | |
16694 | instead of restore_regno. | |
16695 | * lra-assigns.c (regno_live_length): New. | |
16696 | (reload_pseudo_compare_func): Use regno_live_length. | |
16697 | (assign_by_spills): Use restore_rtx instead of restore_regno. | |
16698 | (lra_assign): Ditto. Initiate regno_live_length. | |
16699 | ||
16700 | 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com> | |
16701 | ||
16702 | * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from | |
16703 | __builtin_aarch64_fmindf. | |
16704 | ||
16705 | 2016-08-02 Bin Cheng <bin.cheng@arm.com> | |
16706 | ||
16707 | PR tree-optimization/34114 | |
16708 | * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow | |
16709 | information for more control IVs. | |
16710 | ||
16711 | 2016-08-02 Bin Cheng <bin.cheng@arm.com> | |
16712 | ||
16713 | PR tree-optimization/34114 | |
16714 | * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR, | |
16715 | PLUS_EXPR case. Handle SSA_NAME case. | |
16716 | ||
16717 | 2016-08-02 Tamar Christina <tamar.christina@arm.com> | |
16718 | ||
16719 | * config/aarch64/aarch64-simd-builtins.def | |
16720 | (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF. | |
16721 | (__builtin_aarch64_fmaxdf): Likewise. | |
16722 | (__builtin_aarch64_smin_nandf): Likewise. | |
16723 | (__builtin_aarch64_smax_nandf): Likewise. | |
16724 | * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove. | |
16725 | * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to... | |
16726 | (<fmaxmin><mode>3): ...this. | |
16727 | * config/aarch64/arm_neon.h (vmaxnm_f64): New. | |
16728 | (vminnm_f64): Likewise. | |
16729 | (vmin_f64): Likewise. | |
16730 | (vmax_f64): Likewise. | |
16731 | * config/aarch64/iterators.md (FMAXMIN): Merge with... | |
16732 | (FMAXMIN_UNS): ...this. | |
16733 | (fmaxmin): Merged with | |
16734 | (fmaxmin_op): ...this... | |
16735 | (maxmin_uns_op): ...in to this. | |
16736 | ||
16737 | 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com> | |
16738 | ||
16739 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
16740 | Add support for vec_extract on vector float, vector int, vector | |
16741 | short, and vector char vector types. | |
16742 | * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add | |
16743 | vector float, vector int, vector short, and vector char | |
16744 | optimizations on 64-bit ISA 2.07 systems for both constant and | |
16745 | variable element numbers. | |
16746 | (rs6000_split_vec_extract_var): Likewise. | |
16747 | * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be | |
16748 | Altivec registers on ISA 2.07 and above. | |
16749 | (vsx_extract_v4sf): Delete alternative that hard coded element 0, | |
16750 | which never was matched due to the split occuring before register | |
16751 | allocation (and the code would not have worked on little endian | |
16752 | systems if it did match). Allow extracts to go to the Altivec | |
16753 | registers if ISA 2.07 (power8). Change from using "" around the | |
16754 | C++ code to using {}'s. | |
16755 | (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float | |
16756 | vec_extracts when the vector is in memory. | |
16757 | (vsx_extract_v4sf_var): New insn to optimize vector float | |
16758 | vec_extracts when the element number is variable on 64-bit ISA | |
16759 | 2.07 systems. | |
16760 | (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations | |
16761 | for 64-bit ISA 2.07 as well as ISA 3.0. | |
16762 | (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise. | |
16763 | (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise. | |
16764 | (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to | |
16765 | optimize vector int, vector short, and vector char vec_extracts | |
16766 | when the vector is in memory. | |
16767 | (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to | |
16768 | optimize vector int, vector short, and vector char vec_extracts | |
16769 | when the element number is variable. | |
16770 | ||
16771 | 2016-08-01 Georg-Johann Lay <avr@gjlay.de> | |
16772 | ||
16773 | PR target/71948 | |
16774 | * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that | |
16775 | does not overlap with other symbol flags. | |
16776 | ||
16777 | 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com> | |
16778 | ||
16779 | * config/aarch64/aarch64.h (aarch64_frame): | |
16780 | Remove padding0 and hardfp_offset. Add locals_offset, | |
16781 | initial_adjust, callee_adjust, callee_offset and final_adjust. | |
16782 | * config/aarch64/aarch64.c (aarch64_layout_frame): | |
16783 | Remove unused padding0 and hardfp_offset initializations. | |
16784 | Choose frame layout and set frame variables accordingly. | |
16785 | Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER. | |
16786 | (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER. | |
16787 | (aarch64_pop_regs): Likewise. | |
16788 | (aarch64_expand_prologue): Remove all decision code, just emit | |
16789 | prolog according to frame variables. | |
16790 | (aarch64_expand_epilogue): Remove all decision code, just emit | |
16791 | epilog according to frame variables. | |
16792 | (aarch64_initial_elimination_offset): Use offset to local/arg area. | |
16793 | ||
16794 | 2015-08-01 H.J. Lu <hongjiu.lu@intel.com> | |
16795 | ||
16796 | PR target/72748 | |
16797 | * config/i386/i386.c (timode_scalar_chain::convert_insn): Call | |
16798 | fix_debug_reg_uses after changing source register mode to | |
16799 | V1TImode if source register is undefined. | |
16800 | ||
16801 | 2015-08-01 Alan Hayward <alan.hayward@arm.com> | |
16802 | ||
16803 | PR tree-optimization/71818 | |
16804 | * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs | |
16805 | with non invariant evolutions | |
16806 | ||
16807 | 2016-08-01 Georg-Johann Lay <avr@gjlay.de> | |
16808 | ||
16809 | PR target/72767 | |
16810 | * config/avr/avr.md (length) [branch]: Correct insn length | |
16811 | attribute for forward branches. | |
16812 | ||
16813 | 2016-08-01 Georg-Johann Lay <avr@gjlay.de> | |
16814 | ||
16815 | * doc/extend.texi (AVR Built-in Functions): Document | |
16816 | __builtin_avr_nops. | |
16817 | * config/avr/builtins.def (NOPS): New. | |
16818 | * config/avr/avr.c (avr_expand_nops): New static function. | |
16819 | (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS. | |
16820 | ||
16821 | 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
16822 | ||
16823 | * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when | |
16824 | performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP | |
16825 | addresses. | |
16826 | ||
16827 | 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com> | |
16828 | ||
16829 | * config/aarch64/aarch64.c (vulcan_tunings): Update | |
16830 | vulcan L1 cache_line_size. | |
16831 | ||
16832 | 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com> | |
16833 | ||
16834 | * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New | |
16835 | function that takes a vector memory address, a hard register, an | |
16836 | element number and a temporary base register, and recreates an | |
16837 | address that points to the appropriate element within the vector. | |
16838 | * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise. | |
16839 | (rs6000_split_vec_extract_var): Add support for the target of a | |
16840 | vec_extract with variable element number being a scalar memory | |
16841 | location. | |
16842 | (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not | |
16843 | swappable. | |
16844 | * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace | |
16845 | vsx_extract_<mode>_load insn with a new insn that optimizes | |
16846 | storing either element to a memory location, using scratch | |
16847 | registers to pick apart the vector and reconstruct the address. | |
16848 | (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise. | |
16849 | (vsx_extract_<mode>_store): Rework alternatives to more correctly | |
16850 | support Altivec registers. Add support for ISA 3.0 Altivec d-form | |
16851 | store instruction. | |
16852 | (vsx_extract_<mode>_var): Add support for extracting a variable | |
16853 | element number from memory. | |
16854 | ||
16855 | 2016-07-29 Georg-Johann Lay <avr@gjlay.de> | |
16856 | ||
16857 | * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0 | |
16858 | when testing for compares against constants of the form 0xabab. | |
16859 | ||
16860 | 2016-07-29 Bin Cheng <bin.cheng@arm.com> | |
16861 | ||
16862 | PR tree-optimization/57558 | |
16863 | * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New | |
16864 | function. | |
16865 | (vect_loop_versioning): Support versioning with niter assumptions. | |
16866 | * tree-vect-loop.c (tree-ssa-loop.h): Include header file. | |
16867 | (vect_get_loop_niters): New parameter. Reimplement to support | |
16868 | assumptions in loop niter info. | |
16869 | (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto. | |
16870 | (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS. | |
16871 | (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING. | |
16872 | Support loop versioning for niters. | |
16873 | * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file. | |
16874 | (vect_free_loop_info_assumptions): New function. | |
16875 | (vectorize_loops): Free loop niter info for loops with flag | |
16876 | LOOP_F_ASSUMPTIONS set if vectorization failed. | |
16877 | * tree-vectorizer.h (struct _loop_vec_info): New field | |
16878 | num_iters_assumptions. | |
16879 | (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro. | |
16880 | (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro. | |
16881 | (LOOP_REQUIRES_VERSIONING): New macro. | |
16882 | (vect_free_loop_info_assumptions): New decl. | |
16883 | ||
16884 | 2016-07-29 Bin Cheng <bin.cheng@arm.com> | |
16885 | ||
16886 | * cfgloop.h (struct loop): New field constraints. | |
16887 | (LOOP_C_INFINITE, LOOP_C_FINITE): New macros. | |
16888 | (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New | |
16889 | functions. | |
16890 | * cfgloop.c (alloc_loop): Initialize new field. | |
16891 | * cfgloopmanip.c (copy_loop_info): Copy constraints. | |
16892 | * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): | |
16893 | Adjust niter analysis wrto loop constraints. | |
16894 | * doc/loop.texi (@node Number of iterations): Add description for loop | |
16895 | constraints. | |
16896 | ||
16897 | 2016-07-29 Marek Polacek <polacek@redhat.com> | |
16898 | ||
16899 | PR c/7652 | |
16900 | * config/i386/i386.c (ix86_expand_args_builtin): Add break. | |
16901 | (ix86_expand_round_builtin): Likewise. | |
16902 | ||
16903 | 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org> | |
16904 | Georg-Johann Lay <avr@gjlay.de> | |
16905 | ||
16906 | PR rtl-optimization/71976 | |
16907 | * combine.c (get_last_value): Return 0 if the argument for which | |
16908 | the function is called has a wider mode than the recorded value. | |
16909 | ||
16910 | 2016-07-29 Marek Polacek <polacek@redhat.com> | |
16911 | ||
16912 | PR c/7652 | |
16913 | * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break. | |
16914 | (altivec_expand_st_builtin): Likewise. | |
16915 | ||
16916 | 2016-07-29 Georg-Johann Lay <avr@gjlay.de> | |
16917 | ||
16918 | * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute | |
16919 | introduced in r238381. | |
16920 | ||
16921 | 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org> | |
16922 | ||
16923 | PR middle-end/68217 | |
16924 | * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed | |
16925 | & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF]. | |
16926 | ||
16927 | 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com> | |
16928 | ||
16929 | * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var): | |
16930 | New declaration. | |
16931 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
16932 | Add support for vec_extract of vector double or vector long having | |
16933 | a variable element number on 64-bit ISA 2.07 systems or newer. | |
16934 | * config/rs6000/rs6000.c (rs6000_expand_vector_extract): | |
16935 | Likewise. | |
16936 | (rs6000_split_vec_extract_var): New function to split a | |
16937 | vec_extract built-in function with variable element number. | |
16938 | (rtx_is_swappable_p): Variable vec_extracts and shifts are not | |
16939 | swappable. | |
16940 | * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec. | |
16941 | (UNSPEC_VSX_EXTRACT): Likewise. | |
16942 | (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow | |
16943 | direct move instructions to be generated on 64-bit ISA 2.07 | |
16944 | systems and newer, and to take advantage of the ISA 3.0 MFVSRLD | |
16945 | instruction. | |
16946 | (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode | |
16947 | arguments for vec_extract variable element. | |
16948 | (vsx_extract_<mode>_var, VSX_D iterator): New insn to support | |
16949 | vec_extract with variable element on V2DFmode and V2DImode | |
16950 | vectors. | |
16951 | * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove | |
16952 | -mupper-regs-df requirement, since it isn't needed. | |
16953 | (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can | |
16954 | do direct moves on 64-bit systems, which allows optimization of | |
16955 | vec_extract on 64-bit ISA 2.07 systems and newer. | |
16956 | ||
16957 | 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com> | |
16958 | 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com> | |
16959 | ||
16960 | * config/aarch64/aarch64.md | |
16961 | (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output | |
16962 | statement and type. | |
16963 | (<optab>qihi2_aarch64): Likewise, and split into two. | |
16964 | (extendqihi2_aarch64): New. | |
16965 | (zero_extendqihi2_aarch64): New. | |
16966 | * config/aarch64/iterators.md (ldrxt): Remove. | |
16967 | * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of | |
16968 | uxtb/uxth. | |
16969 | ||
16970 | 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com> | |
16971 | ||
16972 | * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend. | |
16973 | ||
16974 | 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com> | |
16975 | ||
16976 | * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename. | |
16977 | (aarch64_push_reg): New function to push 1 or 2 registers. | |
16978 | (aarch64_pop_reg): New function to pop 1 or 2 registers. | |
16979 | (aarch64_expand_prologue): Use aarch64_push_regs. | |
16980 | (aarch64_expand_epilogue): Use aarch64_pop_regs. | |
16981 | ||
16982 | 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com> | |
16983 | ||
16984 | PR tree-optimization/71734 | |
16985 | * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen | |
16986 | attribute instead of REF_LOOP and use it. | |
16987 | (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and | |
16988 | set it for Loops having non-zero safelen attribute. | |
16989 | (ref_indep_loop_p): Pass zero as initial value for safelen. | |
16990 | ||
16991 | 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com> | |
16992 | ||
16993 | PR middle-end/72657 | |
16994 | PR target/72683 | |
16995 | * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation | |
16996 | call using chkp_gimple_call_builtin_p. | |
16997 | (chkp_copy_bounds_for_assign): Likewise. | |
16998 | ||
16999 | 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
17000 | ||
17001 | * config/alpha/alpha.c (alpha_adjust_cost): Adjust. | |
17002 | * config/arm/arm-protos.h (struct tune_params): Likewise. | |
17003 | * config/arm/arm.c (xscale_sched_adjust_cost): Likewise. | |
17004 | (cortex_a9_sched_adjust_cost): Likewise. | |
17005 | (fa726te_sched_adjust_cost): Likewise. | |
17006 | (arm_adjust_cost): Likewise. | |
17007 | * config/bfin/bfin.c (bfin_adjust_cost): Likewise. | |
17008 | * config/c6x/c6x.c (c6x_adjust_cost): Likewise. | |
17009 | * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise. | |
17010 | * config/i386/i386.c (ix86_adjust_cost): Likewise. | |
17011 | * config/ia64/ia64.c: Likewise. | |
17012 | * config/m68k/m68k.c: Likewise. | |
17013 | * config/mep/mep.c (mep_adjust_cost): Likewise. | |
17014 | * config/microblaze/microblaze.c (microblaze_adjust_cost): | |
17015 | * Likewise. | |
17016 | * config/mips/mips.c (mips_adjust_cost): Likewise. | |
17017 | * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): | |
17018 | * Likewise. | |
17019 | * config/pa/pa.c (pa_adjust_cost): Likewise. | |
17020 | * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise. | |
17021 | (rs6000_debug_adjust_cost): Likewise. | |
17022 | * config/sh/sh.c (sh_adjust_cost): Likewise. | |
17023 | * config/sparc/sparc.c (supersparc_adjust_cost): Likewise. | |
17024 | (hypersparc_adjust_cost): Likewise. | |
17025 | (sparc_adjust_cost): Likewise. | |
17026 | * config/spu/spu.c (spu_sched_adjust_cost): Likewise. | |
17027 | * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise. | |
17028 | * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): | |
17029 | * Likewise. | |
17030 | * config/visium/visium.c (visium_adjust_cost): Likewise. | |
17031 | * doc/tm.texi: Regenerate. | |
17032 | * haifa-sched.c (dep_cost_1): Adjust. | |
17033 | * target.def: Merge adjust_cost and adjust_cost_2. | |
17034 | ||
17035 | 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
17036 | ||
17037 | * haifa-sched.c (add_to_speculative_block): Make twins a vector. | |
17038 | ||
17039 | 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
17040 | ||
17041 | * store-motion.c (struct st_expr): Make pattern_regs a vector. | |
17042 | (extract_mentioned_regs): Append to a vector instead of | |
17043 | returning a rtx_expr_list. | |
17044 | (st_expr_entry): Adjust. | |
17045 | (free_st_expr_entry): Likewise. | |
17046 | (store_ops_ok): Likewise. | |
17047 | (store_killed_in_insn): Likewise. | |
17048 | (find_moveable_store): Likewise. | |
17049 | ||
17050 | 2016-07-28 Martin Liska <mliska@suse.cz> | |
17051 | ||
17052 | PR gcov-profile/68025 | |
17053 | * tree-profile.c (tree_profiling): Respect | |
17054 | no_profile_instrument_function attribute. | |
17055 | * doc/extend.texi: Document no_profile_instrument_function | |
17056 | attribute. | |
17057 | ||
17058 | 2016-07-28 Martin Liska <mliska@suse.cz> | |
17059 | ||
17060 | PR rtl-optimization/70944 | |
17061 | * combine.c (make_compound_operation): | |
17062 | Do not allow make_compound_operation for vector mode | |
17063 | ||
17064 | 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org> | |
17065 | ||
17066 | PR middle-end/71994 | |
17067 | * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison | |
17068 | before calling get_ops. | |
17069 | ||
17070 | 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
17071 | ||
17072 | * defaults.h (LOG2_BITS_PER_UNIT): Move from here... | |
17073 | * tree.h (LOG2_BITS_PER_UNIT): ...to here. | |
17074 | (BITS_PER_UNIT_LOG): Remove. | |
17075 | (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG. | |
17076 | * expr.c (expand_assignment): Likewise. | |
17077 | * stor-layout.c (initialize_sizetypes): Likewise. | |
17078 | ||
17079 | 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com> | |
17080 | ||
17081 | * config/rs6000/vector.md (vec_extract<mode>): Change the calling | |
17082 | signature of rs6000_expand_vector_extract so that the element | |
17083 | number is a RTX instead of a constant integer. | |
17084 | * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract): | |
17085 | Likewise. | |
17086 | * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise. | |
17087 | (altivec_expand_vec_ext_builtin): Likewise. | |
17088 | * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise. | |
17089 | * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the | |
17090 | MFVSRLD instruction. | |
17091 | ||
17092 | 2016-07-27 David Malcolm <dmalcolm@redhat.com> | |
17093 | ||
17094 | * input.c (get_pure_location): Move here from tree.c. | |
17095 | (make_location): Likewise. Add header comment. | |
17096 | (selftest::test_accessing_ordinary_linemaps): Verify | |
17097 | pure_location_p, make_location, get_location_from_adhoc_loc and | |
17098 | get_range_from_loc. | |
17099 | * input.h (get_pure_location): Move declaration here from tree.h. | |
17100 | (get_finish): Likewise for inline function. | |
17101 | (make_location): Likewise for declaration. | |
17102 | * tree.c (get_pure_location): Move to input.c. | |
17103 | (make_location): Likewise. | |
17104 | * tree.h (get_pure_location): Move declaration to tree.h. | |
17105 | (get_finish): Likewise for inline function. | |
17106 | (make_location): Likewise for declaration. | |
17107 | ||
17108 | 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
17109 | ||
17110 | PR middle-end/71078 | |
17111 | * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern. | |
17112 | ||
17113 | 2016-07-27 David Malcolm <dmalcolm@redhat.com> | |
17114 | ||
17115 | * system.h (STATIC_ASSERT): Use static_assert if building | |
17116 | with C++11 onwards. | |
17117 | ||
17118 | 2016-07-27 Richard Biener <rguenther@suse.de> | |
17119 | ||
17120 | PR tree-optimization/72517 | |
17121 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): | |
17122 | Revert change to not compute read-read dependences. | |
17123 | ||
17124 | 2016-07-27 Richard Biener <rguenther@suse.de> | |
17125 | ||
17126 | * predict.c (set_even_probabilities): Make nedges unsigned. | |
17127 | ||
17128 | 2016-07-27 Martin Liska <mliska@suse.cz> | |
17129 | ||
17130 | * predict.c (set_even_probabilities): Handle unlikely edges. | |
17131 | (combine_predictions_for_bb): Likewise. | |
17132 | ||
17133 | 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com> | |
17134 | ||
17135 | PR target/71869 | |
17136 | * config/rs6000/rs6000.c (rs6000_generate_compare): Rework | |
17137 | __float128 support when we don't have hardware support, so that | |
17138 | the IEEE built-in functions like isgreater, first call __unordkf3 | |
17139 | to make sure neither operand is a NaN, and if both operands are | |
17140 | ordered, do the normal comparison. | |
17141 | ||
17142 | 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org> | |
17143 | ||
17144 | * tree-vrp.c (dump_asserts_for): Print loc->expr instead of | |
17145 | name. | |
17146 | (extract_code_and_val_from_cond_with_ops): Verify that name is | |
17147 | either cond_op0 or cond_op1. | |
17148 | ||
17149 | 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org> | |
17150 | ||
17151 | PR tree-optimization/18046 | |
17152 | * genmodes.c (emit_mode_size_inline): Emit an assert that | |
17153 | verifies that mode is a valid array index. | |
17154 | (emit_mode_nuinits_inline): Likewise. | |
17155 | (emit_mode_inner_inline): Likewise. | |
17156 | (emit_mode_unit_size_inline): Likewise. | |
17157 | (emit_mode_unit_precision_inline): Likewise. | |
17158 | * tree-vrp.c: Include params.h. | |
17159 | (find_switch_asserts): Register edge assertions for the default | |
17160 | label which correspond to the anti-ranges of each case label. | |
17161 | * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New. | |
17162 | * doc/invoke.texi: Document it. | |
17163 | ||
17164 | 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
17165 | ||
17166 | * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead | |
17167 | and unnecessary call to gimple_bb. | |
17168 | ||
17169 | 2016-07-26 Richard Biener <rguenther@suse.de> | |
17170 | ||
17171 | PR rtl-optimization/71984 | |
17172 | * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare | |
17173 | for VOIDmode. | |
17174 | ||
17175 | 2016-07-26 Richard Biener <rguenther@suse.de> | |
17176 | ||
17177 | PR middle-end/72517 | |
17178 | * expmed.c (extract_bit_field_1): Constrain the vector mode | |
17179 | with element size matching the extraction mode size when | |
17180 | choosing a better vector mode to do the extraction from. | |
17181 | ||
17182 | 2016-07-26 Richard Biener <rguenther@suse.de> | |
17183 | Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
17184 | ||
17185 | PR middle-end/70920 | |
17186 | * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New | |
17187 | pattern. | |
17188 | ||
17189 | 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
17190 | ||
17191 | * tree-ssa-structalias.c (struct scc_info): Change types of | |
17192 | members to auto_sbitmap and auto_vec. | |
17193 | (scc_info::scc_info): New constructor. | |
17194 | (scc_info::~scc_info): New destructor. | |
17195 | (init_scc_info): Remove. | |
17196 | (free_scc_info): Remove. | |
17197 | (find_indirect_cycles): Adjust. | |
17198 | (perform_var_substitution): Likewise. | |
17199 | (free_var_substitution_info): Likewise. | |
17200 | ||
17201 | 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
17202 | ||
17203 | * tree-outof-ssa.c (struct elim_graph): Change type of members | |
17204 | to auto_vec and auto_sbitmap. | |
17205 | (elim_graph::elim_graph): New constructor. | |
17206 | (delete_elim_graph): Remove. | |
17207 | (expand_phi_nodes): Adjust. | |
17208 | ||
17209 | 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
17210 | ||
17211 | * tree-outof-ssa.c (struct elim_graph): Remove typedef. | |
17212 | (new_elim_graph): Adjust. | |
17213 | (clear_elim_graph): Likewise. | |
17214 | (delete_elim_graph): Likewise. | |
17215 | (elim_graph_size): Likewise. | |
17216 | (elim_graph_add_node): Likewise. | |
17217 | (elim_graph_add_edge): Likewise. | |
17218 | (elim_graph_remove_succ_edge): Likewise. | |
17219 | (eliminate_name): Likewise. | |
17220 | (eliminate_build): Likewise. | |
17221 | (elim_forward): Likewise. | |
17222 | (elim_unvisited_predecessor): Likewise. | |
17223 | (elim_backward): Likewise. | |
17224 | (elim_create): Likewise. | |
17225 | (eliminate_phi): Likewise. | |
17226 | (expand_phi_nodes): Likewise. | |
17227 | ||
17228 | 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
17229 | ||
17230 | * bt-load.c (compute_out): Use auto_sbitmap class. | |
17231 | (link_btr_uses): Likewise. | |
17232 | * cfganal.c (mark_dfs_back_edges): Likewise. | |
17233 | (post_order_compute): Likewise. | |
17234 | (inverted_post_order_compute): Likewise. | |
17235 | (pre_and_rev_post_order_compute_fn): Likewise. | |
17236 | (single_pred_before_succ_order): Likewise. | |
17237 | * cfgexpand.c (pass_expand::execute): Likewise. | |
17238 | * cfgloop.c (verify_loop_structure): Likewise. | |
17239 | * cfgloopmanip.c (fix_bb_placements): Likewise. | |
17240 | (remove_path): Likewise. | |
17241 | (update_dominators_in_loop): Likewise. | |
17242 | * cfgrtl.c (break_superblocks): Likewise. | |
17243 | * ddg.c (check_sccs): Likewise. | |
17244 | (create_ddg_all_sccs): Likewise. | |
17245 | * df-core.c (df_worklist_dataflow): Likewise. | |
17246 | * dse.c (dse_step3): Likewise. | |
17247 | * except.c (eh_region_outermost): Likewise. | |
17248 | * function.c (thread_prologue_and_epilogue_insns): Likewise. | |
17249 | * gcse.c (prune_expressions): Likewise. | |
17250 | (prune_insertions_deletions): Likewise. | |
17251 | * gimple-ssa-backprop.c (backprop::~backprop): Likewise. | |
17252 | * graph.c (draw_cfg_nodes_no_loops): Likewise. | |
17253 | * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise. | |
17254 | * lcm.c (compute_earliest): Likewise. | |
17255 | (compute_farthest): Likewise. | |
17256 | * loop-unroll.c (unroll_loop_constant_iterations): Likewise. | |
17257 | (unroll_loop_runtime_iterations): Likewise. | |
17258 | (unroll_loop_stupid): Likewise. | |
17259 | * lower-subreg.c (decompose_multiword_subregs): Likewise. | |
17260 | * lra-lives.c: Likewise. | |
17261 | * lra.c (lra): Likewise. | |
17262 | * modulo-sched.c (schedule_reg_moves): Likewise. | |
17263 | (optimize_sc): Likewise. | |
17264 | (get_sched_window): Likewise. | |
17265 | (sms_schedule_by_order): Likewise. | |
17266 | (check_nodes_order): Likewise. | |
17267 | (order_nodes_of_sccs): Likewise. | |
17268 | (order_nodes_in_scc): Likewise. | |
17269 | * recog.c (split_all_insns): Likewise. | |
17270 | * regcprop.c (pass_cprop_hardreg::execute): Likewise. | |
17271 | * reload1.c (reload): Likewise. | |
17272 | * sched-rgn.c (haifa_find_rgns): Likewise. | |
17273 | (split_edges): Likewise. | |
17274 | (compute_trg_info): Likewise. | |
17275 | * sel-sched.c (init_seqno): Likewise. | |
17276 | * store-motion.c (remove_reachable_equiv_notes): Likewise. | |
17277 | * tree-into-ssa.c (update_ssa): Likewise. | |
17278 | * tree-ssa-live.c (live_worklist): Likewise. | |
17279 | * tree-ssa-loop-im.c (fill_always_executed_in): Likewise. | |
17280 | * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): | |
17281 | * Likewise. | |
17282 | (try_peel_loop): Likewise. | |
17283 | * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): | |
17284 | * Likewise. | |
17285 | * tree-ssa-pre.c (compute_antic): Likewise. | |
17286 | * tree-ssa-reassoc.c (undistribute_ops_list): Likewise. | |
17287 | * tree-stdarg.c (reachable_at_most_once): Likewise. | |
17288 | * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise. | |
17289 | * var-tracking.c (vt_find_locations): Likewise. | |
17290 | ||
17291 | 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
17292 | ||
17293 | * sbitmap.h (auto_sbitmap): New class. | |
17294 | ||
17295 | 2016-07-26 Alan Modra <amodra@gmail.com> | |
17296 | ||
17297 | PR target/72103 | |
17298 | * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize | |
17299 | sri->t_icode. | |
17300 | ||
17301 | 2016-07-25 David Malcolm <dmalcolm@redhat.com> | |
17302 | ||
17303 | * input.c (selftest::temp_source_file::temp_source_file): Fix | |
17304 | missing "%s" in fprintf. | |
17305 | ||
17306 | 2016-07-25 John David Anglin <danglin@gcc.gnu.org> | |
17307 | ||
17308 | PR middle-end/71732 | |
17309 | * cselib.c (cselib_process_insn): Invalidate argument slots for | |
17310 | const/pure calls. | |
17311 | ||
17312 | 2016-07-25 Jiong Wang <jiong.wang@arm.com> | |
17313 | ||
17314 | * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16, | |
17315 | vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16, | |
17316 | vmulxh_lane_f16, vmulxh_laneq_f16): New. | |
17317 | ||
17318 | 2016-07-25 Jiong Wang <jiong.wang@arm.com> | |
17319 | ||
17320 | * config/aarch64/aarch64-simd-builtins.def: Register new builtins. | |
17321 | * config/aarch64/aarch64.md (fma, fnma): Support HF. | |
17322 | * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New. | |
17323 | ||
17324 | 2016-07-25 Jiong Wang <jiong.wang@arm.com> | |
17325 | ||
17326 | * config/aarch64/aarch64-simd-builtins.def: Register new builtins. | |
17327 | * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3): | |
17328 | New. | |
17329 | (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise. | |
17330 | (add<mode>3): Likewise. | |
17331 | (sub<mode>3): Likewise. | |
17332 | (mul<mode>3): Likewise. | |
17333 | (div<mode>3): Likewise. | |
17334 | (*div<mode>3): Likewise. | |
17335 | (<fmaxmin><mode>3): Extend to HF. | |
17336 | * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise. | |
17337 | (fabd<mode>3): Likewise. | |
17338 | (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise. | |
17339 | (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise. | |
17340 | (aarch64_fmulx<mode>): Likewise. | |
17341 | (aarch64_fac<optab><mode>): Likewise. | |
17342 | (aarch64_frecps<mode>): Likewise. | |
17343 | (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New. | |
17344 | (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise. | |
17345 | * config/aarch64/iterators.md (VHSDF_SDF): Delete. | |
17346 | (VSDQ_HSDI): Support HI. | |
17347 | (fcvt_target, FCVT_TARGET): Likewise. | |
17348 | * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16, | |
17349 | vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16, | |
17350 | vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32, | |
17351 | vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64, | |
17352 | vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16, | |
17353 | vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16, | |
17354 | vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16, | |
17355 | vrsqrtsh_f16): New. | |
17356 | ||
17357 | 2016-07-25 Jiong Wang <jiong.wang@arm.com> | |
17358 | ||
17359 | * config.gcc (aarch64*-*-*): Install arm_fp16.h. | |
17360 | * config/aarch64/aarch64-builtins.c (hi_UP): New. | |
17361 | * config/aarch64/aarch64-simd-builtins.def: Register new builtins. | |
17362 | * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF | |
17363 | mode. | |
17364 | (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise. | |
17365 | (aarch64_cm<optab><mode>): Likewise. | |
17366 | * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise. | |
17367 | (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise. | |
17368 | (fix_trunc<GPF:mode><GPI:mode>2): Likewise. | |
17369 | (sqrt<mode>2): Likewise. | |
17370 | (*sqrt<mode>2): Likewise. | |
17371 | (abs<mode>2): Likewise. | |
17372 | (<optab><mode>hf2): New pattern for HF mode. | |
17373 | (<optab>hihf2): Likewise. | |
17374 | * config/aarch64/arm_neon.h: Include arm_fp16.h. | |
17375 | * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New. | |
17376 | (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE): | |
17377 | Support HF mode. | |
17378 | * config/aarch64/arm_fp16.h: New file. | |
17379 | (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16, | |
17380 | vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16, | |
17381 | vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16, | |
17382 | vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16, | |
17383 | vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16, | |
17384 | vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16, | |
17385 | vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16, | |
17386 | vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16, | |
17387 | vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16, | |
17388 | vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16, | |
17389 | vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16, | |
17390 | vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16, | |
17391 | vsqrth_f16): New. | |
17392 | ||
17393 | 2016-07-25 Jiong Wang <jiong.wang@arm.com> | |
17394 | ||
17395 | * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_, | |
17396 | reduc_smin_scal_): Use VDQIF_F16. | |
17397 | (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF. | |
17398 | * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>): | |
17399 | Use VHSDF. | |
17400 | (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise. | |
17401 | * config/aarch64/iterators.md (VDQIF_F16): New. | |
17402 | (vp): Support HF modes. | |
17403 | * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16, | |
17404 | vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New. | |
17405 | ||
17406 | 2016-07-25 Jiong Wang <jiong.wang@arm.com> | |
17407 | ||
17408 | * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to | |
17409 | "*aarch64_mulx_elt_from_dup<mode>". | |
17410 | (*aarch64_mul3_elt<mode>): Update schedule type. | |
17411 | (*aarch64_mul3_elt_from_dup<mode>): Likewise. | |
17412 | (*aarch64_fma4_elt_from_dup<mode>): Likewise. | |
17413 | (*aarch64_fnma4_elt_from_dup<mode>): Likewise. | |
17414 | * config/aarch64/iterators.md (VMUL): Supprt half precision float modes. | |
17415 | (f, fp): Support HF modes. | |
17416 | * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16, | |
17417 | vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16, | |
17418 | vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16, | |
17419 | vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16, | |
17420 | vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16, | |
17421 | vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New. | |
17422 | ||
17423 | 2016-07-25 Jiong Wang <jiong.wang@arm.com> | |
17424 | ||
17425 | * config/aarch64/aarch64-simd-builtins.def: Register new builtins. | |
17426 | * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF | |
17427 | modes. | |
17428 | * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16, | |
17429 | vfmsq_f16): New. | |
17430 | ||
17431 | 2016-07-25 Jiong Wang <jiong.wang@arm.com> | |
17432 | ||
17433 | * config/aarch64/aarch64-simd-builtins.def: Register new builtins. | |
17434 | * config/aarch64/aarch64-simd.md | |
17435 | (aarch64_rsqrts<mode>): Extend to HF modes. | |
17436 | (fabd<mode>3): Likewise. | |
17437 | (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise. | |
17438 | (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise. | |
17439 | (aarch64_<maxmin_uns>p<mode>): Likewise. | |
17440 | (<su><maxmin><mode>3): Likewise. | |
17441 | (<maxmin_uns><mode>3): Likewise. | |
17442 | (<fmaxmin><mode>3): Likewise. | |
17443 | (aarch64_faddp<mode>): Likewise. | |
17444 | (aarch64_fmulx<mode>): Likewise. | |
17445 | (aarch64_frecps<mode>): Likewise. | |
17446 | (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>. | |
17447 | (add<mode>3): Extend to HF modes. | |
17448 | (sub<mode>3): Likewise. | |
17449 | (mul<mode>3): Likewise. | |
17450 | (div<mode>3): Likewise. | |
17451 | (*div<mode>3): Likewise. | |
17452 | * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for | |
17453 | HF, V4HF and V8HF. | |
17454 | * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator. | |
17455 | * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16, | |
17456 | vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16, | |
17457 | vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16, | |
17458 | vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16, | |
17459 | vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16, | |
17460 | vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16, | |
17461 | vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16, | |
17462 | vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16, | |
17463 | vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16, | |
17464 | vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16, | |
17465 | vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16, | |
17466 | vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16, | |
17467 | vrsqrtsq_f16, vsub_f16, vsubq_f16): New. | |
17468 | ||
17469 | 2016-07-25 Jiong Wang <jiong.wang@arm.com> | |
17470 | ||
17471 | * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New. | |
17472 | * config/aarch64/aarch64-simd-builtins.def: Register new builtins. | |
17473 | * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes. | |
17474 | (neg<mode>2): Likewise. | |
17475 | (abs<mode>2): Likewise. | |
17476 | (<frint_pattern><mode>2): Likewise. | |
17477 | (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise. | |
17478 | (<optab><VDQF:mode><fcvt_target>2): Likewise. | |
17479 | (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise. | |
17480 | (ftrunc<VDQF:mode>2): Likewise. | |
17481 | (<optab><fcvt_target><VDQF:mode>2): Likewise. | |
17482 | (sqrt<mode>2): Likewise. | |
17483 | (*sqrt<mode>2): Likewise. | |
17484 | (aarch64_frecpe<mode>): Likewise. | |
17485 | (aarch64_cm<optab><mode>): Likewise. | |
17486 | * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for | |
17487 | HF, V4HF and V8HF. | |
17488 | * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New. | |
17489 | (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes. | |
17490 | (stype): New. | |
17491 | * config/aarch64/arm_neon.h (vdup_n_f16): New. | |
17492 | (vdupq_n_f16): Likewise. | |
17493 | (vld1_dup_f16): Use vdup_n_f16. | |
17494 | (vld1q_dup_f16): Use vdupq_n_f16. | |
17495 | (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16, | |
17496 | vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16, | |
17497 | vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16, | |
17498 | vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16, | |
17499 | vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16, | |
17500 | vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16, | |
17501 | vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16, | |
17502 | vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16, | |
17503 | vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16, | |
17504 | vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16, | |
17505 | vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16, | |
17506 | vsqrt_f16, vsqrtq_f16): New. | |
17507 | ||
17508 | 2016-07-25 Jiong Wang <jiong.wang@arm.com> | |
17509 | ||
17510 | * config/aarch64/aarch64-simd.md | |
17511 | (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16. | |
17512 | (aarch64_ext<mode>): Likewise. | |
17513 | (aarch64_rev<REVERSE:rev_op><mode>): Likewise. | |
17514 | * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp, | |
17515 | aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode | |
17516 | and V8HFmode. | |
17517 | * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t, | |
17518 | float16x8_t. | |
17519 | (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16, | |
17520 | __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16, | |
17521 | vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16, | |
17522 | vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16, | |
17523 | vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16, | |
17524 | vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16, | |
17525 | vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16): | |
17526 | New. | |
17527 | (vmov_n_f16): Reimplement using vdup_n_f16. | |
17528 | (vmovq_n_f16): Reimplement using vdupq_n_f16.. | |
17529 | ||
17530 | 2016-07-25 Jiong Wang <jiong.wang@arm.com> | |
17531 | ||
17532 | * config/aarch64/aarch64.c (aarch64_add_constant): New parameter | |
17533 | "frame_related_p". Generate CFA annotation when it's necessary. | |
17534 | (aarch64_expand_prologue): Use aarch64_add_constant. | |
17535 | (aarch64_expand_epilogue): Likewise. | |
17536 | (aarch64_output_mi_thunk): Pass "false" when calling | |
17537 | aarch64_add_constant. | |
17538 | ||
17539 | 2016-07-25 Jiong Wang <jiong.wang@arm.com> | |
17540 | ||
17541 | * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction | |
17542 | sequences. | |
17543 | ||
17544 | 2016-07-25 Jiong Wang <jiong.wang@arm.com> | |
17545 | ||
17546 | * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode". | |
17547 | Use aarch64_internal_mov_immediate instead of aarch64_build_constant. | |
17548 | (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant. | |
17549 | (aarch64_build_constant): Delete. | |
17550 | ||
17551 | 2016-07-25 Alexander Monakov <amonakov@ispras.ru> | |
17552 | ||
17553 | Revert | |
17554 | 2016-07-20 Alexander Monakov <amonakov@ispras.ru> | |
17555 | ||
17556 | * config/nvptx/nvptx.c (nvptx_option_override): Do not set | |
17557 | flag_toplevel_reorder. | |
17558 | ||
17559 | 2016-07-25 Richard Biener <rguenther@suse.de> | |
17560 | ||
17561 | * cgraph.c (cgraph_node::verify_node): Compare against builtin | |
17562 | by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE. | |
17563 | * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise. | |
17564 | * tree-streamer.h (streamer_handle_as_builtin_p): Remove. | |
17565 | (streamer_get_builtin_tree): Likewise. | |
17566 | (streamer_write_builtin): Likewise. | |
17567 | * lto-streamer.h (LTO_builtin_decl): Remove. | |
17568 | * lto-streamer-in.c (lto_read_tree_1): Remove assert. | |
17569 | (lto_input_scc): Remove LTO_builtin_decl handling. | |
17570 | (lto_input_tree_1): Liekwise. | |
17571 | * lto-streamer-out.c (lto_output_tree_1): Remove special | |
17572 | handling of builtins. | |
17573 | (DFS::DFS): Likewise. | |
17574 | * tree-streamer-in.c (streamer_get_builtin_tree): Remove. | |
17575 | * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove | |
17576 | assert. | |
17577 | (streamer_write_builtin): Remove. | |
17578 | ||
17579 | 2016-07-25 Martin Liska <mliska@suse.cz> | |
17580 | ||
17581 | * lto-cgraph.c (input_symtab): Don't call get_working_sets | |
17582 | if flag_auto_profile is set to true. | |
17583 | ||
17584 | 2016-07-25 Martin Liska <mliska@suse.cz> | |
17585 | ||
17586 | PR gcov-profile/71868 | |
17587 | * cfgloopanal.c (expected_loop_iterations_unbounded): When we | |
17588 | have a function with multiple latches, count them all. | |
17589 | ||
17590 | 2016-07-25 Martin Liska <mliska@suse.cz> | |
17591 | ||
17592 | * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array. | |
17593 | ||
17594 | 2016-07-25 Martin Liska <mliska@suse.cz> | |
17595 | ||
17596 | PR tree-optimization/71987 | |
17597 | * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops | |
17598 | just for SSA_NAMEs. Fix GNU coding style. | |
17599 | ||
17600 | 2016-07-25 Martin Liska <mliska@suse.cz> | |
17601 | ||
17602 | PR gcov-profile/64874 | |
17603 | * gcov-io.h: Update command about file format. | |
17604 | * gcov-iov.c (main): Adapt the numbering scheme. | |
17605 | ||
17606 | 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org> | |
17607 | ||
17608 | PR middle-end/66726 | |
17609 | * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt | |
17610 | whose result is used in PHI. | |
17611 | (final_range_test_p): Likewise. | |
17612 | (maybe_optimize_range_tests): Likewise. | |
17613 | ||
17614 | 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com> | |
17615 | ||
17616 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
17617 | Reformat two multi-line strings. | |
17618 | ||
17619 | 2016-07-22 Martin Sebor <msebor@redhat.com> | |
17620 | ||
17621 | * doc/extend.texi (Compound Literals): Add '@' missed in last commit. | |
17622 | ||
17623 | 2016-07-22 Martin Sebor <msebor@redhat.com> | |
17624 | ||
17625 | PR c/71560 | |
17626 | * doc/extend.texi (Compound Literals): Correct and clarify. | |
17627 | (Cast to Union): Same. | |
17628 | ||
17629 | 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
17630 | ||
17631 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Add | |
17632 | comments to explain why certain error messages make mention of | |
17633 | undocumented options. | |
17634 | (rs6000_invalid_builtin): Change error messages to replace mention | |
17635 | of undocumented options with mention of the -mcpu=power9 option | |
17636 | that enables those undocumented options. | |
17637 | * config/rs6000/rs6000.h (MASK_FLOAT128): New macro. | |
17638 | (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the | |
17639 | definition of this macro to correct an existing error. | |
17640 | * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the | |
17641 | mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries. | |
17642 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify | |
17643 | descriptions of built-in functions so that they depend on | |
17644 | -mcpu=power9 instead of on the corresponding undocumented flags. | |
17645 | * doc/invoke.texi (Option Summary): Remove all mention of newly | |
17646 | undocumented flags. | |
17647 | (IBM RS/6000 and PowerPC Options): Likewise. | |
17648 | * doc/md.texi (Constraints for Particuliar Machines): Remove all | |
17649 | mention of newly undocumented flags. | |
17650 | ||
17651 | 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com> | |
17652 | ||
17653 | * ipa-cp.c (determine_versionability): Do not create constprop clones, | |
17654 | when target_clones attribute is set. | |
17655 | ||
17656 | 2016-07-22 Bin Cheng <bin.cheng@arm.com> | |
17657 | ||
17658 | * common.opt (funsafe-loop-optimizations): Mark ignore. | |
17659 | * doc/invoke.texi (funsafe-loop-optimizations): Remove. | |
17660 | * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations | |
17661 | related code. | |
17662 | * tree-ssa-loop-niter.c (finite_loop_p): Ditto. | |
17663 | * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto. | |
17664 | ||
17665 | 2016-07-22 Bin Cheng <bin.cheng@arm.com> | |
17666 | ||
17667 | * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New | |
17668 | Parameter. | |
17669 | * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New | |
17670 | Parameter. | |
17671 | (number_of_iterations_exit): Warn missed loop optimization for | |
17672 | possible infinite loops. | |
17673 | ||
17674 | 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org> | |
17675 | ||
17676 | PR target/71216 | |
17677 | * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for | |
17678 | when to emit a ".machine" pseudo-op. | |
17679 | ||
17680 | 2016-07-22 Martin Liska <mliska@suse.cz> | |
17681 | ||
17682 | PR gcov-profile/69028 | |
17683 | PR gcov-profile/62047 | |
17684 | * coverage.c (coverage_compute_lineno_checksum): Do not | |
17685 | calculate checksum for fns w/o xloc.file. | |
17686 | (coverage_compute_profile_id): Likewise. | |
17687 | ||
17688 | 2016-07-22 Georg-Johann Lay <avr@gjlay.de> | |
17689 | ||
17690 | * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define... | |
17691 | (avr_secondary_reload): ...and implementation. | |
17692 | (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling. | |
17693 | * config/avr/avr.md (reload_in<mode>): Remove insns. | |
17694 | (adjust_len) [lpm]: Remove insn attribute value. | |
17695 | * config/avr/predicates.md (flash_operand): Remove insn predicate. | |
17696 | ||
17697 | 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
17698 | ||
17699 | PR middle-end/71876 | |
17700 | * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice | |
17701 | attribute. | |
17702 | * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here. | |
17703 | * calls.c (special_function_p): Remove the special handling of the | |
17704 | "__builtin_" prefix. | |
17705 | ||
17706 | 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
17707 | ||
17708 | PR middle-end/71876 | |
17709 | * calls.c (gimple_maybe_alloca_call_p): New function. Return true | |
17710 | if STMT may be an alloca call. | |
17711 | (gimple_alloca_call_p, alloca_call_p): Return only true for the | |
17712 | builtin alloca call. | |
17713 | * calls.h (gimple_maybe_alloca_call_p): New function. | |
17714 | * tree-inline.c (inline_forbidden_p_stmt): Use | |
17715 | gimple_maybe_alloca_call_p here. | |
17716 | ||
17717 | 2016-07-21 David Malcolm <dmalcolm@redhat.com> | |
17718 | ||
17719 | * spellcheck-tree.c (best_macro_match::best_macro_match): | |
17720 | Explictly specify the template arguments when invoking the base | |
17721 | class constructor, to help older C++ compilers. | |
17722 | ||
17723 | 2016-07-21 Jakub Jelinek <jakub@redhat.com> | |
17724 | ||
17725 | PR sanitizer/71953 | |
17726 | * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types | |
17727 | before builtin_decl_implicit. | |
17728 | ||
17729 | 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com> | |
17730 | ||
17731 | * optabs.c (emit_condiitonal_move): Short circuit for identical | |
17732 | sources. | |
17733 | ||
17734 | 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com> | |
17735 | ||
17736 | * ifcvt.c (noce_if_info): New fields: speed_p, original_cost, | |
17737 | max_seq_cost. Removed fields: then_cost, else_cost, branch_cost. | |
17738 | (noce_conversion_profitable_p): New. | |
17739 | (noce_try_store_flag_constants): Use it. | |
17740 | (noce_try_addcc): Likewise. | |
17741 | (noce_try_store_flag_mask): Likewise. | |
17742 | (noce_try_cmove): Likewise. | |
17743 | (noce_try_cmove_arith): Likewise. | |
17744 | (bb_valid_for_noce_process_p): Add to the cost parameter rather than | |
17745 | overwriting it. | |
17746 | (noce_convert_multiple_sets): Move cost model to here, from... | |
17747 | (bb_ok_for_noce_convert_multiple_sets) ...here. | |
17748 | (noce_process_if_block): Update calls for above changes. | |
17749 | (noce_find_if_block): Record new noce_if_info parameters. | |
17750 | ||
17751 | 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com> | |
17752 | ||
17753 | * target.def (max_noce_ifcvt_seq_cost): New. | |
17754 | * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it. | |
17755 | * doc/tm.texi: Regenerate. | |
17756 | * targhooks.h (default_max_noce_ifcvt_seq_cost): New. | |
17757 | * targhooks.c (default_max_noce_ifcvt_seq_cost): New. | |
17758 | * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New. | |
17759 | (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise. | |
17760 | * doc/invoke.texi: Document new params. | |
17761 | ||
17762 | 2016-07-21 Richard Biener <rguenther@suse.de> | |
17763 | ||
17764 | PR tree-optimization/71947 | |
17765 | * tree-vrp.c (extract_range_from_assert): Singleton symbolic | |
17766 | ranges have useful limit_vr information. | |
17767 | ||
17768 | 2016-07-21 Richard Biener <rguenther@suse.de> | |
17769 | ||
17770 | * function-tests.c (build_trivial_generic_function): Set | |
17771 | BLOCK_SUPERCONTEXT of DECL_INITIAL. | |
17772 | * omp-low.c (create_omp_child_function): Likewise. | |
17773 | (grid_expand_target_grid_body): Likewise. | |
17774 | * cgraphunit.c (init_lowered_empty_function): Likewise. | |
17775 | (cgraph_node::expand_thunk): Likewise. | |
17776 | * tree-parloops.c (create_loop_fn): Likewise. | |
17777 | * ipa.c (cgraph_build_static_cdtor_1): Likewise. | |
17778 | ||
17779 | 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
17780 | ||
17781 | * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo | |
17782 | in comment. | |
17783 | ||
17784 | 2016-07-21 Georg-Johann Lay <avr@gjlay.de> | |
17785 | ||
17786 | * config/avr/avr.md (any_extract, any_shiftrt): New code iterators. | |
17787 | (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7) | |
17788 | (*insv.xor-extract, *insv.xor1-bit.0): New insns. | |
17789 | (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New | |
17790 | values for insn attribute. | |
17791 | * config/avr/avr.c (avr_out_insert_notbit): New function. | |
17792 | (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT, | |
17793 | ADJUST_LEN_INSV_NOTBIT_0/_7. | |
17794 | * config/avr/avr-protos.h (avr_out_insert_notbit): New proto. | |
17795 | ||
17796 | 2016-07-21 Bin Cheng <bin.cheng@arm.com> | |
17797 | ||
17798 | * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg. | |
17799 | (chrec_convert_1, chrec_convert): Ditto. | |
17800 | * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter. | |
17801 | * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg. | |
17802 | * tree-vrp.c (adjust_range_with_scev): Ditto. | |
17803 | * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto. | |
17804 | (scev_var_range_cant_overflow): New function. | |
17805 | (scev_probably_wraps_p): New parameter. Call above function. | |
17806 | * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter. | |
17807 | ||
17808 | 2016-07-21 Bin Cheng <bin.cheng@arm.com> | |
17809 | ||
17810 | * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up | |
17811 | by removing computation of may_be_zero. | |
17812 | ||
17813 | 2016-07-21 Jakub Jelinek <jakub@redhat.com> | |
17814 | ||
17815 | * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1. | |
17816 | ||
17817 | 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com> | |
17818 | ||
17819 | Improving concepts performance and diagnostics. | |
17820 | * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars | |
17821 | for constraint satisfaction and subsumption. | |
17822 | * timevar.h (auto_timevar): New constructor that matches the push/pop | |
17823 | pattern of usage in pt.c. | |
17824 | ||
17825 | 2016-07-20 Uros Bizjak <ubizjak@gmail.com> | |
17826 | ||
17827 | * hwint.h (HOST_WIDE_INT_0): New define. | |
17828 | (HOST_WIDE_INT_0U): Ditto. | |
17829 | * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0. | |
17830 | * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0. | |
17831 | * simplify-rtx.c: Ditto. | |
17832 | * tree-object-size.c: Ditto. | |
17833 | ||
17834 | 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
17835 | ||
17836 | * config/s390/s390.c (s390_encode_section_info): Remove mode size | |
17837 | check. | |
17838 | ||
17839 | 2016-07-20 Uros Bizjak <ubizjak@gmail.com> | |
17840 | ||
17841 | * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0. | |
17842 | * combine.c: Use HOST_WIDE_INT_M1U instead of | |
17843 | ~(unsigned HOST_WIDE_INT) 0. | |
17844 | * double-int.h: Ditto. | |
17845 | * dse.c: Ditto. | |
17846 | * dwarf2asm.c:Ditto. | |
17847 | * expmed.c: Ditto. | |
17848 | * genmodes.c: Ditto. | |
17849 | * match.pd: Ditto. | |
17850 | * read-rtl.c: Ditto. | |
17851 | * tree-ssa-loop-ivopts.c: Ditto. | |
17852 | * tree-ssa-loop-prefetch.c: Ditto. | |
17853 | * tree-vect-generic.c: Ditto. | |
17854 | * tree-vect-patterns.c: Ditto. | |
17855 | * tree.c: Ditto. | |
17856 | ||
17857 | 2016-07-20 Georg-Johann Lay <avr@gjlay.de> | |
17858 | ||
17859 | * config/avr.c (avr_legitimize_address) [AVR_TINY]: Force | |
17860 | constant addresses outside [0,0xc0] into a register. | |
17861 | (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle | |
17862 | cases where the base address register is unused after. | |
17863 | (avr_out_movhi_r_mr_reg_disp_tiny): Same. | |
17864 | (avr_out_movhi_mr_r_reg_disp_tiny): Same. | |
17865 | (avr_out_store_psi_reg_disp_tiny): Same. | |
17866 | ||
17867 | 2016-07-20 Georg-Johann Lay <avr@gjlay.de> | |
17868 | ||
17869 | Implement attribute progmem on reduced Tiny cores by adding | |
17870 | flash offset 0x4000 to respective symbols. | |
17871 | ||
17872 | PR target/71948 | |
17873 | * doc/extend.texi (AVR Variable Attributes) [progmem]: Add | |
17874 | documentation how it works on reduced Tiny cores. | |
17875 | (AVR Named Address Spaces): No support for reduced Tiny. | |
17876 | * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro. | |
17877 | (avr_address_tiny_pm_p): New static function. | |
17878 | (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET | |
17879 | if the address is in progmem. | |
17880 | (avr_assemble_integer): Same. | |
17881 | (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM | |
17882 | for symbol_ref in progmem. | |
17883 | * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro. | |
17884 | * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of | |
17885 | magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__. | |
17886 | ||
17887 | 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org> | |
17888 | ||
17889 | * configure.ac (thin_archive_support): New variable. AC_SUBST it. | |
17890 | * configure: Regenerate. | |
17891 | * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable. | |
17892 | (USE_THIN_ARCHIVES): New variable. | |
17893 | (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build | |
17894 | this archive as a thin archive. | |
17895 | ||
17896 | 2016-07-20 David Malcolm <dmalcolm@redhat.com> | |
17897 | ||
17898 | * diagnostic-show-locus.c (diagnostic_show_locus): If this is the | |
17899 | same location as last time, don't skip if we have fix-it hints. | |
17900 | Clarify the skipping logic by converting it from one "if" clause | |
17901 | to repeated "if" clauses. | |
17902 | * spellcheck-tree.c: Include "cpplib.h". | |
17903 | (find_closest_macro_cpp_cb): Move here from c/c-decl.c. | |
17904 | (best_macro_match::best_macro_match): New constructor. | |
17905 | * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>): | |
17906 | Move here from c/c-decl.c. | |
17907 | (class best_macro_match): Move here from c/c-decl.c, converting | |
17908 | from a typedef to a subclass, gaining a ctor. | |
17909 | ||
17910 | 2016-07-20 Georg-Johann Lay <avr@gjlay.de> | |
17911 | ||
17912 | * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype. | |
17913 | * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook | |
17914 | define... | |
17915 | (avr_addr_space_diagnose_usage): ...and implementation. | |
17916 | (avr_addr_space_supported_p): New function. | |
17917 | (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only | |
17918 | report bad address space usage if that space is supported. | |
17919 | (avr_insert_attributes): Same. No more complain about unsupported | |
17920 | address spaces. | |
17921 | * config/avr/avr-c.c (tm_p.h): Include it. | |
17922 | (avr_cpu_cpp_builtins): Only define addr-space related built-in | |
17923 | macro if avr_addr_space_supported_p. | |
17924 | ||
17925 | 2016-07-20 Alexander Monakov <amonakov@ispras.ru> | |
17926 | ||
17927 | * config/nvptx/nvptx.c (nvptx_option_override): Do not set | |
17928 | flag_toplevel_reorder. | |
17929 | ||
17930 | 2016-07-20 David Malcolm <dmalcolm@redhat.com> | |
17931 | ||
17932 | * gcc-rich-location.c | |
17933 | (gcc_rich_location::add_fixit_misspelled_id): New overload, taking | |
17934 | a const char *. | |
17935 | * gcc-rich-location.h | |
17936 | (gcc_rich_location::add_fixit_misspelled_id): Likewise. | |
17937 | ||
17938 | 2016-07-20 Georg-Johann Lay <avr@gjlay.de> | |
17939 | ||
17940 | * target.def (addr_space): Add new diagnose_usage to hook vector. | |
17941 | * targhooks.c (default_addr_space_diagnose_usage): Add default | |
17942 | implementation and... | |
17943 | * targhooks.h (default_addr_space_diagnose_usage): ... its prototype. | |
17944 | * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token | |
17945 | is some address space, call targetm.addr_space.diagnose_usage. | |
17946 | * doc/tm.texi.in (Named Address Spaces): Add anchor for | |
17947 | TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation. | |
17948 | * doc/tm.texi: Regenerate. | |
17949 | ||
17950 | 2016-07-20 Martin Liska <mliska@suse.cz> | |
17951 | ||
17952 | PR middle-end/71898 | |
17953 | * graphite-isl-ast-to-gimple.c (later_of_the_two): | |
17954 | Properly handly PHI stmts. | |
17955 | ||
17956 | 2016-07-20 Bin Cheng <bin.cheng@arm.com> | |
17957 | ||
17958 | PR tree-optimization/71503 | |
17959 | PR tree-optimization/71683 | |
17960 | * tree-if-conv.c (gen_phi_arg_condition): Record true predicate | |
17961 | and break. | |
17962 | ||
17963 | 2016-07-20 Martin Liska <mliska@suse.cz> | |
17964 | ||
17965 | * doc/invoke.texi (-fipa-ra): Document when the option is | |
17966 | disabled. Fix a typo. | |
17967 | ||
17968 | 2016-07-20 Martin Liska <mliska@suse.cz> | |
17969 | ||
17970 | * Makefile.in: Include fibonacci_heap.c | |
17971 | * fibonacci_heap.c: New file. | |
17972 | * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node. | |
17973 | (fibonacci_heap::union_with): Fix deletion of the second heap. | |
17974 | * selftest-run-tests.c (selftest::run_tests): Incorporate | |
17975 | fibonacci heap tests. | |
17976 | * selftest.h: Declare fibonacci_heap_c_tests. | |
17977 | ||
17978 | 2016-07-20 Martin Liska <mliska@suse.cz> | |
17979 | ||
17980 | * selftest-run-tests.c (selftest::run_tests): New function. | |
17981 | * selftest.h (sreal_c_tests): Declare. | |
17982 | * sreal.c (sreal_verify_basics): New function. | |
17983 | (verify_aritmetics): Likewise. | |
17984 | (sreal_verify_arithmetics): Likewise. | |
17985 | (verify_shifting): Likewise. | |
17986 | (sreal_verify_shifting): Likewise. | |
17987 | (void sreal_c_tests): Likewise. | |
17988 | ||
17989 | 2016-07-19 Jakub Jelinek <jakub@redhat.com> | |
17990 | ||
17991 | PR rtl-optimization/71916 | |
17992 | * cfgrtl.c (contains_no_active_insn_p): Return false also for | |
17993 | bb which have a single succ fake edge. | |
17994 | ||
17995 | 2016-07-19 Aldy Hernandez <aldyh@redhat.com> | |
17996 | ||
17997 | PR debug/71855 | |
17998 | * dwarf2out.c (gen_subprogram_die): Only call | |
17999 | gen_unspecified_parameters_die while dumping early dwarf. | |
18000 | ||
18001 | 2016-07-19 Jakub Jelinek <jakub@redhat.com> | |
18002 | ||
18003 | PR middle-end/71874 | |
18004 | * gimple-fold.c (fold_builtin_memory_op): Use | |
18005 | get_addr_base_and_unit_offset instead of get_ref_base_and_extent. | |
18006 | ||
18007 | 2016-07-19 Uros Bizjak <ubizjak@gmail.com> | |
18008 | ||
18009 | * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1, | |
18010 | HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1, | |
18011 | HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and | |
18012 | HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1. | |
18013 | * combine.c: Ditto. | |
18014 | * cse.c: Ditto. | |
18015 | * dojump.c: Ditto. | |
18016 | * double-int.c: Ditto. | |
18017 | * dse.c: Ditto. | |
18018 | * dwarf2out.c: Ditto. | |
18019 | * expmed.c: Ditto. | |
18020 | * expr.c: Ditto. | |
18021 | * fold-const.c: Ditto. | |
18022 | * function.c: Ditto. | |
18023 | * fwprop.c: Ditto. | |
18024 | * genmodes.c: Ditto. | |
18025 | * hwint.c: Ditto. | |
18026 | * hwint.h: Ditto. | |
18027 | * ifcvt.c: Ditto. | |
18028 | * loop-doloop.c: Ditto. | |
18029 | * loop-invariant.c: Ditto. | |
18030 | * loop-iv.c: Ditto. | |
18031 | * match.pd: Ditto. | |
18032 | * optabs.c: Ditto. | |
18033 | * real.c: Ditto. | |
18034 | * reload.c: Ditto. | |
18035 | * rtlanal.c: Ditto. | |
18036 | * simplify-rtx.c: Ditto. | |
18037 | * stor-layout.c: Ditto. | |
18038 | * toplev.c: Ditto. | |
18039 | * tree-ssa-loop-ivopts.c: Ditto. | |
18040 | * tree-vect-generic.c: Ditto. | |
18041 | * tree-vect-patterns.c: Ditto. | |
18042 | * tree.c: Ditto. | |
18043 | * tree.h: Ditto. | |
18044 | * ubsan.c: Ditto. | |
18045 | * varasm.c: Ditto. | |
18046 | * wide-int-print.cc: Ditto. | |
18047 | * wide-int.cc: Ditto. | |
18048 | * wide-int.h: Ditto. | |
18049 | ||
18050 | 2016-07-19 David Malcolm <dmalcolm@redhat.com> | |
18051 | ||
18052 | * selftest.c (selftest::assert_streq): Handle NULL values of | |
18053 | val_actual and val_expected. | |
18054 | ||
18055 | 2016-07-19 Martin Jambor <mjambor@suse.cz> | |
18056 | ||
18057 | PR fortran/71688 | |
18058 | * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node | |
18059 | rather than cgraph_create_node to get a call graph node. | |
18060 | ||
18061 | 2016-07-19 Richard Biener <rguenther@suse.de> | |
18062 | ||
18063 | * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case, | |
18064 | handle all tcc_constant bases and valueize SSA names. | |
18065 | * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle | |
18066 | tcc_constant bases. | |
18067 | ||
18068 | 2016-07-19 David Malcolm <dmalcolm@redhat.com> | |
18069 | ||
18070 | * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify | |
18071 | the flags of the exit block and bb2, not just the entry block. | |
18072 | ||
18073 | 2016-07-19 Richard Biener <rguenther@suse.de> | |
18074 | ||
18075 | PR tree-optimization/71901 | |
18076 | * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add | |
18077 | align member, group stuff with the bitfield. | |
18078 | (vn_ref_op_align_unit): New inline. | |
18079 | * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs | |
18080 | record element alignment and operand 3 unchanged. | |
18081 | (ao_ref_init_from_vn_reference): Adjust. | |
18082 | (valueize_refs_1): Likewise. | |
18083 | * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise. | |
18084 | ||
18085 | 2016-07-19 Richard Biener <rguenther@suse.de> | |
18086 | ||
18087 | PR tree-optimization/71908 | |
18088 | * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle | |
18089 | symbolic constants in a more reliable way. | |
18090 | ||
18091 | 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com> | |
18092 | ||
18093 | * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update | |
18094 | comment. | |
18095 | (vect_update_inits_of_drs): Likewise. | |
18096 | (vect_create_cond_for_alias_checks): Likewise. | |
18097 | * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise. | |
18098 | ||
18099 | 2016-07-19 Richard Biener <rguenther@suse.de> | |
18100 | ||
18101 | PR lto/71907 | |
18102 | * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks | |
18103 | with an abstract origin that is not an inlined function outer | |
18104 | scope add a self-reference as abstract origin. | |
18105 | * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise. | |
18106 | ||
18107 | 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com> | |
18108 | ||
18109 | PR target/71493 | |
18110 | * config/rs6000/rs6000.c (rs6000_function_value): Fix | |
18111 | unintentional System V.4 structure return breakage for structures | |
18112 | with a single floating point element. | |
18113 | ||
18114 | 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com> | |
18115 | ||
18116 | PR tree-optimization/71734 | |
18117 | * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which | |
18118 | contains REF, use it to check safelen, assume that safelen value | |
18119 | must be greater 1, fix style. | |
18120 | (ref_indep_loop_p_2): Add REF_LOOP argument. | |
18121 | (ref_indep_loop_p): Pass LOOP as additional argument to | |
18122 | ref_indep_loop_p_2. | |
18123 | ||
18124 | 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
18125 | ||
18126 | * cfgexpand.c (expand_stack_vars): Implement synamic stack space | |
18127 | allocation in the prologue. | |
18128 | * explow.c (get_dynamic_stack_base): New function to return an address | |
18129 | expression for the dynamic stack base. | |
18130 | (get_dynamic_stack_size): New function to do the required dynamic stack | |
18131 | space size calculations. | |
18132 | (allocate_dynamic_stack_space): Use new functions. | |
18133 | (align_dynamic_address): Move some code from | |
18134 | allocate_dynamic_stack_space to new function. | |
18135 | * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export. | |
18136 | ||
18137 | 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
18138 | ||
18139 | * config/s390/s390.c (s390_encode_section_info): Always set | |
18140 | notaligned marker if mode size is 0 or no MEM_ALIGN info could be | |
18141 | found. | |
18142 | ||
18143 | 2016-07-18 Richard Biener <rguenther@suse.de> | |
18144 | ||
18145 | PR tree-optimization/71893 | |
18146 | * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate | |
18147 | for sizetype cast added by array_ref_element_size. | |
18148 | * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. | |
18149 | ||
18150 | 2016-07-16 John David Anglin <danglin@gcc.gnu.org> | |
18151 | ||
18152 | * config/pa/pa.c (hppa_profile_hook): Allocate stack space for | |
18153 | register parameters. Remove code to initialize argument pointer | |
18154 | on TARGET_64BIT. Optimize call to _mcount when it can be reached | |
18155 | using a pc-relative branch. Cleanup conditional code. | |
18156 | * config/pa/pa.md (call_mcount): New expander. | |
18157 | (call_mcount_nonpic): New insn. | |
18158 | (call_mcount_pic): New insn and split. | |
18159 | (call_mcount_pic_post_reload): New insn. | |
18160 | (call_mcount_64bit): New insn and split. | |
18161 | (call_mcount_64bit_post_reload): New insn. | |
18162 | ||
18163 | 2016-07-15 Georg-Johann Lay <avr@gjlay.de> | |
18164 | ||
18165 | * config/avr/predicates.md (const_m255_to_m1_operand): New. | |
18166 | * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints. | |
18167 | * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2. | |
18168 | (*cmphi.zero-extend.0, *cmphi.zero-extend.1) | |
18169 | (*usum_widenqihi3, *udiff_widenqihi3) | |
18170 | (*addhi3_zero_extend.const): New combiner insns. | |
18171 | (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if | |
18172 | just 1 bit is affected. | |
18173 | * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3]. | |
18174 | (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1. | |
18175 | ||
18176 | 2016-07-15 Cesar Philippidis <cesar@codesourcery.com> | |
18177 | ||
18178 | * omp-low.c (lower_omp_target): Mark data clauses with | |
18179 | GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having | |
18180 | zero-length subarrays. | |
18181 | ||
18182 | 2016-07-15 Richard Biener <rguenther@suse.de> | |
18183 | ||
18184 | PR tree-optimization/71881 | |
18185 | * tree-loop-distribution.c (destroy_loop): Remove blocks in | |
18186 | reverse DOM order to make debug temp generation happy. | |
18187 | ||
18188 | 2016-07-15 Richard Biener <rguenther@suse.de> | |
18189 | ||
18190 | PR tree-optimization/71887 | |
18191 | * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and | |
18192 | verify it is not zero for division / modulo handling. | |
18193 | (value_replacement): Adjust. | |
18194 | ||
18195 | 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com> | |
18196 | Julian Brown <julian@codesourcery.com> | |
18197 | ||
18198 | * config/aarch64/aarch64-cores.def: Update vulcan COSTS. | |
18199 | * config/aarch64/aarch64-cost-tables.h | |
18200 | (vulcan_extra_costs): New variable. | |
18201 | * config/aarch64/aarch64.c | |
18202 | (vulcan_addrcost_table): Likewise. | |
18203 | (vulcan_regmove_cost): Likewise. | |
18204 | (vulcan_vector_cost): Likewise. | |
18205 | (vulcan_branch_cost): Likewise. | |
18206 | (vulcan_tunings): Likewise. | |
18207 | ||
18208 | 2016-07-15 Alexander Monakov <amonakov@ispras.ru> | |
18209 | ||
18210 | * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF. | |
18211 | (output_in_order): Loop over undefined variables too. Output them | |
18212 | via assemble_undefined_decl. Skip variables that correspond to hard | |
18213 | registers or have value-exprs. | |
18214 | * varpool.c (symbol_table::output_variables): Handle undefined | |
18215 | variables together with defined ones. | |
18216 | ||
18217 | 2016-07-15 Richard Biener <rguenther@suse.de> | |
18218 | ||
18219 | * tree-ssa-pre.c (get_representative_for): Make sure to return | |
18220 | the value number of SSA names. | |
18221 | (phi_translate_1): get_representative_for cannot return NULL. | |
18222 | (do_pre_regular_insertion): Remove redundant call to | |
18223 | fully_constant_expression. | |
18224 | (do_pre_partial_partial_insertion): Likewise. | |
18225 | ||
18226 | 2016-07-15 Bin Cheng <bin.cheng@arm.com> | |
18227 | ||
18228 | * tree-scalar-evolution.c (simple_iv_with_niters): New funcion. | |
18229 | (derive_simple_iv_with_niters): New function. | |
18230 | (simple_iv): Rewrite using simple_iv_with_niters. | |
18231 | * tree-scalar-evolution.h (simple_iv_with_niters): New decl. | |
18232 | * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New | |
18233 | function. | |
18234 | (number_of_iterations_exit): Rewrite using above function. | |
18235 | * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New | |
18236 | Decl. | |
18237 | ||
18238 | 2016-07-15 Richard Biener <rguenther@suse.de> | |
18239 | ||
18240 | * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust | |
18241 | vec_construct cost. | |
18242 | ||
18243 | 2016-07-14 Jakub Jelinek <jakub@redhat.com> | |
18244 | ||
18245 | PR tree-optimization/71872 | |
18246 | * tree-data-ref.c (get_references_in_stmt): Ignore references | |
18247 | with is_gimple_constant get_base_address. | |
18248 | ||
18249 | 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
18250 | ||
18251 | * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline. | |
18252 | (TARGET_HAVE_LDACQD): New macro. | |
18253 | * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather | |
18254 | than TARGET_HAVE_LDACQ. | |
18255 | (arm_load_acquire_exclusivedi): Likewise. | |
18256 | (arm_store_release_exclusivedi): Likewise. | |
18257 | ||
18258 | 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
18259 | ||
18260 | PR rtl-optimization/71878 | |
18261 | * lra-constraints.c (match_reload): Pass information about other | |
18262 | output operands. Create new unique register value if matching input | |
18263 | operand shares same register value as output operand being considered. | |
18264 | (curr_insn_transform): Record output operands already processed. | |
18265 | ||
18266 | 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
18267 | ||
18268 | PR target/65951 | |
18269 | PR tree-optimization/70923 | |
18270 | * tree-vect-patterns.c: Include mult-synthesis.h. | |
18271 | (target_supports_mult_synth_alg): New function. | |
18272 | (synth_lshift_by_additions): Likewise. | |
18273 | (apply_binop_and_append_stmt): Likewise. | |
18274 | (vect_synth_mult_by_constant): Likewise. | |
18275 | (target_has_vecop_for_code): Likewise. | |
18276 | (vect_recog_mult_pattern): Use above functions to synthesize vector | |
18277 | multiplication by integer constants. | |
18278 | ||
18279 | 2016-07-14 Alan Modra <amodra@gmail.com> | |
18280 | ||
18281 | * config/rs6000/altivec.md (altivec_mov<mode>): Disparage | |
18282 | gpr alternatives. Correct '*' placement on Y,r alternative. | |
18283 | Add '*' on operand 1 of r,r alternative. | |
18284 | ||
18285 | 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
18286 | ||
18287 | * expmed.c (mult_variant, choose_mult_variant): Move declaration to... | |
18288 | * expmed.h: ... Here. | |
18289 | ||
18290 | 2016-07-14 Jan Hubicka <hubicka@ucw.cz> | |
18291 | ||
18292 | * gimple.h (stmt_can_terminate_bb_p): New function. | |
18293 | * tree-cfg.c (need_fake_edge_p): Rename to ... | |
18294 | (stmt_can_terminate_bb_p): ... this; return true if stmt can | |
18295 | throw external; handle const and pure calls. | |
18296 | * tree-ssa-loop-niter.c (loop_only_exit_p): Use it. | |
18297 | ||
18298 | 2016-07-14 Richard Biener <rguenther@suse.de> | |
18299 | ||
18300 | PR tree-optimization/71866 | |
18301 | * tree-ssa-pre.c (get_constant_for_value_id): Remove. | |
18302 | (do_hoist_insertion): Avoid endless recursion when we | |
18303 | didn't insert anything because we managed to simplify | |
18304 | things down to a constant or SSA name. | |
18305 | (fully_constant_expression): Re-write in terms of ... | |
18306 | * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare. | |
18307 | * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around | |
18308 | vn_nary_build_or_lookup_1. | |
18309 | (vn_nary_build_or_lookup_1): Added flag and renamed from ... | |
18310 | (vn_nary_build_or_lookup): ... this which now wraps it. | |
18311 | ||
18312 | 2016-07-14 Alan Modra <amodra@gmail.com> | |
18313 | ||
18314 | PR target/71733 | |
18315 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal | |
18316 | with p9_vector override before power9-dform override. | |
18317 | ||
18318 | 2016-07-13 Andi Kleen <ak@linux.intel.com> | |
18319 | ||
18320 | * value-prof.c (gimple_value_profile_transformations): Don't run | |
18321 | when auto_profile is on. | |
18322 | ||
18323 | 2016-07-13 Andi Kleen <ak@linux.intel.com> | |
18324 | ||
18325 | * auto-profile.c (update_inlined_ind_target, | |
18326 | afdo_indirect_call): Print information to dump file. | |
18327 | ||
18328 | 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com> | |
18329 | ||
18330 | * genrecog.c (special_predicate_operand_p): New function. | |
18331 | (predicate_name): Move function. | |
18332 | (validate_pattern): Don't warn about missing mode for all | |
18333 | define_special_predicate predicates. | |
18334 | ||
18335 | 2016-07-13 Bin Cheng <bin.cheng@arm.com> | |
18336 | ||
18337 | * tree-vect-data-refs.c (vect_no_alias_p): New function. | |
18338 | (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to | |
18339 | resolve alias checks which are known at compilation time. | |
18340 | Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all | |
18341 | alias checks are resolved. Move dump info for too many runtime | |
18342 | alias checks to here... | |
18343 | * tree-vect-loop.c (vect_analyze_loop_2): ...From here. | |
18344 | ||
18345 | 2016-07-13 Richard Biener <rguenther@suse.de> | |
18346 | ||
18347 | PR tree-optimization/24574 | |
18348 | * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument | |
18349 | position and add shift, rotate, divison and modulo support | |
18350 | for left zero. | |
18351 | (value_replacement): Pass in argument position to absorbing_element_p. | |
18352 | ||
18353 | 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com> | |
18354 | ||
18355 | PR ipa/71633 | |
18356 | * ipa-inline-transform.c (inline_call): Support | |
18357 | instrumented thunks. | |
18358 | ||
18359 | 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
18360 | ||
18361 | * config/arm/arm.h (TARGET_HAVE_CBZ): Define. | |
18362 | (TARGET_IDIV): Set for all Thumb targets provided they have hardware | |
18363 | divide feature. | |
18364 | * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M | |
18365 | Baseline. Make initial alternative TARGET_32BIT only. | |
18366 | (udivsi3): Likewise. | |
18367 | * config/arm/thumb1.md (thumb1_cbz): New define_insn. | |
18368 | * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective | |
18369 | target. | |
18370 | ||
18371 | 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
18372 | ||
18373 | * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT. | |
18374 | * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW | |
18375 | availability with TARGET_HAVE_MOVT. | |
18376 | (thumb_legitimate_constant_p): Strip the high part of a label_ref. | |
18377 | (thumb1_rtx_costs): Also return 0 if setting a half word constant and | |
18378 | MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by | |
18379 | UINTVAL. | |
18380 | (thumb1_size_rtx_costs): Make set of half word constant also cost 1 | |
18381 | extra instruction if MOVW is available. Use a cost variable | |
18382 | incremented by COSTS_N_INSNS (1) when the condition match rather than | |
18383 | returning an arithmetic expression based on COSTS_N_INSNS. Make | |
18384 | constant with bottom half word zero cost 2 instruction if MOVW is | |
18385 | available. | |
18386 | * config/arm/arm.md (define_attr "arch"): Add v8mb. | |
18387 | (define_attr "arch_enabled"): Set to yes if arch value is v8mb and | |
18388 | target is ARMv8-M Baseline. | |
18389 | (arm_movt): New unpredicable alternative for ARMv8-M Baseline. | |
18390 | (arm_movtas_ze): Likewise. | |
18391 | * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only | |
18392 | alternative for constants satisfying j constraint. | |
18393 | (thumb1_movsi_insn): Likewise. | |
18394 | (movsi splitter for K alternative): Tighten condition to not trigger | |
18395 | if movt is available and j constraint is satisfied. | |
18396 | (Pe immediate splitter): Likewise. | |
18397 | (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for | |
18398 | constant fitting in an halfword to use MOVW. | |
18399 | * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM | |
18400 | effective target. | |
18401 | ||
18402 | 2016-07-13 Richard Biener <rguenther@suse.de> | |
18403 | ||
18404 | PR middle-end/71104 | |
18405 | * gimplify.c (gimplify_modify_expr): Gimplify the RHS before | |
18406 | gimplifying the LHS. Make sure to gimplify a returning twice | |
18407 | call LHS without using SSA names. | |
18408 | ||
18409 | 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
18410 | ||
18411 | * tree-data-ref.c (find_data_references_in_stmt): Remove | |
18412 | unnecessary call to vec::release. | |
18413 | (graphite_find_data_references_in_stmt): Likewise. | |
18414 | * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise. | |
18415 | * tree-vect-stmts.c (vectorizable_condition): Likewise. | |
18416 | ||
18417 | 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
18418 | ||
18419 | * cfgexpand.c (expand_used_vars): Make the type of a local | |
18420 | variable auto_vec. | |
18421 | * genmatch.c (lower_for): Likewise. | |
18422 | * haifa-sched.c (haifa_sched_init): Likewise. | |
18423 | (add_to_speculative_block): Likewise. | |
18424 | (create_check_block_twin): Likewise. | |
18425 | * predict.c (handle_missing_profiles): Likewise. | |
18426 | * tree-data-ref.c (loop_nest_has_data_refs): Likewise. | |
18427 | * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise. | |
18428 | * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): | |
18429 | Likewise. | |
18430 | (maybe_lower_iteration_bound): Likewise. | |
18431 | * tree-ssa-sccvn.c (DFS): Likewise. | |
18432 | * tree-stdarg.c (reachable_at_most_once): Likewise. | |
18433 | * tree-vect-stmts.c (vectorizable_conversion): Likewise. | |
18434 | (vectorizable_store): Likewise. | |
18435 | ||
18436 | 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
18437 | ||
18438 | * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove. | |
18439 | (sccvn_dom_walker): make cond_stack an auto_vec. | |
18440 | ||
18441 | 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
18442 | ||
18443 | * ree.c (struct ext_state): Make type of members auto_vec. | |
18444 | (find_and_remove_re): Adjust. | |
18445 | ||
18446 | 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
18447 | ||
18448 | * cfgexpand.c (struct stack_vars_data): Make type of fields | |
18449 | auto_vec. | |
18450 | (expand_used_vars): Adjust. | |
18451 | ||
18452 | 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
18453 | ||
18454 | * ipa.c (record_cdtor_fn): Adjust. | |
18455 | (build_cdtor_fns): Likewise. | |
18456 | (ipa_cdtor_merge): Make static_ctors and static_dtors local | |
18457 | variables. | |
18458 | ||
18459 | 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
18460 | ||
18461 | * genextract.c (struct accum_extract): Add constructor and make | |
18462 | members auto_vec. | |
18463 | (gen_insn): Adjust. | |
18464 | ||
18465 | 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
18466 | ||
18467 | * tree.c (struct free_lang_data_d): Add constructor and change | |
18468 | types of members to ones that automatically manage resources. | |
18469 | (fld_worklist_push): Adjust. | |
18470 | (find_decls_types): Likewise. | |
18471 | (find_decls_types_in_eh_region): Likewise. | |
18472 | (free_lang_data_in_cgraph): Stop manually creating and | |
18473 | destroying members of free_lang_data_d. | |
18474 | ||
18475 | 2016-07-13 Uros Bizjak <ubizjak@gmail.com> | |
18476 | ||
18477 | PR rtl-optimization/68961 | |
18478 | * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new | |
18479 | peephole variant. Use sse_reg_operand predicates. | |
18480 | ||
18481 | 2016-07-12 Uros Bizjak <ubizjak@gmail.com> | |
18482 | ||
18483 | * config/i386/predicates.md (x86_64_immediate_operand) | |
18484 | <case CONST_INT>: Remove unneeded truncation to DImode. | |
18485 | <case CONST>: Ditto. | |
18486 | (x86_64_zext_immediate_operand) <case CONST>: Ditto. | |
18487 | ||
18488 | 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com> | |
18489 | ||
18490 | PR target/71805 | |
18491 | * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): | |
18492 | The xxperm and xxpermr instructions require that the 2nd input | |
18493 | operand overlap with the output operand, and not the 1st. | |
18494 | (altivec_vperm_v8hiv16qi): Likewise. | |
18495 | (altivec_vperm_<mode>_uns_internal): Likewise. | |
18496 | (altivec_vpermr_<mode>_internal): Likewise. | |
18497 | (vperm_v8hiv4si): Likewise. | |
18498 | (vperm_v16qiv8hi): Likewise. | |
18499 | ||
18500 | 2016-07-12 Nathan Sidwell <nathan@acm.org> | |
18501 | ||
18502 | * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE | |
18503 | when -mno-pic-data-is-text-relative is in effect, by default. | |
18504 | * doc/invoke.texi (mpic-data-is-text-relative): Document new | |
18505 | behavior and clarify. | |
18506 | ||
18507 | 2016-07-12 Martin Liska <mliska@suse.cz> | |
18508 | ||
18509 | * params.def: Add avg-loop niter. | |
18510 | * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param. | |
18511 | * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise. | |
18512 | * doc/invoke.texi: Document the new parameter. | |
18513 | ||
18514 | 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
18515 | ||
18516 | PR middle-end/71700 | |
18517 | * expr.c (store_constructor): Mask sign-extended bits when widening | |
18518 | sub-word constructor element at the start of a word. | |
18519 | ||
18520 | 2016-07-12 Martin Liska <mliska@suse.cz> | |
18521 | ||
18522 | * Makefile.in: Append rule for params-options.h. | |
18523 | * params-options.h: New file. | |
18524 | ||
18525 | 2016-07-12 Martin Liska <mliska@suse.cz> | |
18526 | ||
18527 | * ira-build.c (mark_loops_for_removal): Properly iterate | |
18528 | loops. | |
18529 | ||
18530 | 2016-07-12 Steven Bosscher <steven@gcc.gnu.org> | |
18531 | Richard Biener <rguenther@suse.de> | |
18532 | ||
18533 | PR tree-optimization/23286 | |
18534 | PR tree-optimization/70159 | |
18535 | * doc/invoke.texi: Document -fcode-hoisting. | |
18536 | * common.opt (fcode-hoisting): New flag. | |
18537 | * opts.c (default_options_table): Enable -fcode-hoisting at -O2+. | |
18538 | * tree-ssa-pre.c (pre_stats): Add hoist_insert. | |
18539 | (do_regular_insertion): Rename to ... | |
18540 | (do_pre_regular_insertion): ... this and amend general comments | |
18541 | on insertion strathegy. | |
18542 | (do_partial_partial_insertion): Rename to ... | |
18543 | (do_pre_partial_partial_insertion): ... this. | |
18544 | (do_hoist_insertion): New function. | |
18545 | (insert_aux): Take flags on whether to do PRE and/or hoist insertion | |
18546 | and call do_hoist_insertion properly. | |
18547 | (insert): Adjust. | |
18548 | (pass_pre::gate): Enable also if -fcode-hoisting is enabled. | |
18549 | (pass_pre::execute): Register hoist_insert stats. | |
18550 | ||
18551 | 2016-07-12 Jakub Jelinek <jakub@redhat.com> | |
18552 | ||
18553 | PR middle-end/71716 | |
18554 | * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false | |
18555 | for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION | |
18556 | is different from mode's bitsize. Small cleanup. | |
18557 | ||
18558 | 2016-07-12 Richard Biener <rguenther@suse.de> | |
18559 | ||
18560 | PR rtl-optimization/68961 | |
18561 | * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT | |
18562 | to simplify to a non-constant. | |
18563 | ||
18564 | 2016-07-11 Jakub Jelinek <jakub@redhat.com> | |
18565 | ||
18566 | PR middle-end/71758 | |
18567 | * omp-low.c (expand_omp_target): Gimplify device. | |
18568 | ||
18569 | PR tree-optimization/71823 | |
18570 | * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs | |
18571 | to get vec_oprnds2 from op2. | |
18572 | ||
18573 | 2016-07-11 Uros Bizjak <ubizjak@gmail.com> | |
18574 | ||
18575 | * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>: | |
18576 | Hoist common subexpressions. | |
18577 | (x86_64_zext_immediate_operand) <case CONST>: Ditto. | |
18578 | ||
18579 | 2016-07-11 Pat Haugen <pthaugen@us.ibm.com> | |
18580 | ||
18581 | PR target/71800 | |
18582 | * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to | |
18583 | prevent generation of 'stxsiwx' on pre Power8 hardware. | |
18584 | ||
18585 | 2016-07-11 David Malcolm <dmalcolm@redhat.com> | |
18586 | ||
18587 | * input.c: Include cpplib.h. | |
18588 | (selftest::temp_source_file): New class. | |
18589 | (selftest::temp_source_file::temp_source_file): New ctor. | |
18590 | (selftest::temp_source_file::~temp_source_file): New dtor. | |
18591 | (selftest::should_have_column_data_p): New function. | |
18592 | (selftest::test_should_have_column_data_p): New function. | |
18593 | (selftest::temp_line_table): New class. | |
18594 | (selftest::temp_line_table::temp_line_table): New ctor. | |
18595 | (selftest::temp_line_table::~temp_line_table): New dtor. | |
18596 | (selftest::test_accessing_ordinary_linemaps): Add case_ param; use | |
18597 | it to create a temp_line_table. | |
18598 | (selftest::assert_loceq): Only verify LOCATION_COLUMN for | |
18599 | locations that are known to have column data. | |
18600 | (selftest::line_table_case): New struct. | |
18601 | (selftest::test_reading_source_line): Move tempfile handling | |
18602 | to class temp_source_file. | |
18603 | (ASSERT_TOKEN_AS_TEXT_EQ): New macro. | |
18604 | (selftest::assert_token_loc_eq): New function. | |
18605 | (ASSERT_TOKEN_LOC_EQ): New macro. | |
18606 | (selftest::test_lexer): New function. | |
18607 | (selftest::boundary_locations): New array. | |
18608 | (selftest::input_c_tests): Call test_should_have_column_data_p. | |
18609 | Loop over a test matrix of interesting values of location and | |
18610 | default_range_bits, calling test_lexer on each case in the matrix. | |
18611 | Move call to test_accessing_ordinary_linemaps into the matrix. | |
18612 | * selftest.h (ASSERT_EQ): Reimplement in terms of... | |
18613 | (ASSERT_EQ_AT): New macro. | |
18614 | ||
18615 | 2016-07-11 H.J. Lu <hongjiu.lu@intel.com> | |
18616 | ||
18617 | PR target/71801 | |
18618 | * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses): | |
18619 | Don't convert TImode in debug insn. | |
18620 | ||
18621 | 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
18622 | ||
18623 | Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG. | |
18624 | * tree-core.h (tree_base::nothrow_flag): Adjust comment. | |
18625 | (tree_type_common::lang_flag_7): New. | |
18626 | (tree_type_common::spare): Reduce size. | |
18627 | * tree.h (TYPE_ALIGN_OK): Remove. | |
18628 | (TYPE_LANG_FLAG_7): New. | |
18629 | (get_inner_reference): Adjust header. | |
18630 | * print-tree.c (print_node): Adjust. | |
18631 | * expr.c (get_inner_reference): Remove parameter keep_aligning. | |
18632 | (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust | |
18633 | calls to get_inner_reference. | |
18634 | (expand_expr_real_1): Adjust call to get_inner_reference. Remove | |
18635 | handling of TYPE_ALIGN_OK. | |
18636 | * builtins.c (get_object_alignment_2): Adjust call to | |
18637 | get_inner_reference. Remove handling of VIEW_CONVERT_EXPR. | |
18638 | * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of | |
18639 | TYPE_ALIGN_OK. | |
18640 | * asan.c (instrument_derefs): Adjust calls to get_inner_reference. | |
18641 | * cfgexpand.c (expand_debug_expr): Likewise. | |
18642 | * dbxout.c (dbxout_expand_expr): Likewise. | |
18643 | * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref, | |
18644 | loc_list_from_tree, fortran_common): Likewise. | |
18645 | * fold-const.c (optimize_bit_field_compare, | |
18646 | decode_field_reference, fold_unary_loc, fold_comparison, | |
18647 | split_address_to_core_and_offset): Likewise. | |
18648 | * gimple-laddress.c (execute): Likewise. | |
18649 | * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise. | |
18650 | * gimplify.c (gimplify_scan_omp_clauses): Likewise. | |
18651 | * hsa-gen.c (gen_hsa_addr): Likewise. | |
18652 | * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise. | |
18653 | * tsan.c (instrument_expr): Likewise. | |
18654 | * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise. | |
18655 | * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK. | |
18656 | * tree-affine.c (tree_to_aff_combination, | |
18657 | get_inner_reference_aff): Adjust calls to get_inner_reference. | |
18658 | * tree-data-ref.c (split_constant_offset_1, | |
18659 | dr_analyze_innermost): Likewise. | |
18660 | * tree-scalar-evolution.c (interpret_rhs_expr): Likewise. | |
18661 | * tree-sra.c (ipa_sra_check_caller): Likewise. | |
18662 | * tree-ssa-loop-ivopts.c (split_address_cost): Likewise. | |
18663 | * tree-ssa-math-opts.c (find_bswap_or_nop_load, | |
18664 | bswap_replace): Likewise. | |
18665 | * tree-vect-data-refs.c (vect_check_gather, | |
18666 | vect_analyze_data_refs): Likewise. | |
18667 | * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise. | |
18668 | * config/pa/pa.c (pa_emit_move_sequence): Remove handling of | |
18669 | TYPE_ALIGN_OK. | |
18670 | ||
18671 | 2016-07-11 David Malcolm <dmalcolm@redhat.com> | |
18672 | ||
18673 | * Makefile.in (selftest-valgrind): New phony target. | |
18674 | * function-tests.c (selftest::build_cfg): Delete pass instances | |
18675 | created by the test. | |
18676 | (selftest::convert_to_ssa): Likewise. | |
18677 | (selftest::test_expansion_to_rtl): Likewise. | |
18678 | * tree-cfg.c (selftest::test_linear_chain): Release dominator | |
18679 | vectors. | |
18680 | (selftest::test_diamond): Likewise. | |
18681 | ||
18682 | 2016-07-11 Richard Biener <rguenther@suse.de> | |
18683 | ||
18684 | PR tree-optimization/71816 | |
18685 | * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather | |
18686 | than replacing all of its operands. | |
18687 | ||
18688 | 2016-07-11 Alan Modra <amodra@gmail.com> | |
18689 | ||
18690 | * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec. | |
18691 | (ctr<mode>): Add unspec. | |
18692 | (ctr<mode>_internal*): Likewise. | |
18693 | ||
18694 | 2016-07-08 James Bowman <james.bowman@ftdichip.com> | |
18695 | ||
18696 | * config/ft32/ft32.c (ft32_elf_encode_section_info): New function. | |
18697 | * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function. | |
18698 | ||
18699 | 2016-07-08 Vladimir Makarov <vmakarov@redhat.com> | |
18700 | ||
18701 | PR rtl-optimization/71621 | |
18702 | * lra-constraints.c (process_alt_operands): Check combination of | |
18703 | reg class and mode. | |
18704 | ||
18705 | 2016-07-08 Jason Merrill <jason@redhat.com> | |
18706 | Richard Biener <rguenther@suse.de> | |
18707 | ||
18708 | P0145: Refining Expression Order for C++. | |
18709 | * gimplify.c (initial_rhs_predicate_for): New. | |
18710 | (gimplfy_modify_expr): Gimplify RHS before LHS. | |
18711 | ||
18712 | 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
18713 | ||
18714 | PR target/71297 | |
18715 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
18716 | Allow standard error handling to take over when a wrong number | |
18717 | of arguments is presented to __builtin_vec_ld () or | |
18718 | __builtin_vec_st (). | |
18719 | ||
18720 | 2016-07-08 Jiong Wang <jiong.wang@arm.com> | |
18721 | ||
18722 | * config/aarch64/aarch64-simd-builtins.def (smax): Remove float | |
18723 | variants. | |
18724 | (smin): Likewise. | |
18725 | (fmax): New entry. | |
18726 | (fmin): Likewise. | |
18727 | * config/aarch64/arm_neon.h (vmaxnm_f32): Use | |
18728 | __builtin_aarch64_fmaxv2sf. | |
18729 | (vmaxnmq_f32): Likewise. | |
18730 | (vmaxnmq_f64): Likewise. | |
18731 | (vminnm_f32): Likewise. | |
18732 | (vminnmq_f32): Likewise. | |
18733 | (vminnmq_f64): Likewise. | |
18734 | ||
18735 | 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com> | |
18736 | ||
18737 | PR target/71806 | |
18738 | * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not | |
18739 | enable -mfloat128-hardware by default. | |
18740 | (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options | |
18741 | that IEEE 128-bit hardware support needs. | |
18742 | * config/rs6000/rs6000.c (rs6000_option_override_internal): If | |
18743 | -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default. | |
18744 | Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit | |
18745 | floating point requires. | |
18746 | * doc/invoke.texi (RS/6000 and PowerPC Options): Document | |
18747 | -mfloat128 and -mfloat128-hardware changes. | |
18748 | ||
18749 | 2016-07-08 Alan Hayward <alan.hayward@arm.com> | |
18750 | ||
18751 | PR tree-optimization/71667 | |
18752 | * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts | |
18753 | ||
18754 | 2016-07-08 Martin Liska <mliska@suse.cz> | |
18755 | ||
18756 | PR middle-end/71606 | |
18757 | * fold-const.c (fold_convertible_p): As COMPLEX_TYPE | |
18758 | folding produces SAVE_EXPRs, thus return false for the type. | |
18759 | ||
18760 | 2016-07-07 Martin Liska <mliska@suse.cz> | |
18761 | ||
18762 | * file-find.c (remove_prefix): New function. | |
18763 | * file-find.h (remove_prefix): Declare the function. | |
18764 | * gcc-ar.c (main): Skip a folder of the wrapper if | |
18765 | a wrapped binary would point to the same file. | |
18766 | ||
18767 | 2016-07-07 Jan Hubicka <jh@suse.cz> | |
18768 | ||
18769 | * tree-scalar-evolution.c (iv_can_overflow_p): export. | |
18770 | * tree-scalar-evolution.h (iv_can_overflow_p): Declare. | |
18771 | * tree-ssa-loop-ivopts.c (alloc_iv): Use it. | |
18772 | ||
18773 | 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com> | |
18774 | ||
18775 | PR ipa/71624 | |
18776 | * ipa-inline-analysis.c (compute_inline_parameters): Set | |
18777 | local.can_change_signature to false for intrumentation | |
18778 | thunk callees. | |
18779 | ||
18780 | 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
18781 | ||
18782 | * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability | |
18783 | with TARGET_HAVE_MOVT. | |
18784 | (TARGET_HAVE_MOVT): Define. | |
18785 | * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW | |
18786 | availability with TARGET_HAVE_MOVT. | |
18787 | * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT | |
18788 | availability. | |
18789 | (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than | |
18790 | TARGET_THUMB2. | |
18791 | (symbol_refs movsi splitter): Remove TARGET_32BIT check. | |
18792 | (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability. | |
18793 | * config/arm/constraints.md (define_constraint "j"): Use | |
18794 | TARGET_HAVE_MOVT to check MOVT availability. | |
18795 | ||
18796 | 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
18797 | ||
18798 | * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions. | |
18799 | ||
18800 | 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
18801 | ||
18802 | * config/arm/arm-arches.def (armv8-m.base): Define new architecture. | |
18803 | (armv8-m.main): Likewise. | |
18804 | (armv8-m.main+dsp): Likewise. | |
18805 | * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define. | |
18806 | (FL_FOR_ARCH8M_MAIN): Likewise. | |
18807 | * config/arm/arm-tables.opt: Regenerate. | |
18808 | * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and | |
18809 | armv8-m.main+dsp to BE8_LINK_SPEC. | |
18810 | * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M. | |
18811 | (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN. | |
18812 | * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M | |
18813 | Baseline and Mainline. | |
18814 | (arm_option_override_internal): Also disable arm_restrict_it when | |
18815 | !arm_arch_notm. Update comment for -munaligned-access to also cover | |
18816 | ARMv8-M Baseline. | |
18817 | (arm_file_start): Increase buffer size for printing architecture name. | |
18818 | * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main | |
18819 | and armv8-m.main+dsp. | |
18820 | (mno-unaligned-access): Clarify that this is disabled by default for | |
18821 | ARMv8-M Baseline architectures as well. | |
18822 | ||
18823 | 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
18824 | ||
18825 | * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to | |
18826 | decide whether to prevent some libgcc routines being included for some | |
18827 | multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the | |
18828 | link between this condition and the one in | |
18829 | libgcc/config/arm/lib1func.S. | |
18830 | ||
18831 | 2016-07-07 Richard Biener <rguenther@suse.de> | |
18832 | ||
18833 | * tree-ssa-pre.c: Include alias.h. | |
18834 | (compute_avail): If we have multiple VN_REFERENCEs with the | |
18835 | same hashtable entry adjust that to make it a valid replacement | |
18836 | for all of them with respect to alignment and aliasing | |
18837 | when doing insertion. | |
18838 | * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare. | |
18839 | * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function. | |
18840 | ||
18841 | 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org> | |
18842 | ||
18843 | PR target/70098 | |
18844 | PR target/71763 | |
18845 | * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2, | |
18846 | *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output | |
18847 | constraint. | |
18848 | ||
18849 | 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
18850 | ||
18851 | * var-tracking.c (struct adjust_mem_data): Make side_effects a vector. | |
18852 | (adjust_mems): Adjust. | |
18853 | (adjust_insn): Likewise. | |
18854 | (prepare_call_arguments): Likewise. | |
18855 | ||
18856 | 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
18857 | ||
18858 | * gcse.c (struct ls_expr): Make stores field a vector. | |
18859 | (ldst_entry): Adjust. | |
18860 | (free_ldst_entry): Likewise. | |
18861 | (print_ldst_list): Likewise. | |
18862 | (compute_ld_motion_mems): Likewise. | |
18863 | (update_ld_motion_stores): Likewise. | |
18864 | ||
18865 | 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
18866 | ||
18867 | * gcse.c (struct ls_expr): Remove loads field. | |
18868 | (ldst_entry): Adjust. | |
18869 | (free_ldst_entry): Likewise. | |
18870 | (print_ldst_list): Likewise. | |
18871 | (compute_ld_motion_mems): Likewise. | |
18872 | ||
18873 | 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
18874 | ||
18875 | * store-motion.c (struct st_expr): Make antic_stores a vector. | |
18876 | (st_expr_entry): Adjust. | |
18877 | (free_st_expr_entry): Likewise. | |
18878 | (print_store_motion_mems): Likewise. | |
18879 | (find_moveable_store): Likewise. | |
18880 | (compute_store_table): Likewise. | |
18881 | (remove_reachable_equiv_notes): Likewise. | |
18882 | (replace_store_insn): Likewise. | |
18883 | (build_store_vectors): Likewise. | |
18884 | ||
18885 | 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
18886 | ||
18887 | * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32, | |
18888 | cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73. | |
18889 | ||
18890 | 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com> | |
18891 | ||
18892 | PR tree-optimization/71518 | |
18893 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust | |
18894 | misalign also for outer loops with negative step. | |
18895 | ||
18896 | 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com> | |
18897 | ||
18898 | * config/arm/cortex-a53.md: Use final_presence_set for in-order. | |
18899 | (cortex_a53_shift): Add mov_shift. | |
18900 | (cortex_a53_shift_reg): Add new reservation for register shifts. | |
18901 | (cortex_a53_alu): Remove bfm. | |
18902 | (cortex_a53_alu_shift): Add bfm, remove mov_shift. | |
18903 | (cortex_a53_alu_extr): Add new reservation for EXTR. | |
18904 | (bypasses): Improve bypass modelling. | |
18905 | ||
18906 | 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> | |
18907 | ||
18908 | PR target/50739 | |
18909 | * config/avr/avr.c (avr_asm_select_section): Strip off | |
18910 | SECTION_DECLARED from flags when calling get_section. | |
18911 | ||
18912 | 2016-07-06 Richard Sandiford <richard.sandiford@arm.com> | |
18913 | ||
18914 | * tree-vectorizer.h (vect_memory_access_type): Add | |
18915 | VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED. | |
18916 | * tree-vect-stmts.c (compare_step_with_zero): New function. | |
18917 | (perm_mask_for_reverse): Move further up file. | |
18918 | (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the | |
18919 | step is negative. | |
18920 | (get_negative_load_store_type): New function. | |
18921 | (get_load_store_type): Call it. Add an ncopies argument. | |
18922 | (vectorizable_mask_load_store): Update call accordingly and | |
18923 | remove tests for negative steps. | |
18924 | (vectorizable_store, vectorizable_load): Likewise. Handle new | |
18925 | memory_access_types. | |
18926 | ||
18927 | 2016-07-06 Richard Sandiford <richard.sandiford@arm.com> | |
18928 | ||
18929 | * tree-vectorizer.h (vect_memory_access_type): New enum. | |
18930 | (_stmt_vec_info): Add a memory_access_type field. | |
18931 | (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro. | |
18932 | (vect_model_store_cost): Take an access type instead of a boolean. | |
18933 | (vect_model_load_cost): Likewise. | |
18934 | * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to | |
18935 | vect_model_store_cost and vect_model_load_cost. | |
18936 | * tree-vect-stmts.c (vec_load_store_type): New enum. | |
18937 | (vect_model_store_cost): Take an access type instead of a | |
18938 | store_lanes_p boolean. Simplify tests. | |
18939 | (vect_model_load_cost): Likewise, but for load_lanes_p. | |
18940 | (get_group_load_store_type, get_load_store_type): New functions. | |
18941 | (vectorizable_store): Use get_load_store_type. Record the access | |
18942 | type in STMT_VINFO_MEMORY_ACCESS_TYPE. | |
18943 | (vectorizable_load): Likewise. | |
18944 | (vectorizable_mask_load_store): Likewise. Replace is_store | |
18945 | variable with vls_type. | |
18946 | ||
18947 | 2016-07-06 Richard Sandiford <richard.sandiford@arm.com> | |
18948 | ||
18949 | * tree-vectorizer.h (vect_grouped_load_supported): Add a | |
18950 | single_element_p parameter. | |
18951 | * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise. | |
18952 | Check the PR65518 case here rather than in vectorizable_load. | |
18953 | * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly. | |
18954 | * tree-vect-stmts.c (vectorizable_load): Likewise. | |
18955 | ||
18956 | 2016-07-06 Richard Sandiford <richard.sandiford@arm.com> | |
18957 | ||
18958 | * tree-vectorizer.h (gather_scatter_info): New structure. | |
18959 | (vect_check_gather_scatter): Return a bool rather than a decl. | |
18960 | Replace return-by-pointer arguments with a single | |
18961 | gather_scatter_info *. | |
18962 | * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise. | |
18963 | (vect_analyze_data_refs): Update call accordingly. | |
18964 | * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise. | |
18965 | (vectorizable_mask_load_store): Likewise. Also record the | |
18966 | offset dt and vectype in the gather_scatter_info. | |
18967 | (vectorizable_store): Likewise. | |
18968 | (vectorizable_load): Likewise. | |
18969 | ||
18970 | 2016-07-06 Richard Sandiford <richard.sandiford@arm.com> | |
18971 | ||
18972 | * tree-vect-stmts.c (vect_model_store_cost): For non-SLP | |
18973 | strided groups, use the cost of N scalar accesses instead | |
18974 | of ncopies vector accesses. | |
18975 | (vect_model_load_cost): Likewise. | |
18976 | ||
18977 | 2016-07-06 Richard Sandiford <richard.sandiford@arm.com> | |
18978 | ||
18979 | * tree-vect-stmts.c (vect_cost_group_size): Delete. | |
18980 | (vect_model_store_cost): Avoid calling it. Use first_stmt_p | |
18981 | variable to indicate when once-per-group costs are being used. | |
18982 | (vect_model_load_cost): Likewise. Fix comment and misindented code. | |
18983 | ||
18984 | 2016-07-06 Richard Sandiford <richard.sandiford@arm.com> | |
18985 | ||
18986 | * tree-vect-stmts.c (vectorizable_load): Remove unnecessary | |
18987 | peeling-for-gaps condition. | |
18988 | ||
18989 | 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
18990 | ||
18991 | * config/s390/s390.c (s390_expand_vec_init): Force initializer | |
18992 | element to register if it doesn't match general_operand. | |
18993 | ||
18994 | 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com> | |
18995 | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
18996 | ||
18997 | * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New | |
18998 | prototype. | |
18999 | * config/rs6000/rs6000.c (rs6000_split_signbit): New function. | |
19000 | * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant. | |
19001 | (SIGNBIT): New mode iterator. | |
19002 | (Fsignbit): New mode attribute. | |
19003 | (signbit<mode>2): Change operand1 to match FLOAT128 instead of | |
19004 | IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128 | |
19005 | when direct moves are available. | |
19006 | (signbit<mode>2_dm): New define_insn_and_split). | |
19007 | (signbit<mode>2_dm2): New define_insn. | |
19008 | ||
19009 | 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
19010 | ||
19011 | PR rtl-optimization/71594 | |
19012 | * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val | |
19013 | into subregs of appropriate mode before trying to emit a conditional | |
19014 | move. | |
19015 | ||
19016 | 2016-07-05 Jan Hubicka <jh@suse.cz> | |
19017 | ||
19018 | * tree-scalar-evolution.c (iv_can_overflow_p): New function. | |
19019 | (simple_iv): Use it. | |
19020 | ||
19021 | 2016-07-05 Jan Hubicka <jh@suse.cz> | |
19022 | ||
19023 | * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P. | |
19024 | ||
19025 | 2016-07-05 Jiong Wang <jiong.wang@arm.com> | |
19026 | ||
19027 | * lra-constraints.c (process_alt_operands): Don't add spilling cost for | |
19028 | "offmemok". | |
19029 | ||
19030 | 2016-07-05 Jan Hubicka <jh@suse.cz> | |
19031 | ||
19032 | * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if | |
19033 | IV can overflow. | |
19034 | ||
19035 | 2016-07-05 Richard Biener <rguenther@suse.de> | |
19036 | ||
19037 | * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa): | |
19038 | Handle empty else block. | |
19039 | (is_feasible_trace): Likewise. | |
19040 | (split_paths): Likewise. | |
19041 | ||
19042 | 2016-07-05 Richard Biener <rguenther@suse.de> | |
19043 | ||
19044 | * tree-loop-distribution.c (distribute_loop): Fix issue with | |
19045 | the cost model loop. | |
19046 | ||
19047 | 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org> | |
19048 | ||
19049 | * config/arm/neon-testgen.ml: Delete. | |
19050 | * config/arm/neon.ml: Delete. | |
19051 | ||
19052 | 2016-07-04 Jakub Jelinek <jakub@redhat.com> | |
19053 | ||
19054 | PR c++/71739 | |
19055 | * tree.c (attribute_value_equal): Use get_attribute_name instead of | |
19056 | directly using TREE_PURPOSE. | |
19057 | ||
19058 | 2016-07-04 Jiong Wang <jiong.wang@arm.com> | |
19059 | ||
19060 | * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A". | |
19061 | * config/aarch64/aarch64_neon.h: Likewise. | |
19062 | * config/aarch64/arm_neon.h: Likewise. | |
19063 | * config/aarch64/atomics.md: Likewise. | |
19064 | * config/aarch64/aarch64-simd-builtins.def: Likewise. | |
19065 | * doc/invoke.texi: Likewise. | |
19066 | ||
19067 | 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
19068 | ||
19069 | * config/s390/s390.md: Add "z13" cpu_facility. | |
19070 | ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi. | |
19071 | * config/s390/predicates.md ("loc_operand"): New predicate for "load on | |
19072 | condition" type instructions. | |
19073 | ||
19074 | 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
19075 | Jeff Law <law@redhat.com> | |
19076 | ||
19077 | * explow.c (allocate_dynamic_stack_space): Simplify knowing that | |
19078 | MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT. | |
19079 | ||
19080 | 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com> | |
19081 | ||
19082 | * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand | |
19083 | permutation for TARGET_AVX512F. | |
19084 | (ix86_expand_vec_one_operand_perm_avx512): New function. | |
19085 | (expand_vec_perm_1): Invoke introduced function. | |
19086 | * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since | |
19087 | it may be not valid after vectorization. | |
19088 | ||
19089 | 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
19090 | ||
19091 | PR target/63874 | |
19092 | * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix | |
19093 | typo in comment. Only force to memory if it is a weak | |
19094 | external reference. | |
19095 | ||
19096 | 2016-07-04 Matthew Wahab <matthew.wahab@arm.com> | |
19097 | Jiong Wang <jiong.wang@arm.com> | |
19098 | ||
19099 | * config/aarch64/aarch64-arches.def: Add "armv8.2-a". | |
19100 | * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New. | |
19101 | (AARCH64_FL_F16): New. | |
19102 | (AARCH64_FL_FOR_ARCH8_2): New. | |
19103 | (AARCH64_ISA_8_2): New. | |
19104 | (AARCH64_ISA_F16): New. | |
19105 | (TARGET_FP_F16INST): New. | |
19106 | (TARGET_SIMD_F16INST): New. | |
19107 | * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry. | |
19108 | ("fp"): Disabling "fp" also disables "fp16". | |
19109 | * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins): | |
19110 | Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC | |
19111 | and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC. | |
19112 | * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16". | |
19113 | ||
19114 | 2016-07-04 Jan Beulich <jbeulich@suse.com> | |
19115 | ||
19116 | * gcc.c (default_compilers["@c-header"]): Conditionalize "-o". | |
19117 | ||
19118 | 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com> | |
19119 | ||
19120 | PR target/71720 | |
19121 | * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting | |
19122 | the insns, use an insn form that does not adjust the offset on | |
19123 | little endian systems. | |
19124 | ||
19125 | 2016-07-01 Jan Beulich <jbeulich@suse.com> | |
19126 | ||
19127 | * varasm.c (get_variable_section): Validate initializer in | |
19128 | named .bss-like sections. | |
19129 | ||
19130 | 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
19131 | ||
19132 | * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal): | |
19133 | Exchange the order of the second and third operands in the vpermr | |
19134 | instruction tmeplate. | |
19135 | ||
19136 | 2016-07-01 Peter Bergner <bergner@vnet.ibm.com> | |
19137 | ||
19138 | PR target/71698 | |
19139 | * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move): | |
19140 | Disallow TDmode values. | |
19141 | ||
19142 | 2016-07-01 Alan Modra <amodra@gmail.com> | |
19143 | ||
19144 | PR rtl-optimization/71709 | |
19145 | * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg | |
19146 | being set, not referenced. | |
19147 | ||
19148 | 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com> | |
19149 | ||
19150 | PR tree-optimization/70729 | |
19151 | * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field | |
19152 | of loop since it can be not valid after transformation. | |
19153 | ||
19154 | 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
19155 | ||
19156 | * config/arm/arm.c (thumb_reload_in_hi): Delete. | |
19157 | * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype. | |
19158 | ||
19159 | 2016-07-01 Eric Botcazou <ebotcazou@adacore.com> | |
19160 | ||
19161 | * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check | |
19162 | for NULL decl. | |
19163 | ||
19164 | 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com> | |
19165 | ||
19166 | PR target/71677 | |
19167 | * config/rs6000/constraints.md (wY constraint): New constraint to | |
19168 | match the requirements for the LXSD and STXSD instructions. | |
19169 | * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New | |
19170 | predicate to match the requirements for the LXSD and STXSD | |
19171 | instructions. | |
19172 | * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case): | |
19173 | Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y' | |
19174 | to make sure that the bottom 2 bits of offset are 0, the address | |
19175 | form is offsettable, and no updating is done in the address mode. | |
19176 | (mov<mode>_hardfloat64, FMOVE64 case): Likewise. | |
19177 | (movdi_internal32): Likewise | |
19178 | (movdi_internal64): Likewise. | |
19179 | ||
19180 | 2016-06-30 Jakub Jelinek <jakub@redhat.com> | |
19181 | ||
19182 | PR tree-optimization/71707 | |
19183 | * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present | |
19184 | strinfo even for ADDR_EXPR ptr. | |
19185 | ||
19186 | 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
19187 | ||
19188 | * config/rs6000/altivec.md (darn_32): Change the condition to | |
19189 | TARGET_P9_MISC instead of TARGET_MODULO. | |
19190 | (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the | |
19191 | condition expression. | |
19192 | (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the | |
19193 | condition expression. | |
19194 | * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant. | |
19195 | (DFP_TEST): New code iterator. | |
19196 | (dfptstsfi_<code>_mode>): New define_expand. | |
19197 | (*dfp_sgnfcnc_<mode>): New define_insn. | |
19198 | * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro | |
19199 | definition next to BU_P9_MISC_1 definition and change the MASK | |
19200 | value to RS6000_BTM_P9_MISC. | |
19201 | (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC. | |
19202 | (BU_P9_64BIT_MISC_0): Likewise. | |
19203 | (BU_P9_DFP_MISC_0): New macro definition. | |
19204 | (BU_P9_DFP_MISC_1): New macro definition. | |
19205 | (BU_P9_DFP_MISC_2): New macro definition. | |
19206 | (BU_P9_DFP_OVERLOAD_1): New macro definition. | |
19207 | (BU_P9_DFP_OVERLOAD_2): New macro definition. | |
19208 | (BU_P9_DFP_OVERLOAD_3): New macro definition. | |
19209 | (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2. | |
19210 | (TSTSFI_LT_TD): Likewise. | |
19211 | (TSTSFI_EQ_DD): Likewise. | |
19212 | (TSTSFI_EQ_TD): Likewise. | |
19213 | (TSTSFI_GT_DD): Likewise. | |
19214 | (TSTSFI_GT_TD): Likewise. | |
19215 | (TSTSFI_OV_DD): Likewise. | |
19216 | (TSTSFI_OV_TD): Likewise. | |
19217 | (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2. | |
19218 | (TSTSFI_LT_DD): Likewise. | |
19219 | (TSTSFI_LT_TD): Likewise. | |
19220 | (TSTSFI_EQ): Likewise. | |
19221 | (TSTSFI_EQ_DD): Likewise. | |
19222 | (TSTSFI_EQ_TD): Likewise. | |
19223 | (TSTSFI_GT): Likewise. | |
19224 | (TSTSFI_GT_DD): Likewise. | |
19225 | (TSTSFI_GT_TD): Likewise. | |
19226 | (TSTSFI_OV): Likewise. | |
19227 | (TSTSFI_OV_DD): Likewise. | |
19228 | (TSTSFI_OV_TD): Likewise. | |
19229 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
19230 | overloaded test significance functions. | |
19231 | * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add | |
19232 | OPTION_MASK_P9_MISC into the representation of this mask. | |
19233 | (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation | |
19234 | of this mask. | |
19235 | * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the | |
19236 | RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is | |
19237 | non-zero. | |
19238 | (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp | |
19239 | argument is a 6-bit unsigned literal value if the icode argument | |
19240 | represents a DFP test significance built-in call. | |
19241 | (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC | |
19242 | flag used independently and in combination with the | |
19243 | RS6000_BTM_64BIT flag. | |
19244 | (rs6000_opt_masks): Add entry for power9-misc command-line option. | |
19245 | (rs6000_builtin_mask_names): Add entry for power9-misc | |
19246 | command-line option. | |
19247 | * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if | |
19248 | HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and | |
19249 | RS6000_BTM_P9_MISC macros. | |
19250 | * config/rs6000/rs6000.opt: Add support for the -mpower9-misc | |
19251 | option and change the description of the -mpower9-vector option to | |
19252 | enable only vector instructions, removing its erroneously claimed | |
19253 | support for scalar instructions. | |
19254 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document | |
19255 | the ISA 3.0 digital floating point test significance built-in | |
19256 | functions. | |
19257 | ||
19258 | 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com> | |
19259 | ||
19260 | * config/aarch64/aarch64.c (cortexa35_tunings): | |
19261 | Enable AES fusion. Use cortexa57_branch_cost. | |
19262 | (cortexa53_tunings): Use cortexa57_branch_cost. | |
19263 | (cortexa72_tunings): Use cortexa57_branch_cost. | |
19264 | Use AUTOPREFETCHER_WEAK. | |
19265 | (cortexa73_tunings): Use cortexa57_branch_cost. | |
19266 | ||
19267 | 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
19268 | James Greenhalgh <james.greenhalgh@arm.com> | |
19269 | ||
19270 | * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64, | |
19271 | vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16, | |
19272 | vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16, | |
19273 | vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C. | |
19274 | (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16, | |
19275 | vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64, | |
19276 | vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64, | |
19277 | vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16, | |
19278 | vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64, | |
19279 | vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64, | |
19280 | vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16, | |
19281 | vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64, | |
19282 | vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64): | |
19283 | New intrinsics. | |
19284 | ||
19285 | 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com> | |
19286 | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
19287 | ||
19288 | * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>): | |
19289 | New define_insn. | |
19290 | (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise. | |
19291 | ||
19292 | 2016-06-30 David Malcolm <dmalcolm@redhat.com> | |
19293 | ||
19294 | PR driver/71651 | |
19295 | * gcc.c (driver::build_option_suggestions): Pass "option" to | |
19296 | add_misspelling_candidates. | |
19297 | * opts-common.c (add_misspelling_candidates): Add "option" param; | |
19298 | use it to avoid adding negated forms for options marked with | |
19299 | RejectNegative. | |
19300 | * opts.h (add_misspelling_candidates): Add "option" param. | |
19301 | ||
19302 | 2016-06-30 Jakub Jelinek <jakub@redhat.com> | |
19303 | ||
19304 | PR middle-end/71693 | |
19305 | * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast | |
19306 | TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type | |
19307 | first when permuting bitwise operation with rotate. Cast | |
19308 | TREE_OPERAND (arg0, 0) to type when cancelling two rotations. | |
19309 | ||
19310 | 2016-06-29 David Malcolm <dmalcolm@redhat.com> | |
19311 | ||
19312 | * opts.c (handle_param): Use find_param_fuzzy to offer suggestions | |
19313 | for misspelled param names. | |
19314 | * params.c: Include spellcheck.h. | |
19315 | (find_param_fuzzy): New function. | |
19316 | * params.h (find_param_fuzzy): New prototype. | |
19317 | * spellcheck.c (struct edit_distance_traits<const char *>): Move to... | |
19318 | * spellcheck.h (struct edit_distance_traits<const char *>): | |
19319 | ...here. | |
19320 | ||
19321 | 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com> | |
19322 | ||
19323 | * config/rs6000/predicates.md (const_0_to_7_operand): New | |
19324 | predicate, recognize 0..7. | |
19325 | * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add | |
19326 | support for doing extracts from V16QImode, V8HImode, V4SImode | |
19327 | under ISA 3.0. | |
19328 | * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0 | |
19329 | vector extract support. | |
19330 | (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number | |
19331 | for ISA 3.0 vector extract. | |
19332 | (VSX_EX): Constraints to use for ISA 3.0 vector extract. | |
19333 | (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing | |
19334 | extracts of a constant element number from small integer vectors | |
19335 | on 64-bit ISA 3.0 systems. | |
19336 | (vsx_extract_<mode>_di): Likewise. | |
19337 | * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to | |
19338 | say when we can do ISA 3.0 vector extracts. | |
19339 | * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec | |
19340 | registers, using the stxsiwx instruction. | |
19341 | ||
19342 | 2016-06-29 Jim Wilson <jim.wilson@linaro.org> | |
19343 | ||
19344 | * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning. | |
19345 | * config/aarch64/aarch64.c (qdf24xx_addrcost_table, | |
19346 | qdf24xx_regmove_cost, qdf24xx_tunings): New. | |
19347 | * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New. | |
19348 | * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning. | |
19349 | * config/arm/arm.c (arm_qdf24xx_tune): New. | |
19350 | ||
19351 | 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com> | |
19352 | ||
19353 | * config/aarch64/aarch64.c (cortexa53_tunings): | |
19354 | Increase loop alignment to 8. Set function alignment to 16. | |
19355 | (cortexa35_tunings): Likewise. | |
19356 | (cortexa57_tunings): Increase loop alignment to 8. | |
19357 | (cortexa72_tunings): Likewise. | |
19358 | (cortexa73_tunings): Likewise. | |
19359 | ||
19360 | 2016-06-29 Matthew Wahab <matthew.wahab@arm.com> | |
19361 | ||
19362 | * doc/sourcebuild.texi (Effective-Target keywords): Add entries | |
19363 | for arm_fp16_ok and arm_fp16_hw. | |
19364 | (Add Options): Add entries for arm_fp16, arm_fp16_ieee and | |
19365 | arm_fp16_alternative. | |
19366 | ||
19367 | 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com> | |
19368 | ||
19369 | PR tree-optimization/71655 | |
19370 | * tree-vect-stmts.c (vectorizable_comparison): Swap definition | |
19371 | types when swapping operands. | |
19372 | ||
19373 | 2016-06-29 Martin Liska <mliska@suse.cz> | |
19374 | ||
19375 | PR middle-end/71585 | |
19376 | * common.opt (flag_stack_protect): Mark the flag as optimization flag. | |
19377 | * ipa-inline-transform.c (inline_call): Remove unnecessary call | |
19378 | of build_optimization_node. | |
19379 | ||
19380 | 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com> | |
19381 | ||
19382 | PR tree-optimization/70729 | |
19383 | * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as | |
19384 | independent in loops having positive safelen value. | |
19385 | * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since | |
19386 | it may be not valid after vectorization. | |
19387 | ||
19388 | 2016-06-29 Jakub Jelinek <jakub@redhat.com> | |
19389 | ||
19390 | PR tree-optimization/71625 | |
19391 | * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list | |
19392 | is sorted by ascending list->offset. If PTR is non-NULL and there is | |
19393 | previous strinfo, call get_stridx_plus_constant. | |
19394 | (get_stridx): Pass exp as second argument to get_addr_stridx. | |
19395 | (addr_stridxptr): Add missing list = list->next, so that there can be | |
19396 | more than one entries in the list. Bump limit from 16 to 32. Ensure | |
19397 | the list is sorted by ascending list->offset. | |
19398 | (get_stridx_plus_constant): Adjust so that it can be also called with | |
19399 | ADDR_EXPR instead of SSA_NAME as PTR. | |
19400 | (handle_char_store): Pass NULL_TREE as second argument to | |
19401 | get_addr_stridx. | |
19402 | ||
19403 | 2016-06-29 Richard Biener <rguenther@suse.de> | |
19404 | ||
19405 | PR rtl-optimization/68961 | |
19406 | * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT. | |
19407 | ||
19408 | 2016-06-29 Richard Biener <rguenther@suse.de> | |
19409 | ||
19410 | PR middle-end/71002 | |
19411 | * alias.c (component_uses_parent_alias_set_from): Handle | |
19412 | type punning through union accesses by using the union alias set. | |
19413 | * gimple.c (gimple_get_alias_set): Remove union type punning case. | |
19414 | ||
19415 | 2016-07-29 Richard Biener <rguenther@suse.de> | |
19416 | ||
19417 | * match.pd ((T)(T2)x -> (T)x): Remove restriction on final | |
19418 | precision not matching mode precision. | |
19419 | ||
19420 | 2016-06-28 John David Anglin <danglin@gcc.gnu.org> | |
19421 | ||
19422 | * config/pa/pa.md (call_symref_64bit_post_reload): Don't call | |
19423 | pa_output_arg_descriptor. | |
19424 | (call_val_symref_64bit_post_reload): Likewise. | |
19425 | (call_val_powf_64bit_post_reload): Likewise. | |
19426 | (sibcall_internal_symref_64bit): Likewise. | |
19427 | (sibcall_value_internal_symref_64bit): Likewise. | |
19428 | ||
19429 | 2016-06-28 Jakub Jelinek <jakub@redhat.com> | |
19430 | ||
19431 | PR middle-end/71626 | |
19432 | * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of | |
19433 | a constant, force its SUBREG_REG into memory or register instead | |
19434 | of whole op1. | |
19435 | ||
19436 | 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com> | |
19437 | ||
19438 | PR target/58655 | |
19439 | * config/avr/avr.opt (-mfract-convert-truncate): Update description. | |
19440 | * doc/invoke.texi (AVR Options): Document it. | |
19441 | ||
19442 | 2016-06-28 Walter Lee <walt@tilera.com> | |
19443 | ||
19444 | * config/tilegx/linux.h: Do not include arch/icache.h | |
19445 | (CLEAR_INSN_CACHE): Provide inlined definition directly. | |
19446 | * config/tilepro/linux.h: Do not include arch/icache.h | |
19447 | (CLEAR_INSN_CACHE): Provide inlined definition directly. | |
19448 | ||
19449 | 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com> | |
19450 | ||
19451 | * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering | |
19452 | for big-endian BIT_FIELD_REF. | |
19453 | ||
19454 | 2016-06-28 Pat Haugen <pthaugen@us.ibm.com> | |
19455 | ||
19456 | * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types. | |
19457 | ('size' attribute): Add '128'. | |
19458 | Include power9.md. | |
19459 | (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32, | |
19460 | *movdi_internal64, *movdf_update1): Set size attribute to '64'. | |
19461 | (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2, | |
19462 | copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw, | |
19463 | *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw, | |
19464 | extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw, | |
19465 | *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>, | |
19466 | *trunc<mode>df2_odd): Set size attribute to '128'. | |
19467 | (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'. | |
19468 | * config/rs6000/power6.md (power6-fp): Include dfp type. | |
19469 | * config/rs6000/power7.md (power7-fp): Likewise. | |
19470 | * config/rs6000/power8.md (power8-fp): Likewise. | |
19471 | * config/rs6000/power9.md: New file. | |
19472 | * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md. | |
19473 | * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci, | |
19474 | *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to | |
19475 | htmsimple. | |
19476 | * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2, | |
19477 | trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3, | |
19478 | divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2, | |
19479 | ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>, | |
19480 | dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>, | |
19481 | dfp_dscri_<mode>): Change type attribute to dfp. | |
19482 | * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type | |
19483 | attribute to vecsimple. | |
19484 | * config/rs6000/rs6000.c (power9_cost): Update costs, cache size | |
19485 | and prefetch streams. | |
19486 | (rs6000_option_override_internal): Remove temporary code setting | |
19487 | tuning to power8. Don't set rs6000_sched_groups for power9. | |
19488 | (last_scheduled_insn): Change to rtx_insn *. | |
19489 | (divide_cnt, vec_load_pendulum): New variables. | |
19490 | (rs6000_adjust_cost): Add Power9 to test for store->load separation. | |
19491 | (rs6000_issue_rate): Set issue rate for Power9. | |
19492 | (is_power9_pairable_vec_type): New. | |
19493 | (power9_sched_reorder2): New. | |
19494 | (rs6000_sched_reorder2): Call new function for Power9 specific | |
19495 | reordering. | |
19496 | (insn_must_be_first_in_group): Remove Power9. | |
19497 | (insn_must_be_last_in_group): Likewise. | |
19498 | (force_new_group): Likewise. | |
19499 | (rs6000_sched_init): Fix initialization of last_scheduled_insn. | |
19500 | Initialize divide_cnt/vec_load_pendulum. | |
19501 | (_rs6000_sched_context, rs6000_init_sched_context, | |
19502 | rs6000_set_sched_context): Handle context save/restore of new | |
19503 | variables. | |
19504 | ||
19505 | 2016-06-28 Richard Biener <rguenther@suse.de> | |
19506 | ||
19507 | * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): | |
19508 | Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as | |
19509 | COMPONENT_REF operand. | |
19510 | (nonoverlapping_component_refs_p): Likewise. | |
19511 | * stor-layout.c (start_bitfield_representative): Mark | |
19512 | DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P. | |
19513 | ||
19514 | 2016-06-28 Jakub Jelinek <jakub@redhat.com> | |
19515 | ||
19516 | * Makefile.in: Don't cat ../stage_current if it does not exist. | |
19517 | ||
19518 | * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when | |
19519 | last argument is a bit-field. | |
19520 | ||
19521 | PR rtl-optimization/71673 | |
19522 | * internal-fn.c (expand_arith_overflow_result_store): Use | |
19523 | OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to | |
19524 | expand_simple_binop. | |
19525 | ||
19526 | PR middle-end/66867 | |
19527 | * builtins.c (expand_ifn_atomic_compare_exchange_into_call, | |
19528 | expand_ifn_atomic_compare_exchange): New functions. | |
19529 | * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function. | |
19530 | * tree.h (build_call_expr_internal_loc): Rename to ... | |
19531 | (build_call_expr_internal_loc_array): ... this. Fix up type of | |
19532 | last argument. | |
19533 | * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn. | |
19534 | * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of | |
19535 | ATOMIC_COMPARE_EXCHANGE result. | |
19536 | * builtins.h (expand_ifn_atomic_compare_exchange): New prototype. | |
19537 | * gimple-fold.h (optimize_atomic_compare_exchange_p, | |
19538 | fold_builtin_atomic_compare_exchange): New prototypes. | |
19539 | * gimple-fold.c (optimize_atomic_compare_exchange_p, | |
19540 | fold_builtin_atomic_compare_exchange): New functions.. | |
19541 | * tree-ssa.c (execute_update_addresses_taken): If | |
19542 | optimize_atomic_compare_exchange_p, ignore &var in 2nd argument | |
19543 | of call when finding addressable vars, and if such var becomes | |
19544 | non-addressable, call fold_builtin_atomic_compare_exchange. | |
19545 | ||
19546 | 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org> | |
19547 | ||
19548 | PR target/71670 | |
19549 | * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use | |
19550 | gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot. | |
19551 | ||
19552 | 2016-06-27 Pat Haugen <pthaugen@us.ibm.com> | |
19553 | ||
19554 | * config/rs6000/rs6000.md ('type' attribute): Add | |
19555 | veclogical,veccmpfx,vecexts,vecmove insn types. | |
19556 | (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr, | |
19557 | copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal, | |
19558 | p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple. | |
19559 | (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw, | |
19560 | *nabs<mode>2_hw): Change type to vecmove. | |
19561 | (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal, | |
19562 | *boolcc<mode>3_internal, *eqv<mode>3_internal, | |
19563 | *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal, | |
19564 | *ieee_128bit_vsx_abs<mode>2_internal, | |
19565 | *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2, | |
19566 | *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit, | |
19567 | *ieee128_mtvsrd_32bit): Change type to veclogical. | |
19568 | (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64, | |
19569 | *movdi_internal32, *movdi_internal64): Update insn types. | |
19570 | * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>, | |
19571 | vsx_extract_<mode>): Change type to veclogical. | |
19572 | (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove. | |
19573 | (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>, | |
19574 | *vsx_sign_extend_si_v2di): Change type to vecexts. | |
19575 | * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change | |
19576 | type to veclogical. | |
19577 | (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>, | |
19578 | *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p, | |
19579 | *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx. | |
19580 | (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove. | |
19581 | * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr, | |
19582 | negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple. | |
19583 | * config/rs6000/40x.md (ppc405-float): Add fpsimple. | |
19584 | * config/rs6000/440.md (ppc440-fp): Add fpsimple. | |
19585 | * config/rs6000/476.md (ppc476-fp): Add fpsimple. | |
19586 | * config/rs6000/601.md (ppc601-fp): Add fpsimple. | |
19587 | * config/rs6000/603.md (ppc603-fp): Add fpsimple. | |
19588 | * config/rs6000/6xx.md (ppc604-fp): Add fpsimple. | |
19589 | * config/rs6000/7xx.md (ppc750-fp): Add fpsimple. | |
19590 | (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx. | |
19591 | * config/rs6000/7450.md (ppc7450-fp): Add fpsimple. | |
19592 | (ppc7450-vecsimple): Add veclogical, vecmove. | |
19593 | (ppc7450-veccmp): Add veccmpfx. | |
19594 | * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical, | |
19595 | vecmove. | |
19596 | (ppc8540_vector_compare): Add veccmpfx. | |
19597 | * config/rs6000/a2.md (ppca2-fp): Add fpsimple. | |
19598 | * config/rs6000/cell.md (cell-fp): Add fpsimple. | |
19599 | (cell-vecsimple): Add veclogical, vecmove. | |
19600 | (cell-veccmp): Add veccmpfx. | |
19601 | * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple. | |
19602 | * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove, | |
19603 | veccmpfx. | |
19604 | * config/rs6000/mpc.md (mpccore-fp): Add fpsimple. | |
19605 | * config/rs6000/power4.md (power4-fp): Add fpsimple. | |
19606 | (power4-vecsimple): Add veclogical, vecmove. | |
19607 | (power4-veccmp): Add veccmpfx. | |
19608 | * config/rs6000/power5.md (power5-fp): Add fpsimple. | |
19609 | * config/rs6000/power6.md (power6-fp): Add fpsimple. | |
19610 | (power6-vecsimple): Add veclogical, vecmove. | |
19611 | (power6-veccmp): Add veccmpfx. | |
19612 | * config/rs6000/power7.md (power7-fp): Add fpsimple. | |
19613 | (power7-vecsimple): Add veclogical, vecmove, veccmpfx. | |
19614 | * config/rs6000/power8.md (power8-fp): Add fpsimple. | |
19615 | (power8-vecsimple): Add veclogical, vecmove, veccmpfx. | |
19616 | * config/rs6000/rs64.md (rs64a-fp): Add fpsimple. | |
19617 | * config/rs6000/titan.md (titan_fp): Add fpsimple. | |
19618 | * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add | |
19619 | fpsimple. | |
19620 | * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE. | |
19621 | ||
19622 | 2016-06-27 Peter Bergner <bergner@vnet.ibm.com> | |
19623 | ||
19624 | PR target/71656 | |
19625 | * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add | |
19626 | OPTION_MASK_P9_DFORM_VECTOR. | |
19627 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not | |
19628 | disable -mpower9-dform-vector when using reload. | |
19629 | (quad_address_p): Remove 'gpr_p' argument and all associated code. | |
19630 | New 'strict' argument. Update all callers. Add strict addressing | |
19631 | support. | |
19632 | (rs6000_legitimate_offset_address_p): Remove call to | |
19633 | virtual_stack_registers_memory_p. | |
19634 | (rs6000_legitimize_reload_address): Add quad address support. | |
19635 | (rs6000_legitimate_address_p): Move call to quad_address_p above | |
19636 | call to virtual_stack_registers_memory_p. Adjust quad_address_p args | |
19637 | to account for new strict usage. | |
19638 | (rs6000_output_move_128bit): Adjust quad_address_p args to account | |
19639 | for new strict usage. | |
19640 | * config/rs6000/predicates.md (quad_memory_operand): Likewise. | |
19641 | ||
19642 | 2016-06-26 Uros Bizjak <ubizjak@gmail.com> | |
19643 | ||
19644 | PR target/70902 | |
19645 | PR target/71453 | |
19646 | PR target/71555 | |
19647 | PR target/71596 | |
19648 | PR target/71657 | |
19649 | * config/i386/i386.c (ix86_spill_class): Disable condition to | |
19650 | always return NO_REGS. | |
19651 | ||
19652 | 2016-06-26 Jan Hubicka <hubicka@ucw.cz> | |
19653 | ||
19654 | * predict.c: Include gimple-pretty-print.h | |
19655 | (predicted_by_loop_heuristics_p): Check also | |
19656 | PRED_LOOP_EXIT_WITH_RECURSION | |
19657 | (predict_loops): Find self recursive calls and use special purpose | |
19658 | predictors for them; dump log about decisions. | |
19659 | (pass_profile::execute): Dump info about #of iterations. | |
19660 | * predict.def (PRED_LOOP_EXIT_WITH_RECURSION, | |
19661 | (PRED_LOOP_GUARD_WITH_RECURSION): New predictors. | |
19662 | ||
19663 | 2016-06-26 John David Anglin <danglin@gcc.gnu.org> | |
19664 | ||
19665 | * config/pa/pa.c (pa_output_indirect_call): Rework to combine | |
19666 | output_asm_insn calls and shorten long lines. Output .CALL | |
19667 | argument descriptor using pa_output_arg_descriptor. Add various | |
19668 | inline $$dyncall and other optimizations. | |
19669 | (pa_attr_length_indirect_call): Adjust ordering and lengths. | |
19670 | ||
19671 | 2016-06-25 Jakub Jelinek <jakub@redhat.com> | |
19672 | ||
19673 | PR tree-optimization/71643 | |
19674 | * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with | |
19675 | EH preds. | |
19676 | ||
19677 | * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't | |
19678 | leak a bitmap if dep_bb is NULL. | |
19679 | ||
19680 | PR tree-optimization/71631 | |
19681 | * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument | |
19682 | to rewrite_expr_tree even if negate_result, move new_lhs var | |
19683 | declaration and initialization earlier, for powi_result set afterwards | |
19684 | new_lhs to lhs. For negate_result, use new_lhs instead of tmp | |
19685 | if new_lhs != lhs, and don't shadow gsi var. | |
19686 | ||
19687 | 2016-06-24 Jan Hubicka <hubicka@ucw.cz> | |
19688 | ||
19689 | * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge): | |
19690 | Add in_loop parameter. | |
19691 | (predict_loops): Add loop guard heuristics. | |
19692 | * predict.def (PRED_LOOP_GUARD): New heuristics. | |
19693 | ||
19694 | 2016-06-24 Jan Hubicka <hubicka@ucw.cz> | |
19695 | ||
19696 | * predict.c: Include ipa-utils.h | |
19697 | (tree_bb_level_prediction): Predict recursive calls. | |
19698 | (tree_estimate_probability_bb): Skip inexpensive calls for call | |
19699 | predictor. | |
19700 | * predict.def (PRED_RECURSIVE_CALL): New. | |
19701 | ||
19702 | 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
19703 | ||
19704 | * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define. | |
19705 | (BU_FLOAT128_1): Likewise. | |
19706 | (FABSQ): Likewise. | |
19707 | (COPYSIGNQ): Likewise. | |
19708 | (RS6000_BUILTIN_NANQ): Likewise. | |
19709 | (RS6000_BUILTIN_NANSQ): Likewise. | |
19710 | (RS6000_BUILTIN_INFQ): Likewise. | |
19711 | (RS6000_BUILTIN_HUGE_VALQ): Likewise. | |
19712 | * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype. | |
19713 | (TARGET_FOLD_BUILTIN): New #define. | |
19714 | (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry. | |
19715 | (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128. | |
19716 | (rs6000_fold_builtin): New target hook implementation, handling | |
19717 | folding of 128-bit NaNs and infinities. | |
19718 | (rs6000_init_builtins): Initialize const_str_type_node; ensure all | |
19719 | entries are filled in to avoid problems during bootstrap | |
19720 | self-test; define builtins for 128-bit NaNs and infinities. | |
19721 | (rs6000_opt_mask): Add entry for float128. | |
19722 | * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define. | |
19723 | (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128. | |
19724 | (rs6000_builtin_type_index): Add RS6000_BTI_const_str. | |
19725 | (const_str_type_node): New #define. | |
19726 | * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert | |
19727 | to a define_expand that dispatches to either copysign<mode>3_soft | |
19728 | or copysign<mode>3_hard. | |
19729 | (copysign<mode>3_hard): Rename from copysign<mode>3. | |
19730 | (copysign<mode>3_soft): New define_insn. | |
19731 | * doc/extend.texi: Document new builtins. | |
19732 | ||
19733 | 2016-06-24 Jakub Jelinek <jakub@redhat.com> | |
19734 | ||
19735 | * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using | |
19736 | PRIu64 instead of lu. | |
19737 | ||
19738 | 2016-06-24 Eric Botcazou <ebotcazou@adacore.com> | |
19739 | ||
19740 | PR debug/71642 | |
19741 | * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just | |
19742 | copy the type name. | |
19743 | ||
19744 | 2016-06-24 Jakub Jelinek <jakub@redhat.com> | |
19745 | ||
19746 | PR tree-optimization/71647 | |
19747 | * omp-low.c (lower_rec_input_clauses): Convert | |
19748 | omp_clause_aligned_alignment (c) to size_type_node for the | |
19749 | last argument of __builtin_assume_aligned. | |
19750 | ||
19751 | 2016-06-24 H.J. Lu <hongjiu.lu@intel.com> | |
19752 | ||
19753 | * configure.ac (calling ___tls_get_addr via GOT): New | |
19754 | assembler/linker check. | |
19755 | (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit | |
19756 | assembler and linker supports calling ___tls_get_addr via GOT. | |
19757 | Otherise, defined to 0. | |
19758 | * config.in: Regenerated. | |
19759 | * configure: Likewise. | |
19760 | * config/i386/constraints.md (Yb): New constraint. | |
19761 | * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS. | |
19762 | (REG_CLASS_NAMES): Likewise. | |
19763 | (REG_CLASS_CONTENTS): Likewise. | |
19764 | * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace | |
19765 | the b constraint with the Yb constraint. Call ___tls_get_addr | |
19766 | via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT | |
19767 | is 1. | |
19768 | (*tls_local_dynamic_base_32_gnu): Likewise. | |
19769 | (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for | |
19770 | GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1. | |
19771 | (*tls_local_dynamic_base_64_<mode>): Likewise. | |
19772 | ||
19773 | 2016-06-24 Martin Liska <mliska@suse.cz> | |
19774 | ||
19775 | * cfgloop.c (flow_loop_dump): Dump average number of loop iterations. | |
19776 | * cfgloop.h: Change 'struct loop' to 'const struct loop' for a | |
19777 | few functions. | |
19778 | * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new | |
19779 | argument to true if the expected number of iterations is | |
19780 | loop-based. | |
19781 | ||
19782 | 2016-06-24 Uros Bizjak <ubizjak@gmail.com> | |
19783 | ||
19784 | * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to | |
19785 | assemble for 32bit target. | |
19786 | (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble | |
19787 | and $ld_ix86_gld_32_opt to link for 32bit target. | |
19788 | (HAVE_AS_IX86_TLSLDMPLT): Ditto. | |
19789 | * configure: Regenerate. | |
19790 | ||
19791 | 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
19792 | ||
19793 | * config/arm/arm.c (int_log2): Delete definition and prototype. | |
19794 | (shift_op): Use exact_log2 instead of int_log2. | |
19795 | (vfp3_const_double_for_fract_bits): Likewise. | |
19796 | ||
19797 | 2016-06-24 Jakub Jelinek <jakub@redhat.com> | |
19798 | ||
19799 | * internal-fn.c (expand_arith_set_overflow): New function. | |
19800 | (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): | |
19801 | Use it. | |
19802 | (expand_arith_overflow_result_store): Likewise. Handle precision | |
19803 | smaller than mode precision. | |
19804 | * tree-vrp.c (extract_range_basic): For imag part, handle | |
19805 | properly signed 1-bit precision result. | |
19806 | * doc/extend.texi (__builtin_add_overflow): Document that last | |
19807 | argument can't be pointer to enumerated or boolean type. | |
19808 | (__builtin_add_overflow_p): Document that last argument can't | |
19809 | have enumerated or boolean type. | |
19810 | ||
19811 | 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com> | |
19812 | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
19813 | ||
19814 | * config/rs6000/predicates.md (splat_input_operand): Rework. | |
19815 | Don't allow constants, since the insns that use this predicate | |
19816 | don't support constants. Constants are handled by other insns | |
19817 | that are created via combine. During and after register | |
19818 | allocation, only allow indexed or indirect addresses, and not | |
19819 | general addresses. Only allow modes supported by the hardware. | |
19820 | * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage | |
19821 | comment. Move check for using VSPLTIS<x> to a common location, | |
19822 | instead of doing it in two different places. | |
19823 | ||
19824 | 2016-06-23 Jocelyn Mayer <l_indien@magic.fr> | |
19825 | ||
19826 | * config/i386/driver-i386.c (host_detect_local_cpu): Set | |
19827 | PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9. | |
19828 | <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for | |
19829 | signature_CENTAUR_ebx. | |
19830 | ||
19831 | 2016-06-23 H.J. Lu <hongjiu.lu@intel.com> | |
19832 | ||
19833 | PR target/66232 | |
19834 | PR target/67400 | |
19835 | * configure.ac (as_ix86_tls_ldm_opt): Renamed to ... | |
19836 | (as_ix86_gas_32_opt): This. | |
19837 | (ld_ix86_tls_ldm_opt): Renamed to ... | |
19838 | (ld_ix86_gld_32_opt): This. | |
19839 | (R_386_TLS_LDM reloc): Updated. | |
19840 | (R_386_GOT32X reloc): New assembler/linker check. | |
19841 | (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and | |
19842 | linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise, | |
19843 | defined to 0. | |
19844 | * config.in: Regenerated. | |
19845 | * configure: Likewise. | |
19846 | * config/i386/i386.c (ix86_force_load_from_GOT_p): Return | |
19847 | true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode. | |
19848 | (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt | |
19849 | if ix86_force_load_from_GOT_p returns true. | |
19850 | (ix86_print_operand_address_as): Also support UNSPEC_GOT if | |
19851 | ix86_force_load_from_GOT_p returns true. | |
19852 | (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load | |
19853 | the external function address via the GOT slot. | |
19854 | (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and | |
19855 | HAVE_AS_IX86_GOT32X before returning false. | |
19856 | (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in | |
19857 | 32-bit mode if ix86_nopic_noplt_attribute_p returns true. | |
19858 | ||
19859 | 2016-06-23 Eric Botcazou <ebotcazou@adacore.com> | |
19860 | ||
19861 | * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant. | |
19862 | ||
19863 | 2016-06-23 Andi Kleen <ak@linux.intel.com> | |
19864 | ||
19865 | * Makefile.in: Regenerate. | |
19866 | * doc/install.texi: Document autoprofiledbootstrap. | |
19867 | ||
19868 | 2016-06-23 Andi Kleen <ak@linux.intel.com> | |
19869 | ||
19870 | * config/i386/gcc-auto-profile: New file. | |
19871 | ||
19872 | 2016-06-23 Martin Liska <mliska@suse.cz> | |
19873 | ||
19874 | PR middle-end/71619 | |
19875 | * predict.c (predict_loops): Revert the hunk that was removed | |
19876 | in r237103. | |
19877 | ||
19878 | 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com> | |
19879 | ||
19880 | * config.gcc: Add support for arm*-*-phoenix* targets. | |
19881 | * config/arm/t-phoenix: New. | |
19882 | * config/phoenix.h: New. | |
19883 | ||
19884 | 2016-06-23 Uros Bizjak <ubizjak@gmail.com> | |
19885 | H.J. Lu <hongjiu.lu@intel.com> | |
19886 | ||
19887 | PR target/67400 | |
19888 | * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New. | |
19889 | * config/i386/i386.c (ix86_force_load_from_GOT_p): New function. | |
19890 | (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if | |
19891 | ix86_force_load_from_GOT_p returns true. | |
19892 | (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if | |
19893 | ix86_force_load_from_GOT_p returns true. | |
19894 | (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if | |
19895 | ix86_force_load_from_GOT_p returns true. | |
19896 | (ix86_expand_move): Load the external function address via the | |
19897 | GOT slot if ix86_force_load_from_GOT_p returns true. | |
19898 | * config/i386/predicates.md (x86_64_immediate_operand): Return | |
19899 | false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true. | |
19900 | (x86_64_zext_immediate_operand): Ditto. | |
19901 | ||
19902 | 2016-06-22 Uros Bizjak <ubizjak@gmail.com> | |
19903 | ||
19904 | * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling. | |
19905 | ||
19906 | 2016-06-22 David Malcolm <dmalcolm@redhat.com> | |
19907 | ||
19908 | PR c/70339 | |
19909 | * diagnostic-core.h (pedwarn_at_rich_loc): New prototype. | |
19910 | * diagnostic.c (pedwarn_at_rich_loc): New function. | |
19911 | * spellcheck.h (best_match::best_match): Add a | |
19912 | "best_distance_so_far" optional parameter. | |
19913 | (best_match::set_best_so_far): New method. | |
19914 | (best_match::get_best_distance): New accessor. | |
19915 | (best_match::get_best_candidate_length): New accessor. | |
19916 | ||
19917 | 2016-06-22 Nick Clifton <nickc@redhat.com> | |
19918 | ||
19919 | * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in | |
19920 | place of GET_MODE_CLASS() == MODE_INT, so that partial integer | |
19921 | modes are accepted as well. | |
19922 | (ucompare_loc_descriptor): Likewise. | |
19923 | (minmax_loc_descriptor): Likewise. | |
19924 | (clz_loc_descriptor): Likewise. | |
19925 | (popcount_loc_descriptor): Likewise. | |
19926 | (bswap_loc_descriptor): Likewise. | |
19927 | (rotate_loc_descriptor): Likewise. | |
19928 | (mem_loc_descriptor): Likewise. | |
19929 | (loc_descriptor): Likewise. | |
19930 | ||
19931 | 2016-06-22 David Malcolm <dmalcolm@redhat.com> | |
19932 | ||
19933 | * common.opt (fdiagnostics-parseable-fixits): New option. | |
19934 | * diagnostic.c: Include "selftest.h". | |
19935 | (print_escaped_string): New function. | |
19936 | (print_parseable_fixits): New function. | |
19937 | (diagnostic_report_diagnostic): Call print_parseable_fixits. | |
19938 | (selftest::assert_print_escaped_string): New function. | |
19939 | (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro. | |
19940 | (selftest::test_print_escaped_string): New function. | |
19941 | (selftest::test_print_parseable_fixits_none): New function. | |
19942 | (selftest::test_print_parseable_fixits_insert): New function. | |
19943 | (selftest::test_print_parseable_fixits_remove): New function. | |
19944 | (selftest::test_print_parseable_fixits_replace): New function. | |
19945 | (selftest::diagnostic_c_tests): New function. | |
19946 | * diagnostic.h (struct diagnostic_context): Add field | |
19947 | "parseable_fixits_p". | |
19948 | * doc/invoke.texi (Diagnostic Message Formatting Options): Add | |
19949 | -fdiagnostics-parseable-fixits. | |
19950 | (-fdiagnostics-parseable-fixits): New option. | |
19951 | * opts.c (common_handle_option): Handle | |
19952 | -fdiagnostics-parseable-fixits. | |
19953 | * selftest-run-tests.c (selftest::run_tests): Call | |
19954 | selftest::diagnostic_c_tests. | |
19955 | * selftest.h (selftest::diagnostic_c_tests): New prototype. | |
19956 | ||
19957 | 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com> | |
19958 | ||
19959 | PR tree-optimization/71488 | |
19960 | * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support | |
19961 | comparison of boolean vectors. | |
19962 | * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison | |
19963 | of boolean vectors using bitwise operations. | |
19964 | ||
19965 | 2016-06-22 Andreas Schwab <schwab@suse.de> | |
19966 | ||
19967 | * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section): | |
19968 | Remove declaration. | |
19969 | ||
19970 | 2016-06-22 Eric Botcazou <ebotcazou@adacore.com> | |
19971 | ||
19972 | * function.c (assign_parm_setup_reg): Prevent sharing in another case. | |
19973 | ||
19974 | 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
19975 | ||
19976 | * config/i386/i386.c (print_reg): Emit an error message on attempt to | |
19977 | print FLAGS_REG. | |
19978 | ||
19979 | 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
19980 | ||
19981 | * config/arm/arm.c (arm_cortex_a73_tune): New struct. | |
19982 | * config/arm/arm-cores.def (cortex-a73): New entry. | |
19983 | (cortex-a73.cortex-a35): Likewise. | |
19984 | (cortex-a73.cortex-a53): Likewise. | |
19985 | * config/arm/arm-tables.opt: Regenerate. | |
19986 | * config/arm/arm-tune.md: Likewise. | |
19987 | * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73, | |
19988 | mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53. | |
19989 | * config/arm/t-aprofile: Handle mcpu=cortex-a73, | |
19990 | mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53. | |
19991 | * doc/invoke.texi (ARM Options): Document cortex-a73, | |
19992 | cortex-a73.cortex-a35 and cortex-a73.cortex-a53. | |
19993 | ||
19994 | 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
19995 | ||
19996 | * config/aarch64/aarch64.c (cortexa73_tunings): New struct. | |
19997 | * config/aarch64/aarch64-cores.def (cortex-a73): New entry. | |
19998 | (cortex-a73.cortex-a35): Likewise. | |
19999 | (cortex-a73.cortex-a53): Likewise. | |
20000 | * config/aarch64/aarch64-tune.md: Regenerate. | |
20001 | * doc/invoke.texi (AArch64 Options): Document cortex-a73, | |
20002 | cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to | |
20003 | -mcpu and -mtune. | |
20004 | ||
20005 | 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
20006 | ||
20007 | * configure.ac (gcc_cv_as_compress_debug): Remove | |
20008 | --compress-debug-sections as extra as switch. | |
20009 | Handle gas --compress-debug-sections=type. | |
20010 | (gcc_cv_ld_compess_debug): Remove bogus ld_date check. | |
20011 | Handle gld --compress-debug-sections=type. | |
20012 | * configure: Regenerate. | |
20013 | ||
20014 | 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com> | |
20015 | ||
20016 | * bb-reorder.c (pass_partition_blocks::gate): Update comment. | |
20017 | ||
20018 | 2016-06-21 John David Anglin <danglin@gcc.gnu.org> | |
20019 | ||
20020 | * gcov-tool.c (profile_rewrite): Use int64_t instead of long long. | |
20021 | (do_rewrite): likewise. | |
20022 | ||
20023 | 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
20024 | ||
20025 | * common/config/mep/mep-common.c: Remove. | |
20026 | * config.gcc: Remove mep-* support. | |
20027 | * config/mep/constraints.md: Remove. | |
20028 | * config/mep/default.h: Remove. | |
20029 | * config/mep/intrinsics.h: Remove. | |
20030 | * config/mep/intrinsics.md: Remove. | |
20031 | * config/mep/ivc2-template.h: Remove. | |
20032 | * config/mep/mep-c5.cpu: Remove. | |
20033 | * config/mep/mep-core.cpu: Remove. | |
20034 | * config/mep/mep-default.cpu: Remove. | |
20035 | * config/mep/mep-ext-cop.cpu: Remove. | |
20036 | * config/mep/mep-intrin.h: Remove. | |
20037 | * config/mep/mep-ivc2.cpu: Remove. | |
20038 | * config/mep/mep-pragma.c: Remove. | |
20039 | * config/mep/mep-protos.h: Remove. | |
20040 | * config/mep/mep.c: Remove. | |
20041 | * config/mep/mep.cpu: Remove. | |
20042 | * config/mep/mep.h: Remove. | |
20043 | * config/mep/mep.md: Remove. | |
20044 | * config/mep/mep.opt: Remove. | |
20045 | * config/mep/predicates.md: Remove. | |
20046 | * config/mep/t-mep: Remove. | |
20047 | * doc/install.texi: Remove mep-* documentation. | |
20048 | * doc/md.texi: Likewise. | |
20049 | ||
20050 | 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
20051 | ||
20052 | * config.gcc: Remove support for avr-rtems. | |
20053 | * config/avr/gen-avr-mmcu-specs.c: Likewise. | |
20054 | * config/avr/rtems.h: Remove. | |
20055 | * config/avr/t-rtems: Remove. | |
20056 | ||
20057 | 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
20058 | ||
20059 | * config.gcc: Remove m32r-rtems support. | |
20060 | * config/m32r/rtems.h: Remove. | |
20061 | ||
20062 | 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
20063 | ||
20064 | * config.gcc: Remove h8300-rtems support. | |
20065 | * config/h8300/rtems.h: Remove. | |
20066 | * config/h8300/t-rtems: Remove. | |
20067 | ||
20068 | 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
20069 | ||
20070 | * config.gcc: Remove support for knetbsd. | |
20071 | * configure.ac: Likewise. | |
20072 | * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove. | |
20073 | * config/knetbsd-gnu.h: Remove. | |
20074 | * configure: Regenerate. | |
20075 | ||
20076 | 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
20077 | ||
20078 | * config.gcc: Remove support for openbsd 2 and 3. | |
20079 | * config/openbsd-oldgas.h: Remove. | |
20080 | ||
20081 | 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
20082 | ||
20083 | * config.gcc: Remove interix support. | |
20084 | * config/i386/i386-interix.h: Remove. | |
20085 | * config/i386/interix.opt: Remove. | |
20086 | * config/i386/t-interix: Remove. | |
20087 | * configure: Regenerate. | |
20088 | * configure.ac: Remove interix support. | |
20089 | * doc/install.texi: Remove interix documentation. | |
20090 | ||
20091 | 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
20092 | ||
20093 | * config/rs6000/rs6000.h: Add conditional preprocessing directives | |
20094 | to disable Power9-specific compiler features if HAVE_AS_POWER9 is | |
20095 | not defined. | |
20096 | ||
20097 | 2016-06-21 Eric Botcazou <ebotcazou@adacore.com> | |
20098 | ||
20099 | * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if | |
20100 | they are both PLACEHOLDER_EXPRs. | |
20101 | ||
20102 | 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com> | |
20103 | ||
20104 | * stor-layout.c (layout_type): Move setting complex MODE to | |
20105 | layout_type, instead of setting it ahead of time by the caller. | |
20106 | * tree.c (build_complex_type): Likewise. | |
20107 | ||
20108 | 2016-06-21 Martin Liska <mliska@suse.cz> | |
20109 | ||
20110 | * predict.c (force_edge_cold): Replace imposisble with | |
20111 | impossible. | |
20112 | ||
20113 | 2016-06-21 Ilya Verbin <ilya.verbin@intel.com> | |
20114 | ||
20115 | * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps. | |
20116 | * config/i386/sse.md (define_expand "rsqrtv16sf2"): New. | |
20117 | ||
20118 | 2016-06-21 Ilya Verbin <ilya.verbin@intel.com> | |
20119 | ||
20120 | * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps. | |
20121 | ||
20122 | 2016-06-21 H.J. Lu <hongjiu.lu@intel.com> | |
20123 | Ilya Enkovich <ilya.enkovich@intel.com> | |
20124 | ||
20125 | PR target/71549 | |
20126 | * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses): | |
20127 | New member function to convert V1TImode register to SUBREG | |
20128 | TImode in debug insn. | |
20129 | (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses | |
20130 | after changing register mode to V1TImode. | |
20131 | ||
20132 | 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com> | |
20133 | ||
20134 | * config/aarch64/aarch64-cores.def (vulcan): New core. | |
20135 | * config/aarch64/aarch64-tune.md: Regenerate. | |
20136 | * doc/invoke.texi: Document vulcan as an available option. | |
20137 | ||
20138 | 2016-06-21 Eric Botcazou <ebotcazou@adacore.com> | |
20139 | ||
20140 | * cse.c (canon_asm_operands): New function extracted from... | |
20141 | (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS | |
20142 | either standalone or member of a PARALLEL. | |
20143 | ||
20144 | 2016-06-21 Georg-Johann Lay <avr@gjlay.de> | |
20145 | ||
20146 | PR target/30417 | |
20147 | * config/avr/gen-avr-mmcu-specs.c (print_mcu): | |
20148 | [*link_data_start]: Wrap -Tdata into %{!Tdata:...}. | |
20149 | [*link_text_start]: Wrap -Ttext into %{!Ttext:...}. | |
20150 | ||
20151 | 2016-06-21 Georg-Johann Lay <avr@gjlay.de> | |
20152 | ||
20153 | PR target/71103 | |
20154 | * config/avr/avr.md (movqi): Only handle loading subreg:qi of | |
20155 | constant addresses if can_create_pseudo_p. | |
20156 | ||
20157 | 2016-06-21 Jakub Jelinek <jakub@redhat.com> | |
20158 | ||
20159 | PR tree-optimization/71588 | |
20160 | * tree-ssa-strlen.c (valid_builtin_call): New function. | |
20161 | (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use | |
20162 | it. | |
20163 | ||
20164 | 2016-06-20 Jakub Jelinek <jakub@redhat.com> | |
20165 | ||
20166 | PR middle-end/71581 | |
20167 | * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL, | |
20168 | see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created | |
20169 | for conversion of scalar user var to complex type and use the | |
20170 | underlying SSA_NAME_VAR in that case. If EXPR is still NULL, | |
20171 | punt. | |
20172 | ||
20173 | PR rtl-optimization/71591 | |
20174 | * toplev.c (toplev::run_self_tests): If no_backend, complain and | |
20175 | don't run any tests. | |
20176 | ||
20177 | 2016-06-20 Hans-Peter Nilsson <hp@axis.com> | |
20178 | ||
20179 | PR target/71571 | |
20180 | * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba" | |
20181 | delay-slot "nop" for PIC with CRIS v32. Also add missing leading | |
20182 | space for PIC with non-v32 and the common non-PIC "jump". | |
20183 | ||
20184 | 2016-06-20 Jakub Jelinek <jakub@redhat.com> | |
20185 | ||
20186 | PR target/71559 | |
20187 | * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up | |
20188 | returned values and add UN*/LTGT/*ORDERED cases with values matching | |
20189 | D operand modifier on vcmp for AVX. | |
20190 | ||
20191 | 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com> | |
20192 | ||
20193 | * config/aarch64/aarch64.opt | |
20194 | (mpc-relative-literal-loads): Rename internal option name. | |
20195 | * config/aarch64/aarch64.c | |
20196 | (aarch64_nopcrelative_literal_loads): Rename to | |
20197 | aarch64_pcrelative_literal_loads. | |
20198 | (aarch64_expand_mov_immediate): Likewise. | |
20199 | (aarch64_secondary_reload): Likewise. | |
20200 | (aarch64_can_use_per_function_literal_pools_p): Likewise. | |
20201 | (aarch64_override_options_after_change_1): Rename and simplify logic. | |
20202 | (aarch64_classify_symbol): Merge large model checks into switch, | |
20203 | remove pc-relative load check. | |
20204 | ||
20205 | 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com> | |
20206 | ||
20207 | * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP | |
20208 | costs relative to the cost of a register move. | |
20209 | ||
20210 | 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com> | |
20211 | ||
20212 | * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New. | |
20213 | (vcvt_n_f64_u64): Likewise. | |
20214 | (vcvt_n_s64_f64): Likewise. | |
20215 | (vcvt_n_u64_f64): Likewise. | |
20216 | (vcvt_f64_s64): Likewise. | |
20217 | (vrecpe_f64): Likewise. | |
20218 | (vcvt_f64_u64): Likewise. | |
20219 | (vrecps_f64): Likewise. | |
20220 | ||
20221 | 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com> | |
20222 | ||
20223 | * config/aarch64/aarch64.md | |
20224 | (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to | |
20225 | iterators. | |
20226 | (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct | |
20227 | attributes. | |
20228 | * config/aarch64/aarch64-builtins.c | |
20229 | (aarch64_types_binop_uss_qualifiers): Delete. | |
20230 | (TYPES_BINOP_USS): Likewise. | |
20231 | (aarch64_types_binop_sus_qualifiers): Likewise. | |
20232 | (TYPES_BINOP_SUS): Likewise. | |
20233 | (aarch64_types_fcvt_from_unsigned_qualifiers): New. | |
20234 | (TYPES_FCVTIMM_SUS): Likewise. | |
20235 | * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM | |
20236 | rather than BINOP. | |
20237 | (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS. | |
20238 | (fcvtzs): Use SHIFTIMM rather than BINOP. | |
20239 | (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS. | |
20240 | ||
20241 | 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com> | |
20242 | ||
20243 | * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP | |
20244 | costs relative to the cost of a register move. | |
20245 | ||
20246 | 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com> | |
20247 | ||
20248 | * config/aarch64/aarch64.c (aarch64_modes_tieable_p): | |
20249 | Allow scalar/single vector modes to be tieable. | |
20250 | ||
20251 | 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com> | |
20252 | ||
20253 | * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel. | |
20254 | ||
20255 | 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
20256 | ||
20257 | * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of | |
20258 | "alignement". | |
20259 | * tree.h (TYPE_ALIGN): Likewise. | |
20260 | ||
20261 | 2016-06-20 Georg-Johann Lay <avr@gjlay.de> | |
20262 | ||
20263 | PR target/71103 | |
20264 | * config/avr/avr.md (movqi): Handle loading subreg:qi (const). | |
20265 | ||
20266 | 2016-06-20 Georg-Johann Lay <avr@gjlay.de> | |
20267 | ||
20268 | * config/avr/avr.c (avr_print_operand): Fix "format not a string | |
20269 | literal" build warnings. | |
20270 | (avr_print_operand_address): Dito. | |
20271 | ||
20272 | 2016-06-19 David Edelsohn <dje.gcc@gmail.com> | |
20273 | ||
20274 | PR target/71375 | |
20275 | * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0. | |
20276 | * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same. | |
20277 | ||
20278 | 2016-06-18 John David Anglin <danglin@gcc.gnu.org> | |
20279 | ||
20280 | * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove. | |
20281 | ||
20282 | 2016-06-18 Eric Botcazou <ebotcazou@adacore.com> | |
20283 | ||
20284 | PR bootstrap/71435 | |
20285 | * reload1.c (reload): Pass 0 to finish_spills when called because | |
20286 | update_eliminables_and_spill returns true and remove did_spill. | |
20287 | (finish_spills): Adjust comment and document GLOBAL parameter. | |
20288 | ||
20289 | 2016-06-17 DJ Delorie <dj@redhat.com> | |
20290 | ||
20291 | PR target/71338 | |
20292 | * config/rl78/rl78-expand.c (umulqihi3): Enable for G10. | |
20293 | * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise. | |
20294 | (umulqihi3_virt): Likewise. | |
20295 | * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise. | |
20296 | (umulqihi3_real): Likewise. | |
20297 | ||
20298 | 2016-06-17 Martin Liska <mliska@suse.cz> | |
20299 | ||
20300 | * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec. | |
20301 | ||
20302 | 2016-06-17 Martin Liska <mliska@suse.cz> | |
20303 | ||
20304 | * predict.def: PRED_LOOP_EXIT from 92 to 85. | |
20305 | ||
20306 | 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com> | |
20307 | ||
20308 | * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with | |
20309 | __FAST_MATH__. | |
20310 | (vaddq_f32): Likewise. | |
20311 | (vmul_f32): Likewise. | |
20312 | (vmulq_f32): Likewise. | |
20313 | (vsub_f32): Likewise. | |
20314 | (vsubq_f32): Likewise. | |
20315 | ||
20316 | 2016-06-17 Bin Cheng <bin.cheng@arm.com> | |
20317 | ||
20318 | PR tree-optimization/71347 | |
20319 | * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute | |
20320 | cost for all uses in group. | |
20321 | ||
20322 | 2016-06-17 Bin Cheng <bin.cheng@arm.com> | |
20323 | ||
20324 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Only | |
20325 | insert gimple seq if it's not empty. | |
20326 | ||
20327 | 2016-06-17 Bin Cheng <bin.cheng@arm.com> | |
20328 | ||
20329 | * tree-vectorizer.h (struct dr_with_seg_len): Remove class | |
20330 | member OFFSET. | |
20331 | * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly, | |
20332 | rather than OFFSET. | |
20333 | (comp_dr_with_seg_len_pair): Ditto. | |
20334 | (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize | |
20335 | struct dr_with_seg_len_pair against DR_OFFSET. | |
20336 | * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle | |
20337 | DR_OFFSET directly. | |
20338 | ||
20339 | 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
20340 | ||
20341 | * config/aarch64/geniterators.sh: Handle parenthesised conditions. | |
20342 | ||
20343 | 2016-06-16 John David Anglin <danglin@gcc.gnu.org> | |
20344 | ||
20345 | * config/pa/pa.c (pa_output_pic_pcrel_sequence): New. | |
20346 | (pa_output_lbranch): Use pa_output_pic_pcrel_sequence. | |
20347 | (pa_output_millicode_call): Likewise. | |
20348 | (pa_output_call): Likewise. | |
20349 | (pa_output_indirect_call): Likewise. | |
20350 | (pa_asm_output_mi_thunk): Likewise. | |
20351 | ||
20352 | 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> | |
20353 | ||
20354 | * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo. | |
20355 | ||
20356 | 2016-06-16 Martin Liska <mliska@suse.cz> | |
20357 | ||
20358 | * predict.c (combine_predictions_for_insn): When we find a first | |
20359 | match predictor, we should consider just predictors with | |
20360 | PRED_FLAG_FIRST_MATCH. Print either first match (if any) or | |
20361 | DS theory predictor. | |
20362 | (combine_predictions_for_bb): Likewise. | |
20363 | ||
20364 | 2016-06-16 Jakub Jelinek <jakub@redhat.com> | |
20365 | ||
20366 | * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs | |
20367 | with base of reference to struct. | |
20368 | ||
20369 | 2016-06-16 Uros Bizjak <ubizjak@gmail.com> | |
20370 | ||
20371 | * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float. | |
20372 | ||
20373 | 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> | |
20374 | ||
20375 | PR target/71151 | |
20376 | * config/avr/avr.c (avr_asm_init_sections): Remove setup of | |
20377 | progmem_swtable_section. | |
20378 | (progmem_swtable_section): Remove. | |
20379 | (avr_asm_function_rodata_section): Remove. | |
20380 | (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove. | |
20381 | * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1. | |
20382 | ||
20383 | 2016-06-16 Jocelyn Mayer <l_indien@magic.fr> | |
20384 | ||
20385 | * config/i386/driver-i386.c (host_detect_local_cpu): Set | |
20386 | PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode. | |
20387 | <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for | |
20388 | signature_CENTAUR_ebx. | |
20389 | * config/i386/i386.c (ix86_option_override_internal): Add | |
20390 | definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4, | |
20391 | nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4. | |
20392 | * doc/invoke.texi (x86 Options): Document new VIA -march entries. | |
20393 | ||
20394 | 2016-06-16 Martin Liska <mliska@suse.cz> | |
20395 | ||
20396 | * predict.def: Add fortran loop preheader predictor. | |
20397 | * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly | |
20398 | fold IFN_BUILTIN_EXPECT with a known constant argument. | |
20399 | ||
20400 | 2016-06-16 Martin Liska <mliska@suse.cz> | |
20401 | ||
20402 | * predict.def: Add 'Fortran' to display text of all | |
20403 | PRED_FORTRAN_* predictors. | |
20404 | ||
20405 | 2016-06-16 Uros Bizjak <ubizjak@gmail.com> | |
20406 | ||
20407 | PR target/71242 | |
20408 | * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New. | |
20409 | [IA64_BUILTIN_NANSQ]: Ditto. | |
20410 | (ia64_fold_builtin): New function. | |
20411 | (TARGET_FOLD_BUILTIN): New define. | |
20412 | (ia64_init_builtins) Declare const_string_type node. | |
20413 | Add __builtin_nanq and __builtin_nansq builtin functions. | |
20414 | (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ. | |
20415 | ||
20416 | 2016-06-16 Nick Clifton <nickc@redhat.com> | |
20417 | ||
20418 | * config/msp430/msp430-opts.h (msp430_hwmult_types): Add | |
20419 | MSP430_HWMULT_ prefix to enum values. | |
20420 | (msp430_regions): Add MSP430_REGION_ prefix to enum values. | |
20421 | * config/msp430/msp430.c: Update use of enum values. | |
20422 | * config/msp430/msp430.md: Likewise. | |
20423 | * config/msp430/msp430.opt: Likewise. | |
20424 | ||
20425 | 2016-06-16 Jan Hubicka <hubicka@ucw.cz> | |
20426 | ||
20427 | * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation | |
20428 | of comparsions in the last iteration. | |
20429 | ||
20430 | 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com> | |
20431 | Joern Rennecke <joern.rennecke@embecosm.com> | |
20432 | ||
20433 | * config/arc/arc.c (arc_print_operand_address): Handle pc-relative | |
20434 | addresses. | |
20435 | (arc_needs_pcl_p): Add GOTOFFPC. | |
20436 | (arc_legitimate_pic_addr_p): Likewise. | |
20437 | (arc_output_pic_addr_const): Likewise. | |
20438 | (arc_legitimize_pic_address): Generate a pc-relative address using | |
20439 | GOTOFFPC. | |
20440 | (arc_output_libcall): Use @pcl syntax. | |
20441 | (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC. | |
20442 | * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC. | |
20443 | (*movsi_insn): Use @pcl syntax. | |
20444 | (doloop_begin_i): Likewise. | |
20445 | ||
20446 | 2016-06-16 Martin Liska <mliska@suse.cz> | |
20447 | ||
20448 | * predict.def: Define a new predictor. | |
20449 | ||
20450 | 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com> | |
20451 | ||
20452 | * config/arc/arc.opt (mtp-regno): Update text. | |
20453 | ||
20454 | 2016-06-16 Renlin Li <renlin.li@arm.com> | |
20455 | ||
20456 | * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo. | |
20457 | ||
20458 | 2016-06-16 Jakub Jelinek <jakub@redhat.com> | |
20459 | ||
20460 | PR target/71554 | |
20461 | * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p. | |
20462 | (setcc + and peephole2): Likewise. | |
20463 | ||
20464 | PR rtl-optimization/71532 | |
20465 | * cse.c (cse_insn): For const/pure calls, invalidate argument passing | |
20466 | memory slots. | |
20467 | ||
20468 | 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com> | |
20469 | ||
20470 | * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading | |
20471 | DImode constants with XXSPLTIB in vector registers. | |
20472 | (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both | |
20473 | vsx_extract_<mode>_internal{1,2} into a single insn that handles | |
20474 | direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes | |
20475 | extraction of the element at the top of the register as a scalar | |
20476 | value. | |
20477 | (vsx_extract_<mode>_internal1): Likewise. | |
20478 | (vsx_extract_<mode>_internal2): Likewise. | |
20479 | * config/rs6000/constraints.md (wi constraint): Remove a comment | |
20480 | about DImode not being allowed in Altivec registers. | |
20481 | (wB constraint): New constraint for constants that can be | |
20482 | generated in Altivec registers with VSPLTISW/VUPKHSW. | |
20483 | * config/rs6000/predicates.md (xxspltib_constant_split): Update | |
20484 | comments. | |
20485 | (xxspltib_constant_nosplit): Likewise. | |
20486 | * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add | |
20487 | support for -mupper-regs-di to enable DImode to go into Altivec | |
20488 | registers. | |
20489 | (POWERPC_MASKS): Likewise. | |
20490 | (power7 cpu): Likewise. | |
20491 | * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise. | |
20492 | * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support | |
20493 | for DImode being allowed in Altivec registers. Update wi/wj | |
20494 | constraints. Set scalar_in_vmx_p flag. | |
20495 | (rs6000_option_override_internal): Add checks for -mupper-regs-di. | |
20496 | (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't | |
20497 | return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB. | |
20498 | (rs6000_opt_masks): Add -mupper-regs-di. | |
20499 | * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use | |
20500 | direct move to use wi and not wj. | |
20501 | (lfiwzx): Likewise. | |
20502 | (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single | |
20503 | alternative. | |
20504 | (floatunssi<mode>2_lfiwzx_mem): Likewise. | |
20505 | (fix_trunc<mode>di2_fctidz): Change second alternative to allow | |
20506 | any VSX register, instead of just Altivec registers, to allow | |
20507 | either operand to be an Altivec register or both. | |
20508 | (fixuns_trunc<mode>di2_fctiduz): Likewise. | |
20509 | (movdi_internal32): Add support for -mupper-regs-di. Add support | |
20510 | to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow | |
20511 | the alternatives and attributes to be lined up to be easier to | |
20512 | read. | |
20513 | (movdi_internal64): Likewise. | |
20514 | (64-bit DImode splitters): Change predicates to only split loading | |
20515 | up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to | |
20516 | load constants in ISA 3.0 or ISA 2.07 respectively. | |
20517 | * doc/invoke.texi (RS/6000 and PowerPC Options): Document | |
20518 | -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to | |
20519 | mention -mcpu=power9 sets these options. | |
20520 | * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the | |
20521 | wB constraint. | |
20522 | ||
20523 | 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com> | |
20524 | ||
20525 | PR target/67353 | |
20526 | * config/avr/avr.c (avr_set_current_function): Warn misspelled | |
20527 | interrupt/ signal handler if -Wmisspelled-isr flag is enabled. | |
20528 | * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled | |
20529 | by default to warn misspelled interrupt/ signal handler. | |
20530 | * doc/invoke.texi (AVR Options): Document it. Update description | |
20531 | for -nodevicelib option. | |
20532 | ||
20533 | 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
20534 | ||
20535 | * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean | |
20536 | up parentheses. Use GET_MODE_UNIT_BITSIZE. | |
20537 | (aarch64_<sur>shll2_n<mode>): Likewise. | |
20538 | ||
20539 | 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com> | |
20540 | ||
20541 | PR middle-end/71529 | |
20542 | * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix | |
20543 | DECL_CONTEXT for copied arguments. | |
20544 | ||
20545 | 2016-06-15 Alan Hayward <alan.hayward@arm.com> | |
20546 | ||
20547 | PR tree-optimization/71483 | |
20548 | * tree-vect-loop.c (vectorizable_live_operation): Pick correct index | |
20549 | for slp | |
20550 | ||
20551 | 2016-06-15 Martin Liska <mliska@suse.cz> | |
20552 | ||
20553 | * predict.c (tree_predict_by_opcode): Call predict_edge_def | |
20554 | instead of predict_edge w/o a probability. | |
20555 | ||
20556 | 2016-06-15 Alan Hayward <alan.hayward@arm.com> | |
20557 | ||
20558 | PR tree-optimization/71439 | |
20559 | * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for | |
20560 | live PHIs. | |
20561 | ||
20562 | 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
20563 | ||
20564 | * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart | |
20565 | register subregs in SET_SRC. | |
20566 | ||
20567 | 2016-06-15 Richard Biener <rguenther@suse.de> | |
20568 | ||
20569 | * tree-vect-stmts.c (vectorizable_store): Remove strided grouped | |
20570 | store restrictions. | |
20571 | ||
20572 | 2016-06-15 Richard Biener <rguenther@suse.de> | |
20573 | ||
20574 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do | |
20575 | not consider dependences between accesses that belong to the | |
20576 | same group. | |
20577 | (vect_analyze_data_ref_dependences): Do not analyze read-read | |
20578 | or self-dependences. | |
20579 | ||
20580 | 2016-06-14 David Malcolm <dmalcolm@redhat.com> | |
20581 | ||
20582 | * spellcheck-tree.c: Include spellcheck-tree.h rather than | |
20583 | spellcheck.h. | |
20584 | (find_closest_identifier): Reimplement in terms of | |
20585 | best_match<tree,tree>. | |
20586 | * spellcheck-tree.h: New file. | |
20587 | * spellcheck.c (struct edit_distance_traits<const char *>): New | |
20588 | struct. | |
20589 | (find_closest_string): Reimplement in terms of | |
20590 | best_match<const char *, const char *>. | |
20591 | * spellcheck.h (levenshtein_distance): Move prototype of tree-based | |
20592 | overload to spellcheck-tree.h. | |
20593 | (find_closest_identifier): Likewise. | |
20594 | (struct edit_distance_traits<T>): New template. | |
20595 | (class best_match): New class. | |
20596 | ||
20597 | 2016-06-14 David Malcolm <dmalcolm@redhat.com> | |
20598 | ||
20599 | * selftest-run-tests.c (selftest::run_tests): Call | |
20600 | selftest::spellcheck_tree_c_tests. | |
20601 | * selftest.h (selftest::spellcheck_tree_c_tests): New decl. | |
20602 | * spellcheck-tree.c: Include selftest.h and stringpool.h. | |
20603 | (selftest::test_find_closest_identifier): New function. | |
20604 | (selftest::spellcheck_tree_c_tests): New function. | |
20605 | * spellcheck.c (selftest::test_find_closest_string): Verify that | |
20606 | the order of the vec does not affect the results for this case. | |
20607 | (selftest::test_data): New array. | |
20608 | (selftest::test_metric_conditions): New function. | |
20609 | (selftest::spellcheck_c_tests): Add a test of case-comparison. | |
20610 | Call selftest::test_metric_conditions. | |
20611 | ||
20612 | 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
20613 | ||
20614 | * config/rs6000/rs6000-builtin.def (commentary): Typo. | |
20615 | (BU_P9_MISC_1): Likewise. | |
20616 | (BU_P9_64BIT_MISC_0): Likewise. | |
20617 | (BU_P9_MISC_0): Likewise. | |
20618 | ||
20619 | 2016-06-14 David Malcolm <dmalcolm@redhat.com> | |
20620 | ||
20621 | * gcc-rich-location.c | |
20622 | (gcc_rich_location::add_fixit_misspelled_id): New method. | |
20623 | * gcc-rich-location.h | |
20624 | (gcc_rich_location::add_fixit_misspelled_id): Add decl. | |
20625 | ||
20626 | 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org> | |
20627 | ||
20628 | * config/arm/freebsd.h: Only enable unaligned access for armv6 on | |
20629 | FreeBSD 11 and above. | |
20630 | ||
20631 | 2016-06-14 Uros Bizjak <ubizjak@gmail.com> | |
20632 | ||
20633 | * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE. | |
20634 | ||
20635 | 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
20636 | ||
20637 | * expmed.h: Close parenthesis in "at your option" in copyright | |
20638 | boilerplate. | |
20639 | * lower-subreg.h: Likewise. | |
20640 | ||
20641 | 2016-06-14 Richard Biener <rguenther@suse.de> | |
20642 | ||
20643 | PR middle-end/71526 | |
20644 | * genmatch.c (expr::gen_transform): Use in_type for comparisons | |
20645 | if available. | |
20646 | ||
20647 | 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
20648 | ||
20649 | * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): | |
20650 | New function. | |
20651 | (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle | |
20652 | mask+shift version. | |
20653 | * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p): | |
20654 | New prototype. | |
20655 | * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace | |
20656 | matching condition with aarch64_mask_and_shift_for_ubfiz_p. | |
20657 | ||
20658 | 2016-06-14 Richard Biener <rguenther@suse.de> | |
20659 | ||
20660 | PR tree-optimization/71522 | |
20661 | * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float | |
20662 | copying into float copying. | |
20663 | ||
20664 | 2016-06-14 Jakub Jelinek <jakub@redhat.com> | |
20665 | ||
20666 | PR tree-optimization/71520 | |
20667 | * tree-ssa-tail-merge.c (find_duplicate): Handle labels. | |
20668 | (replace_block_by): Move user labels from bb1 to bb2. | |
20669 | ||
20670 | 2016-06-14 Richard Biener <rguenther@suse.de> | |
20671 | ||
20672 | PR middle-end/71310 | |
20673 | PR bootstrap/71510 | |
20674 | * expr.h (get_bit_range): Declare. | |
20675 | * expr.c (get_bit_range): Export. | |
20676 | * fold-const.c (optimize_bit_field_compare): Use get_bit_range and | |
20677 | word_mode again to constrain the bitfield access. | |
20678 | ||
20679 | 2016-06-14 Richard Biener <rguenther@suse.de> | |
20680 | ||
20681 | PR tree-optimization/71521 | |
20682 | * tree-vrp.c (extract_range_from_binary_expr_1): Guard | |
20683 | division int_const_binop against zero divisor. | |
20684 | ||
20685 | 2016-06-13 Uros Bizjak <ubizjak@gmail.com> | |
20686 | ||
20687 | * config/i386/i386.md (signbittf2): New expander. | |
20688 | * config/i386/sse.md (ptesttf2): New insn pattern. | |
20689 | ||
20690 | 2016-06-13 David Malcolm <dmalcolm@redhat.com> | |
20691 | ||
20692 | PR bootstrap/71481 | |
20693 | * input.c (selftest::test_reading_source_line): Avoid reading from | |
20694 | __FILE__ by creating a tempfile with known content and reading | |
20695 | from that instead. | |
20696 | ||
20697 | 2016-06-13 David Malcolm <dmalcolm@redhat.com> | |
20698 | ||
20699 | * pretty-print.c (assert_pp_format_colored): Skip the test if | |
20700 | GCC_COLORS is set. | |
20701 | (test_pp_format): Remove comment about GCC_COLORS. | |
20702 | ||
20703 | 2016-06-13 David Malcolm <dmalcolm@redhat.com> | |
20704 | ||
20705 | * input.c (test_reading_source_line): Use SELFTEST_LOCATION. | |
20706 | * pretty-print.c (assert_pp_format_va): Add location param and use | |
20707 | it with ASSERT_STREQ_AT. | |
20708 | (assert_pp_format): Add location param and pass it to | |
20709 | assert_pp_format_va. | |
20710 | (assert_pp_format_colored): Likewise. | |
20711 | (ASSERT_PP_FORMAT_1): New. | |
20712 | (ASSERT_PP_FORMAT_2): New. | |
20713 | (ASSERT_PP_FORMAT_3): New. | |
20714 | (test_pp_format): Provide SELFTEST_LOCATION throughout, either | |
20715 | explicitly, or implicitly via the above macros. | |
20716 | * selftest.c (selftest::pass): Use a selftest::location rather | |
20717 | than file and line. | |
20718 | (selftest::fail): Likewise. Print the function name. | |
20719 | (selftest::fail_formatted): Likewise. | |
20720 | (selftest::assert_streq): Use a selftest::location rather than | |
20721 | file and line. | |
20722 | * selftest.h (selftest::location): New struct. | |
20723 | (SELFTEST_LOCATION): New macro. | |
20724 | (selftest::pass): Accept a const location & rather than file | |
20725 | and line. | |
20726 | (selftest::fail): Likewise. | |
20727 | (selftest::fail_formatted): Likewise. | |
20728 | (selftest::assert_streq): Likewise. | |
20729 | (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION. | |
20730 | (ASSERT_FALSE): Likewise. | |
20731 | (ASSERT_EQ): Likewise. | |
20732 | (ASSERT_NE): Likewise. | |
20733 | (ASSERT_STREQ): Likewise. | |
20734 | (ASSERT_PRED1): Likewise. | |
20735 | (ASSERT_STREQ_AT): New macro. | |
20736 | ||
20737 | 2016-06-13 David Malcolm <dmalcolm@redhat.com> | |
20738 | ||
20739 | * selftest.c (selftest::fail_formatted): New function. | |
20740 | (selftest::assert_streq): New function. | |
20741 | * selftest.h (selftests::fail_formatted): New decl. | |
20742 | (selftest::assert_streq): New decl. | |
20743 | (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq. | |
20744 | ||
20745 | 2016-06-13 Jeff Law <law@redhat.com> | |
20746 | ||
20747 | PR tree-optimization/71403 | |
20748 | * tree-ssa-threadbackward.c | |
20749 | (convert_and_register_jump_thread_path): No longer accept reference | |
20750 | to path. Do not pop items off the path anymore. | |
20751 | (fsm_find_control_statement_thread_paths): Do not allow threading | |
20752 | to a deeper loop nest. Pop the last item off the path here rather | |
20753 | than in convert_and_register_jump_thread_path. | |
20754 | ||
20755 | 2016-06-13 Evandro Menezes <e.menezes@samsung.com> | |
20756 | Wilco Dijkstra <Wilco.Dijkstra@arm.com> | |
20757 | ||
20758 | [AArch64] Emit division using the Newton series | |
20759 | ||
20760 | * config/aarch64/aarch64-protos.h | |
20761 | (cpu_approx_modes): Add new member "division". | |
20762 | (aarch64_emit_approx_div): Declare new function. | |
20763 | * config/aarch64/aarch64.c | |
20764 | (generic_approx_modes): New member "division". | |
20765 | (exynosm1_approx_modes): Likewise. | |
20766 | (xgene1_approx_modes): Likewise. | |
20767 | (aarch64_emit_approx_div): Define new function. | |
20768 | * config/aarch64/aarch64.md ("div<mode>3"): New expansion. | |
20769 | * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise. | |
20770 | * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option. | |
20771 | * doc/invoke.texi (-mlow-precision-div): Describe new option. | |
20772 | ||
20773 | 2016-06-13 Evandro Menezes <e.menezes@samsung.com> | |
20774 | Wilco Dijkstra <wilco.dijkstra@arm.com> | |
20775 | ||
20776 | [AArch64] Emit square root using the Newton series | |
20777 | ||
20778 | * config/aarch64/aarch64-protos.h | |
20779 | (aarch64_emit_approx_rsqrt): Replace with new function | |
20780 | "aarch64_emit_approx_sqrt". | |
20781 | (cpu_approx_modes): New member "sqrt". | |
20782 | * config/aarch64/aarch64.c | |
20783 | (generic_approx_modes): New member "sqrt". | |
20784 | (exynosm1_approx_modes): Likewise. | |
20785 | (xgene1_approx_modes): Likewise. | |
20786 | (aarch64_emit_approx_rsqrt): Replace with new function | |
20787 | "aarch64_emit_approx_sqrt". | |
20788 | (aarch64_override_options_after_change_1): Handle new option. | |
20789 | * config/aarch64/aarch64-simd.md | |
20790 | (rsqrt<mode>2): Use new function instead. | |
20791 | (sqrt<mode>2): New expansion and insn definitions. | |
20792 | * config/aarch64/aarch64.md: Likewise. | |
20793 | * config/aarch64/aarch64.opt | |
20794 | (mlow-precision-sqrt): Add new option description. | |
20795 | * doc/invoke.texi (mlow-precision-sqrt): Likewise. | |
20796 | ||
20797 | 2016-06-13 Evandro Menezes <e.menezes@samsung.com> | |
20798 | ||
20799 | [AArch64] Add more choices for the reciprocal square root approximation | |
20800 | ||
20801 | Allow a target to prefer such operation depending on the operation mode. | |
20802 | ||
20803 | * config/aarch64/aarch64-protos.h | |
20804 | (AARCH64_APPROX_MODE): New macro. | |
20805 | (AARCH64_APPROX_{NONE,ALL}): Likewise. | |
20806 | (cpu_approx_modes): New structure. | |
20807 | (tune_params): New member "approx_modes". | |
20808 | * config/aarch64/aarch64-tuning-flags.def | |
20809 | (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro. | |
20810 | * config/aarch64/aarch64.c | |
20811 | (generic_approx_modes): New core "cpu_approx_modes" structure. | |
20812 | (exynosm1_approx_modes): Likewise. | |
20813 | (xgene1_approx_modes): Likewise. | |
20814 | (generic_tunings): New member "approx_modes". | |
20815 | (cortexa35_tunings): Likewise. | |
20816 | (cortexa53_tunings): Likewise. | |
20817 | (cortexa57_tunings): Likewise. | |
20818 | (cortexa72_tunings): Likewise. | |
20819 | (exynosm1_tunings): Likewise. | |
20820 | (thunderx_tunings): Likewise. | |
20821 | (xgene1_tunings): Likewise. | |
20822 | (use_rsqrt_p): New argument for the mode and use new member from | |
20823 | "tune_params". | |
20824 | (aarch64_builtin_reciprocal): Devise mode from builtin. | |
20825 | (aarch64_optab_supported_p): New argument for the mode. | |
20826 | * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description. | |
20827 | ||
20828 | 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
20829 | ||
20830 | * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the | |
20831 | RS6000_BTM_MODULO flag into the set of flags that are considered | |
20832 | to be part of the common configuration. | |
20833 | ||
20834 | 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
20835 | ||
20836 | * config/rs6000/altivec.h (vec_absd): New macro for vector absolute | |
20837 | difference unsigned. | |
20838 | (vec_absdb): New macro for vector absolute difference unsigned | |
20839 | byte. | |
20840 | (vec_absdh): New macro for vector absolute difference unsigned | |
20841 | half-word. | |
20842 | (vec_absdw): New macro for vector absolute difference unsigned word. | |
20843 | * config/rs6000/altivec.md (UNSPEC_VADU): New value. | |
20844 | (vadu<mode>3): New insn. | |
20845 | (*p9_vadu<mode>3): New insn. | |
20846 | * config/rs6000/rs6000-builtin.def (vadub): New built-in | |
20847 | definition. | |
20848 | (vaduh): New built-in definition. | |
20849 | (vaduw): New built-in definition. | |
20850 | (vadu): New overloaded built-in definition. | |
20851 | (vadub): New overloaded built-in definition. | |
20852 | (vaduh): New overloaded built-in definition. | |
20853 | (vaduw): New overloaded built-in definition. | |
20854 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
20855 | overloaded vector absolute difference unsigned functions. | |
20856 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document | |
20857 | the ISA 3.0 vector absolute difference unsigned built-in functions. | |
20858 | ||
20859 | 2016-06-13 Eric Botcazou <ebotcazou@adacore.com> | |
20860 | ||
20861 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and | |
20862 | update shared_lookup_references only once after changing operands. | |
20863 | ||
20864 | 2016-06-13 Thomas Schwinge <thomas@codesourcery.com> | |
20865 | ||
20866 | PR middle-end/71373 | |
20867 | * tree-nested.c (convert_nonlocal_omp_clauses) | |
20868 | (convert_local_omp_clauses): Document missing OMP_CLAUSE_*. | |
20869 | ||
20870 | * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo. | |
20871 | * tree.def (CASE_LABEL_EXPR): Likewise. | |
20872 | ||
20873 | 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
20874 | ||
20875 | PR bootstrap/71481 | |
20876 | * input.c (test_builtins): Fix an assertion. | |
20877 | ||
20878 | 2016-06-13 Uros Bizjak <ubizjak@gmail.com> | |
20879 | ||
20880 | * config/i386/i386.md (paritydi2): Use ix86_expand_setcc. | |
20881 | (paritysi2): Ditto. | |
20882 | (isinfxf2): Ditto. | |
20883 | (isinf<mode>2): Ditto. | |
20884 | ||
20885 | 2016-06-13 Uros Bizjak <ubizjak@gmail.com> | |
20886 | ||
20887 | * ggc-tests.c (test_finalization): Only test need_finalization_p | |
20888 | for GCC_VERSION >= 4003. | |
20889 | ||
20890 | 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
20891 | ||
20892 | * config/s390/vecintrin.h: Fix file description in comment. | |
20893 | ||
20894 | 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
20895 | ||
20896 | * config/s390/s390-builtin-types.def: Change builtin type naming | |
20897 | scheme to match builtin-types.def. | |
20898 | ||
20899 | 2016-06-13 Marc Glisse <marc.glisse@inria.fr> | |
20900 | ||
20901 | * fold-const.c (optimize_minmax_comparison): Remove. | |
20902 | (fold_comparison): Remove call to the above. | |
20903 | * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2): | |
20904 | New transformations. | |
20905 | ||
20906 | 2016-06-13 Alan Hayward <alan.hayward@arm.com> | |
20907 | ||
20908 | PR tree-optimization/71416 | |
20909 | * tree-vect-loop.c (vectorizable_live_operation): Let worklist have | |
20910 | multiple entries | |
20911 | ||
20912 | 2016-06-13 Martin Liska <mliska@suse.cz> | |
20913 | ||
20914 | * predict.c (enum predictor_reason): Prefix enum with REASON_. | |
20915 | (combine_predictions_for_insn): Likewise. | |
20916 | (prune_predictions_for_bb): Likewise. | |
20917 | (combine_predictions_for_bb): Likewise. | |
20918 | ||
20919 | 2016-06-13 Richard Biener <rguenther@suse.de> | |
20920 | ||
20921 | PR tree-optimization/71505 | |
20922 | * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make | |
20923 | assert match comment. | |
20924 | ||
20925 | 2016-06-13 Marek Polacek <polacek@redhat.com> | |
20926 | ||
20927 | PR middle-end/71476 | |
20928 | * gimplify.c (maybe_warn_switch_unreachable): Factored out of | |
20929 | gimplify_switch_expr. | |
20930 | (warn_switch_unreachable_r): New function. | |
20931 | ||
20932 | 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
20933 | ||
20934 | PR target/71379 | |
20935 | * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by | |
20936 | one. | |
20937 | ||
20938 | 2016-06-13 Richard Biener <rguenther@suse.de> | |
20939 | ||
20940 | PR middle-end/64516 | |
20941 | * fold-const.c (fold_unary_loc): Preserve alignment when | |
20942 | folding a VIEW_CONVERT_EXPR into a MEM_REF. | |
20943 | ||
20944 | 2016-06-13 Martin Liska <mliska@suse.cz> | |
20945 | ||
20946 | PR sanitizer/71458 | |
20947 | * toplev.c (process_options): Do not enable -fcheck-pointer-bounds | |
20948 | w/ -fsanitize=bounds. | |
20949 | ||
20950 | 2016-06-12 Uros Bizjak <ubizjak@gmail.com> | |
20951 | ||
20952 | * config/i386/i386.c (ix86_init_builtins): Calculate | |
20953 | FLOAT128_FTYPE_CONST_STRING function type only once. | |
20954 | * doc/extend.texi (x86 Built-in Functions): Update text, __float128 | |
20955 | built-in functions are available for x86-32 and x86-64 targets. | |
20956 | ||
20957 | 2016-06-12 Uros Bizjak <ubizjak@gmail.com> | |
20958 | ||
20959 | PR target/71241 | |
20960 | * config/i386/i386.i386-builtin-types.def (CONST_STRING): | |
20961 | New primitive type. | |
20962 | (FLOAT128_FTYPE_CONST_STRING): New function type. | |
20963 | * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New. | |
20964 | [IX86_BUILTIN_NANSQ]: Ditto. | |
20965 | (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ. | |
20966 | (ix86_init_builtin_types): Declare const_string_type_node. | |
20967 | (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq | |
20968 | builtin functions. | |
20969 | (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ. | |
20970 | * doc/extend.texi (x86 Built-in Functions): Document | |
20971 | __builtin_nanq and __builtin_nansq. | |
20972 | ||
20973 | 2016-06-11 Jiong Wang <jiong.wang@arm.com> | |
20974 | ||
20975 | PR target/71061 | |
20976 | * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration. | |
20977 | * config/arm/arm.c (arm_attr_length_pop_multi): New function to return | |
20978 | length for pop patterns. | |
20979 | (arm_attr_length_push_multi): Update comments. | |
20980 | * config/arm/arm.md (*load_multiple_with_writeback): Set "length" | |
20981 | attribute. | |
20982 | (*pop_multiple_with_writeback_and_return): Likewise. | |
20983 | (*pop_multiple_with_return): Likewise. | |
20984 | ||
20985 | 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org> | |
20986 | ||
20987 | PR middle-end/71310 | |
20988 | * fold-const.c (optimize_bit_field_compare): Don't try to use | |
20989 | word_mode unconditionally for reading the bit field, look at | |
20990 | DECL_BIT_FIELD_REPRESENTATIVE instead. | |
20991 | ||
20992 | 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org> | |
20993 | ||
20994 | PR middle-end/71478 | |
20995 | * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for | |
20996 | vector integer type. | |
20997 | ||
20998 | 2016-06-10 Jakub Jelinek <jakub@redhat.com> | |
20999 | ||
21000 | PR middle-end/71494 | |
21001 | * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO | |
21002 | without LABEL_DECL, set *handled_ops_p to false instead of true. | |
21003 | ||
21004 | 2016-06-10 Martin Sebor <msebor@redhat.com> | |
21005 | ||
21006 | PR c/71392 | |
21007 | * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro. | |
21008 | (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same. | |
21009 | * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use | |
21010 | them. | |
21011 | (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same. | |
21012 | (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same. | |
21013 | (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same. | |
21014 | (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same. | |
21015 | (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same. | |
21016 | (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same. | |
21017 | (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same. | |
21018 | (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same. | |
21019 | ||
21020 | 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
21021 | ||
21022 | * config/arm/arm.h (pool_vector_label, | |
21023 | return_used_this_function): Remove. | |
21024 | ||
21025 | 2016-06-10 Jeff Law <law@redhat.com> | |
21026 | ||
21027 | PR tree-optimization/71335 | |
21028 | * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out | |
21029 | zero length paths here. | |
21030 | (convert_and_register_jump_thread_path): Remove hacks related to | |
21031 | duplicated blocks in the jump thread path. | |
21032 | (fsm_find_control_statement_thread_paths): Avoid putting the same | |
21033 | block on the thread path twice, but ensure the thread path is | |
21034 | unchanged from the caller's point of view. | |
21035 | ||
21036 | 2016-06-10 Jan Hubicka <hubicka@ucw.cz> | |
21037 | ||
21038 | * predict.c (predict_loops): Remove PRED_LOOP_BRANCH. | |
21039 | * predict.def (PRED_LOOP_BRANCH): Remove. | |
21040 | ||
21041 | 2016-06-10 David Malcolm <dmalcolm@redhat.com> | |
21042 | ||
21043 | * Makefile.in (OBJS): Add ggc-tests.o. | |
21044 | (GTFILES): Add ggc-tests.c. | |
21045 | * ggc-tests.c: New file. | |
21046 | * selftest-run-tests.c (selftest::run_tests): Call | |
21047 | selftest::ggc_tests_c_tests. | |
21048 | * selftest.h (selftest::ggc_tests_c_tests): New prototype. | |
21049 | ||
21050 | 2016-06-10 Alexander Monakov <amonakov@ispras.ru> | |
21051 | ||
21052 | * match.pd (-1 / B < A): Use :c to avoid pattern duplication. | |
21053 | ||
21054 | 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com> | |
21055 | ||
21056 | PR sanitizer/71480 | |
21057 | * varasm.c (place_block_symbol): Adjust alignment for asan protected | |
21058 | STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P. | |
21059 | ||
21060 | 2016-06-10 Jan Hubicka <hubicka@ucw.cz> | |
21061 | ||
21062 | * profile.c: Include cfgloop.h. | |
21063 | (branch_prob): Compute estimated number of iterations. | |
21064 | * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not | |
21065 | recompute estimate number of iterations from profile. | |
21066 | ||
21067 | 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
21068 | ||
21069 | PR inline-asm/68843 | |
21070 | * reg-stack.c (check_asm_stack_operands): Explicit input arguments | |
21071 | must be grouped on top of stack. Don't force early clobber | |
21072 | on ordinary reg outputs. | |
21073 | ||
21074 | 2016-06-10 Richard Biener <rguenther@suse.de> | |
21075 | ||
21076 | * targhooks.c (default_builtin_vectorization_cost): Adjust | |
21077 | vec_construct cost. | |
21078 | ||
21079 | 2016-06-10 Richard Biener <rguenther@suse.de> | |
21080 | ||
21081 | * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure | |
21082 | to fold the RHS to a constant if possible. | |
21083 | ||
21084 | 2016-06-10 Thomas Schwinge <thomas@codesourcery.com> | |
21085 | ||
21086 | PR middle-end/71373 | |
21087 | * tree-nested.c (convert_nonlocal_omp_clauses) | |
21088 | (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC, | |
21089 | OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO, | |
21090 | OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE. | |
21091 | ||
21092 | * gimplify.c (gimplify_adjust_omp_clauses): Discard | |
21093 | OMP_CLAUSE_TILE. | |
21094 | * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE. | |
21095 | ||
21096 | * omp-low.c (scan_sharing_clauses): Don't expect | |
21097 | OMP_CLAUSE__CACHE_. | |
21098 | ||
21099 | 2016-06-10 Alan Hayward <alan.hayward@arm.com> | |
21100 | ||
21101 | PR tree-optimization/71407 | |
21102 | PR tree-optimization/71416 | |
21103 | * tree-vect-loop.c (vectorizable_live_operation): Use vectype for | |
21104 | BIT_FIELD_REF type. | |
21105 | ||
21106 | 2016-06-10 Richard Biener <rguenther@suse.de> | |
21107 | ||
21108 | PR middle-end/71477 | |
21109 | * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound. | |
21110 | ||
21111 | 2016-06-09 Eric Botcazou <ebotcazou@adacore.com> | |
21112 | ||
21113 | * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET. | |
21114 | ||
21115 | 2016-06-09 Vladimir Makarov <vmakarov@redhat.com> | |
21116 | Jiong Wang <jiong.wang@arm.com> | |
21117 | ||
21118 | PR rtl-optimization/70751 | |
21119 | * lra-constraints.c (process_alt_operands): Recognize Non-pseudo | |
21120 | spilled into memory. | |
21121 | ||
21122 | 2016-06-09 Jonathan Yong <10walls@gmail.com> | |
21123 | ||
21124 | Revert: | |
21125 | 2015-09-21 Jonathan Yong <10walls@gmail.com> | |
21126 | ||
21127 | * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search | |
21128 | sysroot/usr/lib/32api for additional win32 libraries, | |
21129 | fixes failing Cygwin bootstrapping. | |
21130 | ||
21131 | 2016-06-09 Marcin Baczyński <marbacz@gmail.com> | |
21132 | ||
21133 | * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer): | |
21134 | Delete. | |
21135 | ||
21136 | 2016-06-09 David Malcolm <dmalcolm@redhat.com> | |
21137 | ||
21138 | PR bootstrap/71471 | |
21139 | * pretty-print.c (pp_indent): Specify that %p is printed in a | |
21140 | host-dependent manner. | |
21141 | (test_pp_format): Remove the test for %p. | |
21142 | ||
21143 | 2016-06-09 Maciej W. Rozycki <macro@imgtec.com> | |
21144 | ||
21145 | * config/mips/mips.c (mips_output_jump): Fix formatting. | |
21146 | ||
21147 | 2016-06-09 Richard Biener <rguenther@suse.de> | |
21148 | ||
21149 | PR tree-optimization/71462 | |
21150 | * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against | |
21151 | removed blocks. | |
21152 | ||
21153 | 2016-06-09 Martin Liska <mliska@suse.cz> | |
21154 | ||
21155 | * predict.c (dump_prediction): Add new argument. | |
21156 | (enum predictor_reason): New enum. | |
21157 | (struct predictor_hash): New struct. | |
21158 | (predictor_hash::hash): New function. | |
21159 | (predictor_hash::equal): Likewise. | |
21160 | (not_removed_prediction_p): New function. | |
21161 | (prune_predictions_for_bb): Likewise. | |
21162 | (combine_predictions_for_bb): Prune predictions. | |
21163 | ||
21164 | 2016-06-09 Martin Liska <mliska@suse.cz> | |
21165 | ||
21166 | * predict.c (filter_predictions): New function. | |
21167 | (remove_predictions_associated_with_edge): Use the filter | |
21168 | function. | |
21169 | (equal_edge_p): New function. | |
21170 | ||
21171 | 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de> | |
21172 | ||
21173 | * doc/invoke.texi (ARM Options): Use lexicographical ordering. | |
21174 | Correct usage of @samp vs @option, add @samp where appropriate. | |
21175 | Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312. | |
21176 | Add armv6s-m and document it, as it is no official ARM name. | |
21177 | ||
21178 | 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
21179 | ||
21180 | * ifcvt.c (struct noce_if_info): Add transform_name field. | |
21181 | (noce_try_move): Set if_info->transform_name to the function name. | |
21182 | (noce_try_ifelse_collapse): Likewise. | |
21183 | (noce_try_store_flag): Likewise. | |
21184 | (noce_try_inverse_constants): Likewise. | |
21185 | (noce_try_store_flag_constants): Likewise. | |
21186 | (noce_try_addcc): Likewise. | |
21187 | (noce_try_store_flag_mask): Likewise. | |
21188 | (noce_try_cmove): Likewise. | |
21189 | (noce_try_cmove_arith): Likewise. | |
21190 | (noce_try_minmax): Likewise. | |
21191 | (noce_try_abs): Likewise. | |
21192 | (noce_try_sign_mask): Likewise. | |
21193 | (noce_try_bitop): Likewise. | |
21194 | (noce_convert_multiple_sets): Likewise. | |
21195 | (noce_process_if_block): Print if_info->transform_name to | |
21196 | dump_file if transformation succeeded. | |
21197 | ||
21198 | 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
21199 | ||
21200 | * config/arm/cortex-a57.md (cortex_a57_alu): | |
21201 | Handle csel type. | |
21202 | ||
21203 | 2016-06-08 Martin Sebor <msebor@redhat.com> | |
21204 | Jakub Jelinek <jakub@redhat.com> | |
21205 | ||
21206 | PR c++/70507 | |
21207 | PR c/68120 | |
21208 | * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P, | |
21209 | BUILT_IN_MUL_OVERFLOW_P): New builtins. | |
21210 | * builtins.c: Include gimple-fold.h. | |
21211 | (fold_builtin_arith_overflow): Handle | |
21212 | BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P. | |
21213 | (fold_builtin_3): Likewise. | |
21214 | * doc/extend.texi (Integer Overflow Builtins): Document | |
21215 | __builtin_{add,sub,mul}_overflow_p. | |
21216 | ||
21217 | 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com> | |
21218 | ||
21219 | * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the | |
21220 | SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma). | |
21221 | ||
21222 | 2016-06-08 Alan Lawrence <alan.lawrence@arm.com> | |
21223 | ||
21224 | * config/aarch64/aarch64.c (aarch64_function_arg_alignment): | |
21225 | Rewrite, looking one level down for records and arrays. | |
21226 | ||
21227 | 2016-06-08 David Malcolm <dmalcolm@redhat.com> | |
21228 | ||
21229 | * pretty-print.c: Include "selftest.h". | |
21230 | (pp_format): Fix comment. | |
21231 | (identifier_to_locale): Likewise. | |
21232 | (selftest::test_basic_printing): New function. | |
21233 | (selftest::assert_pp_format): New function. | |
21234 | (selftest::test_pp_format): New function. | |
21235 | (selftest::pretty_print_c_tests): New function. | |
21236 | * selftest-run-tests.c (selftest::run_tests): Call | |
21237 | selftest::pretty_print_c_tests. | |
21238 | * selftest.h (pretty_print_c_tests): New declaration. | |
21239 | ||
21240 | 2016-06-07 Jan Hubicka <hubicka@ucw.cz> | |
21241 | ||
21242 | * invoke.texi (max-loop-headers-insns): Document. | |
21243 | * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New. | |
21244 | * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment. | |
21245 | (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS. | |
21246 | ||
21247 | 2016-06-08 Richard Biener <rguenther@suse.de> | |
21248 | ||
21249 | * tree-vect-stmts.c (vectorizable_load): Remove restrictions | |
21250 | on strided SLP loads and fall back to scalar loads in case | |
21251 | we can't chunk them. | |
21252 | ||
21253 | 2016-06-08 Richard Biener <rguenther@suse.de> | |
21254 | ||
21255 | PR tree-optimization/71452 | |
21256 | * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the | |
21257 | type used for the SSA rewrite has enough precision to cover | |
21258 | the dynamic type of the location. | |
21259 | ||
21260 | 2016-06-08 Jakub Jelinek <jakub@redhat.com> | |
21261 | Richard Biener <rguenther@suse.de> | |
21262 | ||
21263 | PR c++/71448 | |
21264 | * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0) | |
21265 | the same as DECL_P (base0) for indirect_base0. Use equality_code | |
21266 | in one further place. | |
21267 | ||
21268 | 2016-06-08 Richard Sandiford <richard.sandiford@arm.com> | |
21269 | ||
21270 | * expmed.c (store_bit_field_1): Do not restrict a multiword op0 | |
21271 | to one word if the field is known to overlap other words. | |
21272 | (extract_bit_field_1): Likewise. | |
21273 | (store_split_bit_field): Remove compensating code. | |
21274 | (extract_split_bit_field): Likewise. | |
21275 | ||
21276 | 2016-06-08 Bernd Schmidt <bschmidt@redhat.com> | |
21277 | ||
21278 | PR debug/71432 | |
21279 | PR ada/71413 | |
21280 | * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns. | |
21281 | ||
21282 | 2016-06-08 Jiong Wang <jiong.wang@arm.com> | |
21283 | ||
21284 | * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in | |
21285 | VDQF. | |
21286 | * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New. | |
21287 | (arch64_addpv4sf): Delete. | |
21288 | (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of | |
21289 | "gen_aarch64_addpv4sf". | |
21290 | * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use | |
21291 | builtin. | |
21292 | (vpadds_f32): Likewise. | |
21293 | (vpaddq_f32): Likewise. | |
21294 | (vpaddq_f64): Likewise. | |
21295 | ||
21296 | 2016-06-08 Jiong Wang <jiong.wang@arm.com> | |
21297 | ||
21298 | * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes | |
21299 | VALLF. | |
21300 | * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF | |
21301 | to VALLF. Rename to "fabd<mode>3". | |
21302 | "*fabd_scalar<mode>3): Delete. | |
21303 | * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly. | |
21304 | Use builtin. | |
21305 | (vabdd_f64): Likewise. | |
21306 | (vabd_f32): Likewise. | |
21307 | (vabd_f64): Likewise. | |
21308 | (vabdq_f32): Likewise. | |
21309 | (vabdq_f64): Likewise. | |
21310 | ||
21311 | 2016-06-08 Jiong Wang <jiong.wang@arm.com> | |
21312 | ||
21313 | * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes | |
21314 | VALLF. | |
21315 | * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to | |
21316 | "aarch64_rsqrts<mode>". | |
21317 | * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name. | |
21318 | * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use | |
21319 | builtin. | |
21320 | (vrsqrtsd_f64): Likewise. | |
21321 | (vrsqrts_f32): Likewise. | |
21322 | (vrsqrts_f64): Likewise. | |
21323 | (vrsqrtsq_f32): Likewise. | |
21324 | (vrsqrtsq_f64): Likewise. | |
21325 | ||
21326 | 2016-06-08 Jiong Wang <jiong.wang@arm.com> | |
21327 | ||
21328 | * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes | |
21329 | VALLF. | |
21330 | * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to | |
21331 | "aarch64_rsqrte<mode>". | |
21332 | * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name. | |
21333 | * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use | |
21334 | builtin. | |
21335 | (vrsqrted_f64): Likewise. | |
21336 | (vrsqrte_f32): Likewise. | |
21337 | (vrsqrte_f64): Likewise. | |
21338 | (vrsqrteq_f32): Likewise. | |
21339 | (vrsqrteq_f64): Likewise. | |
21340 | ||
21341 | 2016-06-08 Jiong Wang <jiong.wang@arm.com> | |
21342 | ||
21343 | * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes. | |
21344 | (ucvtf): Likewise. | |
21345 | (fcvtzs): Likewise. | |
21346 | (fcvtzu): Likewise. | |
21347 | * config/aarch64/aarch64-simd.md | |
21348 | (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New. | |
21349 | (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise. | |
21350 | * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly. | |
21351 | Use builtin. | |
21352 | (vcvt_n_f32_u32): Likewise. | |
21353 | (vcvt_n_s32_f32): Likewise. | |
21354 | (vcvt_n_u32_f32): Likewise. | |
21355 | (vcvtq_n_f32_s32): Likewise. | |
21356 | (vcvtq_n_f32_u32): Likewise. | |
21357 | (vcvtq_n_f64_s64): Likewise. | |
21358 | (vcvtq_n_f64_u64): Likewise. | |
21359 | (vcvtq_n_s32_f32): Likewise. | |
21360 | (vcvtq_n_s64_f64): Likewise. | |
21361 | (vcvtq_n_u32_f32): Likewise. | |
21362 | (vcvtq_n_u64_f64): Likewise. | |
21363 | * config/aarch64/iterators.md (VDQ_SDI): New mode iterator. | |
21364 | (VSDQ_SDI): Likewise. | |
21365 | (fcvt_target): Support V4DI, V4SI and V2SI. | |
21366 | (FCVT_TARGET): Likewise. | |
21367 | ||
21368 | 2016-06-08 Jiong Wang <jiong.wang@arm.com> | |
21369 | ||
21370 | * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New | |
21371 | (TYPES_BINOP_SUS): Likewise. | |
21372 | (aarch64_simd_builtin_data): Update include file name. | |
21373 | (aarch64_builtins): Likewise. | |
21374 | * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries | |
21375 | for conversion between scalar float-point and fixed-point. | |
21376 | (ucvtf): Likewise. | |
21377 | (fcvtzs): Likewise. | |
21378 | (fcvtzu): Likewise. | |
21379 | * config/aarch64/aarch64.md | |
21380 | (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New | |
21381 | pattern for conversion between scalar float to fixed-pointer. | |
21382 | (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise. | |
21383 | (UNSPEC_FCVTZS): New UNSPEC enumeration. | |
21384 | (UNSPEC_FCVTZU): Likewise. | |
21385 | (UNSPEC_SCVTF): Likewise. | |
21386 | (UNSPEC_UCVTF): Likewise. | |
21387 | * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly. | |
21388 | Use builtin. | |
21389 | (vcvtd_n_f64_u64): Likewise. | |
21390 | (vcvtd_n_s64_f64): Likewise. | |
21391 | (vcvtd_n_u64_f64): Likewise. | |
21392 | (vcvtd_n_f32_s32): Likewise. | |
21393 | (vcvts_n_f32_u32): Likewise. | |
21394 | (vcvtd_n_s32_f32): Likewise. | |
21395 | (vcvts_n_u32_f32): Likewise. | |
21396 | * config/aarch64/iterators.md (fcvt_target): Support integer to float | |
21397 | mapping. | |
21398 | (FCVT_TARGET): Likewise. | |
21399 | (FCVT_FIXED2F): New iterator. | |
21400 | (FCVT_F2FIXED): Likewise. | |
21401 | (fcvt_fixed_insn): New define_int_attr. | |
21402 | ||
21403 | 2016-06-07 Jan Hubicka <hubicka@ucw.cz> | |
21404 | ||
21405 | * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if | |
21406 | some statements was removed. | |
21407 | ||
21408 | 2016-06-08 Alan Hayward <alan.hayward@arm.com> | |
21409 | ||
21410 | * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline. | |
21411 | * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise. | |
21412 | (vect_can_advance_ivs_p): likewise. | |
21413 | (vect_update_ivs_after_vectorizer): likewise. | |
21414 | * tree-vect-loop.c (vect_determine_vectorization_factor): likewise. | |
21415 | (vect_analyze_scalar_cycles_1): likewise. | |
21416 | (vect_analyze_loop_operations): likewise. | |
21417 | (report_vect_op): likewise. | |
21418 | (vect_is_slp_reduction): likewise. | |
21419 | (vect_is_simple_reduction): likewise. | |
21420 | (get_initial_def_for_induction): likewise. | |
21421 | (vect_transform_loop): likewise. | |
21422 | * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise. | |
21423 | (vect_recog_sad_pattern): likewise. | |
21424 | (vect_recog_widen_sum_pattern): likewise. | |
21425 | (vect_recog_widening_pattern): likewise. | |
21426 | (vect_recog_divmod_pattern): likewise. | |
21427 | * tree-vect-slp.c (vect-build-slp_tree_1): likewise. | |
21428 | (vect_analyze_slp_instance): likewise. | |
21429 | (vect_transform_slp_perm_load): likewise. | |
21430 | (vect_schedule_slp_instance): likewise. | |
21431 | ||
21432 | 2016-06-07 Jan Hubicka <hubicka@ucw.cz> | |
21433 | ||
21434 | * predict.c (predict_iv_comparison): Mention that heuristics is broken. | |
21435 | (return_prediction): PRED_CONST_RETURN predict return as not taken. | |
21436 | * predict.def (PRED_CONTINUE): Change hitrate 50->67 | |
21437 | (PRED_LOOP_BRANCH): Document predictor as broken. | |
21438 | (PRED_LOOP_EXIT): Change hitrate 91->92. | |
21439 | (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83. | |
21440 | (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70. | |
21441 | (PRED_OPCODE_POSITIVE): Change hitrate 79->64. | |
21442 | (PRED_OPCODE_NONEQUAL): Change hitrate 91->66. | |
21443 | (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64 | |
21444 | (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66 | |
21445 | (PRED_CALL): Chane hitrate 71->67. | |
21446 | (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54. | |
21447 | (PRED_GOTO): Document as unused right now. | |
21448 | (PRED_CONST_RETURN): Change hitrate 67->69 | |
21449 | (PRED_NEGATIVE_RETURN): Change hitrate 96->98 | |
21450 | (PRED_NULL_RETURN): Change hitrate 91->90. | |
21451 | (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98. | |
21452 | (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues. | |
21453 | (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99. | |
21454 | ||
21455 | 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com> | |
21456 | ||
21457 | * config/rs6000/altivec.h: Add __builtin_vec_mul. | |
21458 | * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a | |
21459 | special case Altivec builtin. | |
21460 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove | |
21461 | VSX_BUILTIN_VEC_MUL (replaced with special case code). | |
21462 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add | |
21463 | code for ALTIVEC_BUILTIN_VEC_MUL. | |
21464 | * config/rs6000/rs6000.c (altivec_init_builtins): Add definition | |
21465 | for __builtin_vec_mul. | |
21466 | ||
21467 | 2016-06-07 Peter Bergner <bergner@vnet.ibm.com> | |
21468 | ||
21469 | * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and | |
21470 | -mno-htm. | |
21471 | ||
21472 | 2016-06-07 David Malcolm <dmalcolm@redhat.com> | |
21473 | ||
21474 | * spellcheck.c (selftest::test_find_closest_string): New function. | |
21475 | (spellcheck_c_tests): Call the above. | |
21476 | ||
21477 | 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
21478 | ||
21479 | * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable. | |
21480 | ||
21481 | 2016-06-07 Jakub Jelinek <jakub@redhat.com> | |
21482 | ||
21483 | * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and | |
21484 | Yv=Yv,C alternatives. | |
21485 | ||
21486 | 2016-06-07 Richard Biener <rguenther@suse.de> | |
21487 | ||
21488 | PR c/61564 | |
21489 | * common.opt (ffast-math): Make Optimization. | |
21490 | ||
21491 | 2016-06-07 Simon Dardis <simon.dardis@imgtec.com> | |
21492 | Prachi Godbole <prachi.godbole@imgtec.com> | |
21493 | ||
21494 | * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for | |
21495 | `fabs' and `fneg' type attributes. | |
21496 | (p5600_fpu_fabs): Add `fmove' to the comment. | |
21497 | ||
21498 | 2016-06-07 Jan Hubicka <hubicka@ucw.cz> | |
21499 | ||
21500 | * gimple.c: Include builtins.h | |
21501 | (gimple_inexpensive_call_p): New function. | |
21502 | * gimple.h (gimple_inexpensive_call_p): Declare. | |
21503 | * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it. | |
21504 | * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise; | |
21505 | fix formatting. | |
21506 | ||
21507 | 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com> | |
21508 | ||
21509 | * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New. | |
21510 | (inform, inform_at_rich_loc, inform_n, warning, warning_at, | |
21511 | warning_at_rich_loc, warning_n, pedwarn, permerror, | |
21512 | permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc, | |
21513 | sorry, fatal_error, internal_error, internal_error_no_backtrace): | |
21514 | Use the above. | |
21515 | ||
21516 | 2016-06-07 Richard Biener <rguenther@suse.de> | |
21517 | ||
21518 | PR tree-optimization/71428 | |
21519 | * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish | |
21520 | BIT_FIELD_REF op vs. load. | |
21521 | ||
21522 | 2016-06-07 Richard Biener <rguenther@suse.de> | |
21523 | ||
21524 | PR middle-end/71423 | |
21525 | * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison | |
21526 | for signed ops. | |
21527 | ||
21528 | 2016-06-06 John David Anglin <danglin@gcc.gnu.org> | |
21529 | ||
21530 | * config/pa/pa.md (call): Generate indirect long calls to non-local | |
21531 | functions on TARGET_64BIT. | |
21532 | (call_value): Likewise. | |
21533 | ||
21534 | 2016-06-06 John David Anglin <danglin@gcc.gnu.org> | |
21535 | ||
21536 | * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from | |
21537 | pattern and subsequent splitters. | |
21538 | (call_val_reg_64bit_post_reload): Likewise. | |
21539 | ||
21540 | 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org> | |
21541 | ||
21542 | PR middle-end/71408 | |
21543 | * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for | |
21544 | propagate_op_to_single_use. | |
21545 | ||
21546 | 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org> | |
21547 | ||
21548 | PR middle-end/71281 | |
21549 | * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt. | |
21550 | ||
21551 | 2016-06-07 Uros Bizjak <ubizjak@gmail.com> | |
21552 | ||
21553 | * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG. | |
21554 | (enum x86_dirflag_state): New enum. | |
21555 | (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY. | |
21556 | (machine_function): Remove needs_cld. | |
21557 | (ix86_current_function_needs_cld): Remove. | |
21558 | * config/i386/i386.c (ix86_set_func_type): Set | |
21559 | ix86_optimize_mode_switching[X86_DIRFLAG] to 1. | |
21560 | (ix86_expand_prologue): Do not emit CLD here. | |
21561 | (ix86_dirflag_mode_needed): New function. | |
21562 | (ix86_dirflag_mode_entry): Ditto. | |
21563 | (ix86_mode_needed): Handle X86_DIRFLAG entity. | |
21564 | (ix86_mode_after): Ditto. | |
21565 | (ix86_mode_entry): Ditto. | |
21566 | (ix86_mode_exit): Ditto. | |
21567 | (ix86_emit_mode_set): Ditto. | |
21568 | * config/i386/i386.md (strmov_singleop): Set | |
21569 | ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD. | |
21570 | Do not set ix86_current_function_needs_cld. | |
21571 | (rep_mov): Ditto. | |
21572 | (strset_singleop): Ditto. | |
21573 | (rep_stos): Ditto. | |
21574 | (cmpstrnqi_nz_1): Ditto. | |
21575 | (cmpstrnqi_1): Ditto. | |
21576 | (strlenqi_1): Ditto. | |
21577 | ||
21578 | 2016-06-06 Jakub Jelinek <jakub@redhat.com> | |
21579 | ||
21580 | PR tree-optimization/71259 | |
21581 | * tree-vect-slp.c (vect_get_constant_vectors): For | |
21582 | VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of | |
21583 | one for constant op, and use COND_EXPR for non-constant. | |
21584 | ||
21585 | 2016-06-06 David Malcolm <dmalcolm@redhat.com> | |
21586 | ||
21587 | * Makefile.in (OBJS): Add function-tests.o, | |
21588 | hash-map-tests.o, hash-set-tests.o, rtl-tests.o, | |
21589 | selftest-run-tests.o. | |
21590 | (OBJS-libcommon): Add selftest.o. | |
21591 | (OBJS-libcommon-target): Add selftest.o. | |
21592 | (all.internal): Add "selftest". | |
21593 | (all.cross): Likewise. | |
21594 | (selftest): New phony target. | |
21595 | (s-selftest): New target. | |
21596 | (selftest-gdb): New phony target. | |
21597 | (COLLECT2_OBJS): Add selftest.o. | |
21598 | * bitmap.c: Include "selftest.h". | |
21599 | (selftest::test_gc_alloc): New function. | |
21600 | (selftest::test_set_range): New function. | |
21601 | (selftest::test_clear_bit_in_middle): New function. | |
21602 | (selftest::test_copying): New function. | |
21603 | (selftest::test_bitmap_single_bit_set_p): New function. | |
21604 | (selftest::bitmap_c_tests): New function. | |
21605 | * common.opt (fself-test): New. | |
21606 | * diagnostic-show-locus.c: Include "selftest.h". | |
21607 | (make_range): New function. | |
21608 | (test_range_contains_point_for_single_point): New function. | |
21609 | (test_range_contains_point_for_single_line): New function. | |
21610 | (test_range_contains_point_for_multiple_lines): New function. | |
21611 | (assert_eq): New function. | |
21612 | (test_get_line_width_without_trailing_whitespace): New function. | |
21613 | (selftest::diagnostic_show_locus_c_tests): New function. | |
21614 | * et-forest.c: Include "selftest.h". | |
21615 | (selftest::test_single_node): New function. | |
21616 | (selftest::test_simple_tree): New function. | |
21617 | (selftest::test_disconnected_nodes): New function. | |
21618 | (selftest::et_forest_c_tests): New function. | |
21619 | * fold-const.c: Include "selftest.h". | |
21620 | (selftest::assert_binop_folds_to_const): New function. | |
21621 | (selftest::assert_binop_folds_to_nonlvalue): New function. | |
21622 | (selftest::test_arithmetic_folding): New function. | |
21623 | (selftest::fold_const_c_tests): New function. | |
21624 | * function-tests.c: New file. | |
21625 | * gimple.c: Include "selftest.h". | |
21626 | Include "gimple-pretty-print.h". | |
21627 | (selftest::verify_gimple_pp): New function. | |
21628 | (selftest::test_assign_single): New function. | |
21629 | (selftest::test_assign_binop): New function. | |
21630 | (selftest::test_nop_stmt): New function. | |
21631 | (selftest::test_return_stmt): New function. | |
21632 | (selftest::test_return_without_value): New function. | |
21633 | (selftest::gimple_c_tests): New function. | |
21634 | * hash-map-tests.c: New file. | |
21635 | * hash-set-tests.c: New file. | |
21636 | * input.c: Include "selftest.h". | |
21637 | (selftest::assert_loceq): New function. | |
21638 | (selftest::test_accessing_ordinary_linemaps): New function. | |
21639 | (selftest::test_unknown_location): New function. | |
21640 | (selftest::test_builtins): New function. | |
21641 | (selftest::test_reading_source_line): New function. | |
21642 | (selftest::input_c_tests): New function. | |
21643 | * rtl-tests.c: New file. | |
21644 | * selftest-run-tests.c: New file. | |
21645 | * selftest.c: New file. | |
21646 | * selftest.h: New file. | |
21647 | * spellcheck.c: Include "selftest.h". | |
21648 | (selftest::levenshtein_distance_unit_test_oneway): New function, | |
21649 | adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c. | |
21650 | (selftest::levenshtein_distance_unit_test): Likewise. | |
21651 | (selftest::spellcheck_c_tests): Likewise. | |
21652 | * toplev.c: Include selftest.h. | |
21653 | (toplev::run_self_tests): New. | |
21654 | (toplev::main): Handle -fself-test. | |
21655 | * toplev.h (toplev::run_self_tests): New. | |
21656 | * tree.c: Include "selftest.h". | |
21657 | (selftest::test_integer_constants): New function. | |
21658 | (selftest::test_identifiers): New function. | |
21659 | (selftest::test_labels): New function. | |
21660 | (selftest::tree_c_tests): New function. | |
21661 | * tree-cfg.c: Include "selftest.h". | |
21662 | (selftest::push_fndecl): New function. | |
21663 | (selftest::test_linear_chain): New function. | |
21664 | (selftest::test_diamond): New function. | |
21665 | (selftest::test_fully_connected): New function. | |
21666 | (selftest::tree_cfg_c_tests): New function. | |
21667 | * vec.c: Include "selftest.h". | |
21668 | (selftest::safe_push_range): New function. | |
21669 | (selftest::test_quick_push): New function. | |
21670 | (selftest::test_safe_push): New function. | |
21671 | (selftest::test_truncate): New function. | |
21672 | (selftest::test_safe_grow_cleared): New function. | |
21673 | (selftest::test_pop): New function. | |
21674 | (selftest::test_safe_insert): New function. | |
21675 | (selftest::test_ordered_remove): New function. | |
21676 | (selftest::test_unordered_remove): New function. | |
21677 | (selftest::test_block_remove): New function. | |
21678 | (selftest::reverse_cmp): New function. | |
21679 | (selftest::test_qsort): New function. | |
21680 | (selftest::vec_c_tests): New function.c. | |
21681 | * wide-int.cc: Include selftest.h and wide-int-print.h. | |
21682 | (selftest::from_int <wide_int>): New function. | |
21683 | (selftest::from_int <offset_int>): New function. | |
21684 | (selftest::from_int <widest_int>): New function. | |
21685 | (selftest::assert_deceq): New function. | |
21686 | (selftest::assert_hexeq): New function. | |
21687 | (selftest::test_printing <VALUE_TYPE>): New function template. | |
21688 | (selftest::test_ops <VALUE_TYPE>): New function template. | |
21689 | (selftest::test_comparisons <VALUE_TYPE>): New function template. | |
21690 | (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function | |
21691 | template. | |
21692 | (selftest::wide_int_cc_tests): New function. | |
21693 | ||
21694 | 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
21695 | ||
21696 | PR middle-end/37780 | |
21697 | * ifcvt.c (noce_try_ifelse_collapse): New function. | |
21698 | Declare prototype. | |
21699 | (noce_process_if_block): Call noce_try_ifelse_collapse. | |
21700 | * simplify-rtx.c (simplify_cond_clz_ctz): New function. | |
21701 | (simplify_ternary_operation): Use the above to simplify | |
21702 | conditional CLZ/CTZ expressions. | |
21703 | ||
21704 | 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
21705 | ||
21706 | PR middle-end/37780 | |
21707 | * config/aarch64/aarch64.md (ctz<mode>2): Convert to | |
21708 | define_insn_and_split. | |
21709 | ||
21710 | 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
21711 | ||
21712 | PR middle-end/37780 | |
21713 | * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split. | |
21714 | ||
21715 | 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
21716 | ||
21717 | PR c/24414 | |
21718 | * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR. | |
21719 | Implicitly clobber memory for basic asm with non-empty assembler | |
21720 | string. Use targetm.md_asm_adjust also here. | |
21721 | * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here. | |
21722 | * final.c (final_scan_insn): Handle basic asm in PARALLEL block. | |
21723 | * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with | |
21724 | non-empty assembler string. | |
21725 | * ira.c (compute_regs_asm_clobbered): Use asm_noperands here. | |
21726 | * recog.c (asm_noperands): Handle basic asm in PARALLEL block. | |
21727 | (decode_asm_operands): Handle basic asm in PARALLEL block. | |
21728 | (extract_insn): Handle basic asm in PARALLEL block. | |
21729 | * doc/extend.texi: Mention new behavior of basic asm. | |
21730 | * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here. | |
21731 | * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p, | |
21732 | branch_needs_nop_p): Use asm_noperands. | |
21733 | ||
21734 | 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com> | |
21735 | ||
21736 | * config/sparc/sparc.md (cpu): Add niagara7 cpu type. | |
21737 | Include the M7 SPARC DFA scheduler. | |
21738 | New attribute v3pipe. | |
21739 | Annotate insns with v3pipe where appropriate. | |
21740 | Define cpu_feature vis4. | |
21741 | Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64. | |
21742 | Add (V8QI "8") to vbits. | |
21743 | Add insns {add,sub}v8qi3 | |
21744 | Add insns ss{add,sub}v8qi3 | |
21745 | Add insns us{add,sub}{v8qi,v4hi}3 | |
21746 | Add insns {min,max}{v8qi,v4hi,v2si}3 | |
21747 | Add insns {minu,maxu}{v8qi,v4hi,v2si}3 | |
21748 | Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis. | |
21749 | * config/sparc/niagara4.md: Add a comment explaining the | |
21750 | discrepancy between the documented latenty numbers and the | |
21751 | implemented ones. | |
21752 | * config/sparc/niagara7.md: New file. | |
21753 | * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler | |
21754 | supports SPARC5 and VIS 4.0 instructions. | |
21755 | * configure: Regenerate. | |
21756 | * config.in: Likewise. | |
21757 | * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets. | |
21758 | * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for | |
21759 | TARGET_CPU_niagara7. | |
21760 | (ASM_CPU64_DEFAULT_SPEC): Likewise. | |
21761 | (CPP_CPU_SPEC): Handle niagara7. | |
21762 | (ASM_CPU_SPEC): Likewise. | |
21763 | * config/sparc/sparc-opts.h (processor_type): Add | |
21764 | PROCESSOR_NIAGARA7. | |
21765 | (mvis4): New option. | |
21766 | * config/sparc/sparc.h (TARGET_CPU_niagara7): Define. | |
21767 | (AS_NIAGARA7_FLAG): Define. | |
21768 | (ASM_CPU64_DEFAULT_SPEC): Set for niagara7. | |
21769 | (CPP_CPU64_DEFAULT_SPEC): Likewise. | |
21770 | (CPP_CPU_SPEC): Handle niagara7. | |
21771 | (ASM_CPU_SPEC): Likewise. | |
21772 | * config/sparc/sparc.c (niagara7_costs): Define. | |
21773 | (sparc_option_override): Handle niagara7 and adjust cache-related | |
21774 | parameters with better values for niagara cpus. Also support VIS4. | |
21775 | (sparc32_initialize_trampoline): Likewise. | |
21776 | (sparc_use_sched_lookahead): Likewise. | |
21777 | (sparc_issue_rate): Likewise. | |
21778 | (sparc_register_move_cost): Likewise. | |
21779 | (dump_target_flag_bits): Support VIS4. | |
21780 | (sparc_vis_init_builtins): Likewise. | |
21781 | (sparc_builtins): Likewise. | |
21782 | * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for | |
21783 | VIS4 4.0. | |
21784 | * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and | |
21785 | UltraSparc M7. | |
21786 | * config/sparc/sparc.opt (sparc_processor_type): New value | |
21787 | niagara7. | |
21788 | * config/sparc/visintrin.h (__attribute__): Prototypes for the | |
21789 | VIS4 builtins. | |
21790 | * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and | |
21791 | -mvis4. | |
21792 | * doc/extend.texi (SPARC VIS Built-in Functions): Document the | |
21793 | VIS4 builtins. | |
21794 | ||
21795 | 2016-06-06 Jonathan Wakely <jwakely@redhat.com> | |
21796 | ||
21797 | * doc/sourcebuild.texi (Directives): Remove extra closing braces. | |
21798 | ||
21799 | 2016-06-06 Richard Biener <rguenther@suse.de> | |
21800 | ||
21801 | PR tree-optimization/71398 | |
21802 | * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then | |
21803 | remove edges. | |
21804 | ||
21805 | 2016-06-05 James Bowman <james.bowman@ftdichip.com> | |
21806 | ||
21807 | * config/ft32/ft32.c (ft32_setup_incoming_varargs, | |
21808 | ft32_expand_prolog, ft32_expand_epilogue): | |
21809 | Handle pretend_args. | |
21810 | * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE. | |
21811 | * config/ft32/ft32.md: Add pretend_returner. | |
21812 | ||
21813 | 2016-06-06 Uros Bizjak <ubizjak@gmail.com> | |
21814 | ||
21815 | PR target/71389 | |
21816 | * config/i386/i386.c (ix86_avx256_split_vector_move_misalign): | |
21817 | Copy op1 RTX to avoid invalid sharing. | |
21818 | (ix86_expand_vector_move_misalign): Ditto. | |
21819 | ||
21820 | 2016-06-05 John David Anglin <danglin@gcc.gnu.org> | |
21821 | ||
21822 | * expr.c (move_by_pieces_d::generate): Mark mode parameter with | |
21823 | ATTRIBUTE_UNUSED. | |
21824 | ||
21825 | 2016-06-05 Jan Hubicka <hubicka@ucw.cz> | |
21826 | ||
21827 | * predict.c (predicted_by_loop_heuristics_p): New function. | |
21828 | (predict_iv_comparison): Use it. | |
21829 | (predict_loops): Walk from innermost loops; do not predict edges | |
21830 | leaving multiple loops multiple times; implement | |
21831 | PRED_LOOP_ITERATIONS_MAX heuristics. | |
21832 | * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor. | |
21833 | ||
21834 | 2016-06-05 Jan Hubicka <hubicka@ucw.cz> | |
21835 | ||
21836 | * cfg.c (check_bb_profile): Do not report mismatched profiles when | |
21837 | only edges out of BB are EH edges. | |
21838 | ||
21839 | 2016-06-04 Martin Sebor <msebor@redhat.com> | |
21840 | Marcin Baczyński <marbacz@gmail.com> | |
21841 | ||
21842 | PR c/48116 | |
21843 | * doc/invoke.texi (-Wreturn-type): Mention not warning on return with | |
21844 | a void expression in a void function. | |
21845 | ||
21846 | 2016-06-03 Jan Hubicka <hubicka@ucw.cz> | |
21847 | ||
21848 | * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check | |
21849 | aux; dump reasons of decisions. | |
21850 | (should_duplicate_loop_header_p): Likewise. | |
21851 | (do_while_loop_p): Likewise. | |
21852 | (ch_base::copy_headers): Dump asi num insns duplicated. | |
21853 | ||
21854 | 2016-06-04 Jakub Jelinek <jakub@redhat.com> | |
21855 | ||
21856 | PR tree-optimization/71405 | |
21857 | * tree-ssa.c (execute_update_addresses_taken): For clobber with | |
21858 | incompatible type, build a new clobber with the right type instead | |
21859 | of building a VIEW_CONVERT_EXPR around it. | |
21860 | ||
21861 | 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org> | |
21862 | ||
21863 | PR tree-optimization/52171 | |
21864 | * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use | |
21865 | by_pieces_ninsns instead of move_by_pieces_ninsns. | |
21866 | ||
21867 | 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org> | |
21868 | ||
21869 | * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0' | |
21870 | for reg+reg addressing mode. | |
21871 | ||
21872 | 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
21873 | ||
21874 | * rs6000-c.c (c/c-tree.h): Add #include. | |
21875 | (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments | |
21876 | in C++ when found in the base position of vec_ld or vec_st. | |
21877 | ||
21878 | 2016-06-03 Jan Hubicka <hubicka@ucw.cz> | |
21879 | ||
21880 | * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid | |
21881 | use of profile unless profile status is PROFILE_READ. | |
21882 | * profile.c (compute_branch_probabilities): Set profile status | |
21883 | only after reporting predictor hitrates. | |
21884 | ||
21885 | 2016-06-03 Joseph Myers <joseph@codesourcery.com> | |
21886 | ||
21887 | PR target/71276 | |
21888 | PR target/71277 | |
21889 | * common.opt (ffp-int-builtin-inexact): New option. | |
21890 | * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document. | |
21891 | * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2) | |
21892 | (ceil@var{m}2): Document dependence on this option. | |
21893 | * ipa-inline-transform.c (inline_call): Handle | |
21894 | flag_fp_int_builtin_inexact. | |
21895 | * ipa-inline.c (can_inline_edge_p): Likewise. | |
21896 | * config/i386/i386.md (rintxf2): Do not test | |
21897 | flag_unsafe_math_optimizations. | |
21898 | (rint<mode>2_frndint): New define_insn. | |
21899 | (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387 | |
21900 | or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint | |
21901 | for 387 instead of extending and truncating. | |
21902 | (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact || | |
21903 | !flag_trapping_math instead of flag_unsafe_math_optimizations. | |
21904 | Change to frndint<mode>2_<rounding>. | |
21905 | (frndintxf2_<rounding>_i387): Likewise. Change to | |
21906 | frndint<mode>2_<rounding>_i387. | |
21907 | (<rounding_insn>xf2): Likewise. | |
21908 | (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact || | |
21909 | !flag_trapping_math instead of flag_unsafe_math_optimizations for | |
21910 | x87. Test TARGET_ROUND || !flag_trapping_math || | |
21911 | flag_fp_int_builtin_inexact instead of !flag_trapping_math for | |
21912 | SSE. Use ROUND_NO_EXC in constant operand of | |
21913 | gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding> | |
21914 | for 387 instead of extending and truncating. | |
21915 | ||
21916 | 2016-06-03 H.J. Lu <hongjiu.lu@intel.com> | |
21917 | Julia Koval <julia.koval@intel.com> | |
21918 | ||
21919 | PR target/66960 | |
21920 | PR target/67630 | |
21921 | PR target/67634 | |
21922 | PR target/67841 | |
21923 | PR target/68037 | |
21924 | PR target/68618 | |
21925 | PR target/68661 | |
21926 | PR target/69575 | |
21927 | PR target/69596 | |
21928 | PR target/69734 | |
21929 | * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype. | |
21930 | * config/i386/i386.c (ix86_conditional_register_usage): Preserve | |
21931 | all registers, except for function return registers if there are | |
21932 | no caller-saved registers. | |
21933 | (ix86_set_func_type): New function. | |
21934 | (ix86_set_current_function): Call ix86_set_func_type to set | |
21935 | no_caller_saved_registers and func_type. Call reinit_regs if | |
21936 | caller-saved registers are changed. Don't allow MPX, SSE, MMX | |
21937 | nor x87 instructions in interrupt handler nor function with | |
21938 | no_caller_saved_registers attribute. | |
21939 | (ix86_function_ok_for_sibcall): Return false if there are no | |
21940 | caller-saved registers. | |
21941 | (type_natural_mode): Don't warn ABI change for MMX in interrupt | |
21942 | handler. | |
21943 | (ix86_function_arg_advance): Skip for callee in interrupt handler. | |
21944 | (ix86_function_arg): Return special arguments in interrupt handler. | |
21945 | (ix86_promote_function_mode): Promote pointer to word_mode only | |
21946 | for normal functions. | |
21947 | (ix86_can_use_return_insn_p): Don't use `ret' instruction in | |
21948 | interrupt handler. | |
21949 | (ix86_epilogue_uses): New function. | |
21950 | (ix86_hard_regno_scratch_ok): Likewise. | |
21951 | (ix86_save_reg): Preserve all registers in interrupt handler | |
21952 | after reload. Preserve all registers, except for function return | |
21953 | registers, if there are no caller-saved registers after reload. | |
21954 | (find_drap_reg): Always use callee-saved register if there are | |
21955 | no caller-saved registers. | |
21956 | (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY | |
21957 | for interrupt handler. | |
21958 | (ix86_expand_prologue): Don't allow DRAP in interrupt handler. | |
21959 | Emit cld instruction if stringops are used in interrupt handler | |
21960 | or interrupt handler isn't a leaf function. | |
21961 | (ix86_expand_epilogue): Generate interrupt return for interrupt | |
21962 | handler and pop the 'ERROR_CODE' off the stack before interrupt | |
21963 | return in exception handler. | |
21964 | (ix86_expand_call): Disallow calling interrupt handler directly. | |
21965 | If there are no caller-saved registers, mark all registers that | |
21966 | are clobbered by the call which returns as clobbered. | |
21967 | (ix86_handle_no_caller_saved_registers_attribute): New function. | |
21968 | (ix86_handle_interrupt_attribute): Likewise. | |
21969 | (ix86_attribute_table): Add interrupt and no_caller_saved_registers | |
21970 | attributes. | |
21971 | (TARGET_HARD_REGNO_SCRATCH_OK): Likewise. | |
21972 | * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument | |
21973 | accumulation in interrupt function if stack may be realigned to | |
21974 | avoid DRAP. | |
21975 | (EPILOGUE_USES): New. | |
21976 | (function_type): New enum. | |
21977 | (machine_function): Add func_type and no_caller_saved_registers. | |
21978 | * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New. | |
21979 | (interrupt_return): New pattern. | |
21980 | * doc/extend.texi: Document x86 interrupt and | |
21981 | no_caller_saved_registers attributes. | |
21982 | ||
21983 | 2016-06-03 Bernd Schmidt <bschmidt@redhat.com> | |
21984 | ||
21985 | PR tree-optimization/52171 | |
21986 | * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere. | |
21987 | (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed. | |
21988 | Look for constant strings. Move some code to emit_block_cmp_hints | |
21989 | and use it. | |
21990 | * builtins.def (BUILT_IN_MEMCMP_EQ): New. | |
21991 | * defaults.h (COMPARE_MAX_PIECES): New macro. | |
21992 | * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs. | |
21993 | (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe. | |
21994 | (clear_by_pieces_1): Don't declare. Move definition before use. | |
21995 | (can_do_by_pieces): New static function. | |
21996 | (can_move_by_pieces): Use it. Return bool. | |
21997 | (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg | |
21998 | OP. All callers changed. Handle COMPARE_BY_PIECES. | |
21999 | (class pieces_addr); New. | |
22000 | (pieces_addr::pieces_addr, pieces_addr::decide_autoinc, | |
22001 | pieces_addr::adjust, pieces_addr::increment_address, | |
22002 | pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member | |
22003 | functions for it. | |
22004 | (class op_by_pieces_d): New. | |
22005 | (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member | |
22006 | functions for it. | |
22007 | (class move_by_pieces_d, class compare_by_pieces_d, | |
22008 | class store_by_pieces_d): New subclasses of op_by_pieces_d. | |
22009 | (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate, | |
22010 | move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode, | |
22011 | store_by_pieces_d::generate, store_by_pieces_d::finish_endp, | |
22012 | compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode, | |
22013 | compare_by_pieces_d::finish_mode): New member functions. | |
22014 | (compare_by_pieces, emit_block_cmp_via_cmpmem): New static | |
22015 | functions. | |
22016 | (expand_cmpstrn_or_cmpmem): Moved here from builtins.c. | |
22017 | (emit_block_cmp_hints): New function. | |
22018 | (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just | |
22019 | use the newly defined classes. | |
22020 | * expr.h (by_pieces_constfn): New typedef. | |
22021 | (can_store_by_pieces, store_by_pieces): Use it in arg declarations. | |
22022 | (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare. | |
22023 | (move_by_pieces_ninsns): Don't declare. | |
22024 | (can_move_by_pieces): Change return value to bool. | |
22025 | * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs. | |
22026 | (compare_by_pieces_branch_ratio): New hook. | |
22027 | * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES. | |
22028 | (by_pieces_ninsns): Declare. | |
22029 | * targethooks.c (default_use_by_pieces_infrastructure_p): Handle | |
22030 | COMPARE_BY_PIECES. | |
22031 | (default_compare_by_pieces_branch_ratio): New function. | |
22032 | * targhooks.h (default_compare_by_pieces_branch_ratio): Declare. | |
22033 | * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document. | |
22034 | * doc/tm.texi: Regenerate. | |
22035 | * tree-ssa-strlen.c: Include "builtins.h". | |
22036 | (handle_builtin_memcmp): New static function. | |
22037 | (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP. | |
22038 | * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq. | |
22039 | ||
22040 | 2016-06-03 Alan Hayward <alan.hayward@arm.com> | |
22041 | ||
22042 | * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live | |
22043 | relevant stmts which are simple and invariant. | |
22044 | * tree-vect-loop.c (vectorizable_live_operation): Check relevance | |
22045 | instead of simple and invariant | |
22046 | ||
22047 | 2016-06-03 Alan Hayward <alan.hayward@arm.com> | |
22048 | ||
22049 | * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts. | |
22050 | (vectorizable_reduction): Check for new relevant state. | |
22051 | (vectorizable_live_operation): vectorize live stmts using | |
22052 | BIT_FIELD_REF. Remove special case for gimple assigns stmts. | |
22053 | * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function. | |
22054 | (vect_stmt_relevant_p): Check for stmts which are only used live. | |
22055 | (process_use): Use of a stmt does not inherit it's live value. | |
22056 | (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance. | |
22057 | (vect_analyze_stmt): Check for new relevant state. | |
22058 | * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used | |
22059 | outside the loop, but not inside it. | |
22060 | ||
22061 | 2016-06-03 Alan Hayward <alan.hayward@arm.com> | |
22062 | ||
22063 | * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New. | |
22064 | * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New. | |
22065 | (vect_get_vec_def_for_operand): Split out code. | |
22066 | ||
22067 | 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org> | |
22068 | ||
22069 | * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete. | |
22070 | ||
22071 | 2016-06-03 Alan Hayward <alan.hayward@arm.com> | |
22072 | ||
22073 | * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code. | |
22074 | ||
22075 | 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22076 | ||
22077 | * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment. | |
22078 | ||
22079 | 2016-06-03 Jakub Jelinek <jakub@redhat.com> | |
22080 | ||
22081 | PR middle-end/71387 | |
22082 | * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting | |
22083 | to noreturn e->callee->decl that has void return type and void | |
22084 | arguments, adjust gimple_call_fntype and remove lhs even if it had | |
22085 | previously addressable type. | |
22086 | ||
22087 | 2016-06-02 Jeff Law <law@redhat.com> | |
22088 | ||
22089 | PR tree-optimization/71328 | |
22090 | * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one | |
22091 | error when checking for a jump back onto the copied path. | |
22092 | ||
22093 | 2016-06-02 David Malcolm <dmalcolm@redhat.com> | |
22094 | ||
22095 | * config/microblaze/microblaze.c (get_branch_target): Add return | |
22096 | NULL_RTX for the non-CALL_P case. | |
22097 | (insert_wic_for_ilb_runout): Remove unused local "wic_addr1". | |
22098 | (insert_wic): Remove unused local "j". | |
22099 | ||
22100 | 2016-06-02 Martin Liska <mliska@suse.cz> | |
22101 | ||
22102 | * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name. | |
22103 | ||
22104 | 2016-06-02 H.J. Lu <hongjiu.lu@intel.com> | |
22105 | Julia Koval <julia.koval@intel.com> | |
22106 | ||
22107 | * function.c (assign_parm_setup_stack): Force source into a | |
22108 | register if needed. | |
22109 | * target.def (function_incoming_arg): Update documentation to | |
22110 | allow arbitrary address computation based on hard register. | |
22111 | * doc/tm.texi: Regenerated. | |
22112 | ||
22113 | 2016-06-02 Martin Liska <mliska@suse.cz> | |
22114 | ||
22115 | * predict.c (combine_predictions_for_bb): Fix first match in | |
22116 | cases where a first predictor contains more than one occurence | |
22117 | in list of predictors. Take the best value in such case. | |
22118 | ||
22119 | 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22120 | ||
22121 | PR rtl-optimization/71295 | |
22122 | * rtlanal.c (subreg_get_info): If taking a subreg at the requested | |
22123 | offset would go over the size of the inner mode reject it. | |
22124 | ||
22125 | 2016-06-02 Jakub Jelinek <jakub@redhat.com> | |
22126 | ||
22127 | * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of | |
22128 | x=x,x and v=v,m instead of x=x,m. | |
22129 | ||
22130 | * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm | |
22131 | alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C | |
22132 | alternative to v=rm,C. | |
22133 | ||
22134 | * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm | |
22135 | alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative | |
22136 | to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute | |
22137 | instead of vex for the last two above mentioned alternatives. | |
22138 | ||
22139 | 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22140 | ||
22141 | PR target/70830 | |
22142 | * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update. | |
22143 | ||
22144 | 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org> | |
22145 | ||
22146 | * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute. | |
22147 | ||
22148 | 2016-06-01 David Malcolm <dmalcolm@redhat.com> | |
22149 | ||
22150 | * config/rl78/rl78.c (rl78_expand_prologue): Convert local | |
22151 | from int to unsigned. | |
22152 | ||
22153 | 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com> | |
22154 | ||
22155 | * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify | |
22156 | alternatives, eliminating preferred register class. Add support | |
22157 | for the MTVSRDD instruction in ISA 3.0. | |
22158 | (vsx_splat_v4si_internal): Use splat_input_operand instead of | |
22159 | reg_or_indexed_operand. | |
22160 | (vsx_splat_v4sf_internal): Likewise. | |
22161 | ||
22162 | 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com> | |
22163 | ||
22164 | PR target/71186 | |
22165 | * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives | |
22166 | for loading up all 0's or all 1's. | |
22167 | ||
22168 | 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
22169 | ||
22170 | * doc/sourcebuild.texi (arm_acq_rel): Document new effective target. | |
22171 | ||
22172 | 2016-06-01 Eduard Sanou <dhole@openmailbox.org> | |
22173 | ||
22174 | * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard | |
22175 | extension. | |
22176 | * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar. | |
22177 | * gcc.c (set_source_date_epoch_envvar): New function, sets | |
22178 | the SOURCE_DATE_EPOCH environment variable to the current time. | |
22179 | ||
22180 | 2016-06-01 Eric Botcazou <ebotcazou@adacore.com> | |
22181 | ||
22182 | * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute | |
22183 | the factor for live Phi nodes. | |
22184 | ||
22185 | 2016-06-01 Jan Hubicka <hubicka@ucw.cz> | |
22186 | ||
22187 | * loop-dolop.c (doloop_optimize): Us likely max iteration bound. | |
22188 | * tree-parloops.c (parallelize_loops): likewise. | |
22189 | * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop, | |
22190 | tree_unswitch_outer_loop): likewise. | |
22191 | ||
22192 | 2016-06-01 Jakub Jelinek <jakub@redhat.com> | |
22193 | ||
22194 | PR middle-end/71371 | |
22195 | * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp | |
22196 | around creation of the temporary. | |
22197 | ||
22198 | 2016-06-01 Richard Biener <rguenther@suse.de> | |
22199 | ||
22200 | PR tree-optimization/71366 | |
22201 | * tree-ssa-loop-ivcanon.c (edges_to_remove): New global. | |
22202 | (unloop_loops): Move removing edges here ... | |
22203 | (try_unroll_loop_completely): ... from here. | |
22204 | (try_peel_loop): ... and here. | |
22205 | (tree_unroll_loops_completely_1): Track parent loops via | |
22206 | bitmap of header BBs. | |
22207 | (tree_unroll_loops_completely): Adjust for that. | |
22208 | ||
22209 | 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
22210 | ||
22211 | * config/rs6000/altivec.h (vec_slv): New macro. | |
22212 | (vec_srv): New macro. | |
22213 | * config/rs6000/altivec.md (UNSPEC_VSLV): New value. | |
22214 | (UNSPEC_VSRV): New value. | |
22215 | (vslv): New insn. | |
22216 | (vsrv): New insn. | |
22217 | * config/rs6000/rs6000-builtin.def (vslv): New builtin definition. | |
22218 | (vsrv): New builtin definition. | |
22219 | * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to | |
22220 | define argument types for new builtin. | |
22221 | (P9V_BUILTIN_VSRV): Macro expansion to define argument types for | |
22222 | new builtin. | |
22223 | * doc/extend.texi: Document the new vec_vslv and vec_srv built-in | |
22224 | functions. | |
22225 | ||
22226 | 2016-06-01 Uros Bizjak <ubizjak@gmail.com> | |
22227 | Jocelyn Mayer <l_indien@magic.fr> | |
22228 | ||
22229 | PR target/67310 | |
22230 | * config/i386/driver-i386.c (host_detect_local_cpu): Correctly | |
22231 | detect processor family for signature_CENTAUR_ebx. | |
22232 | <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for | |
22233 | signature_CENTAUR_ebx. | |
22234 | <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx. | |
22235 | <default>: Pass x86-64 for has_longmode. | |
22236 | ||
22237 | 2016-06-01 Nathan Sidwell <nathan@acm.org> | |
22238 | ||
22239 | * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject | |
22240 | undefined weak. | |
22241 | ||
22242 | 2016-06-01 Richard Biener <rguenther@suse.de> | |
22243 | ||
22244 | PR tree-optimization/71261 | |
22245 | * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set | |
22246 | of stmts successfully put in the bool pattern. Remove | |
22247 | single-use restriction. | |
22248 | (adjust_bool_pattern_cast): Add cast at the use site via the | |
22249 | pattern def sequence. | |
22250 | (adjust_bool_pattern): Remove recursion, maintain a hash-map | |
22251 | of patterned defs. Use the pattern def seqence instead of | |
22252 | multiple independent patterns. | |
22253 | (sort_after_uid): New qsort compare function. | |
22254 | (adjust_bool_stmts): New function to process stmts in the bool | |
22255 | pattern in IL order. | |
22256 | (vect_recog_bool_pattern): Adjust. | |
22257 | * tree-if-conv.c (ifcvt_split_def_stmt): Remove. | |
22258 | (ifcvt_walk_pattern_tree): Likewise. | |
22259 | (stmt_is_root_of_bool_pattern): Likewise. | |
22260 | (ifcvt_repair_bool_pattern): Likewise. | |
22261 | (tree_if_conversion): Do not call ifcvt_repair_bool_pattern. | |
22262 | ||
22263 | 2016-06-01 Jan Hubicka <hubicka@ucw.cz> | |
22264 | ||
22265 | * loop-unroll.c (decide_unroll_constant_iterations, | |
22266 | decide_unroll_runtime_iterations, decide_unroll_stupid): Use | |
22267 | likely upper bounds. | |
22268 | * loop-iv.c (find_simple_exit): Dump likely upper bounds. | |
22269 | ||
22270 | 2016-06-01 Thomas Schwinge <thomas@codesourcery.com> | |
22271 | ||
22272 | * tree-core.h (enum omp_clause_code): Remove | |
22273 | OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users. | |
22274 | ||
22275 | 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22276 | ||
22277 | * config/arm/sync.md (arm_store_exclusive<mode>): | |
22278 | Use 'H' output modifier on operands[2] rather than creating a new | |
22279 | entry in out-of-bounds memory of the operands array. | |
22280 | (arm_store_release_exclusivedi): Likewise. | |
22281 | ||
22282 | 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22283 | ||
22284 | * config/arm/arm.c (arm_fusion_enabled_p): New function. | |
22285 | * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype. | |
22286 | * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY): | |
22287 | Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled. | |
22288 | ||
22289 | 2016-06-01 Eric Botcazou <ebotcazou@adacore.com> | |
22290 | ||
22291 | * tree-vect-loop.c (vect_determine_vectorization_factor): Also take | |
22292 | into account live statements for mask producers. | |
22293 | ||
22294 | 2016-06-01 Richard Biener <rguenther@suse.de> | |
22295 | ||
22296 | PR tree-optimization/71311 | |
22297 | * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and | |
22298 | restrict to non-INTEGER_CST @0. | |
22299 | ||
22300 | 2016-06-01 Richard Biener <rguenther@suse.de> | |
22301 | ||
22302 | * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c. | |
22303 | (relational patterns): Use :c to avoid pattern duplications. | |
22304 | ||
22305 | 2016-06-01 Richard Biener <rguenther@suse.de> | |
22306 | ||
22307 | * genmatch.c (comparison_code_p): New predicate. | |
22308 | (swap_tree_comparison): New function. | |
22309 | (commutate): Add for_vec parameter to append new for entries. | |
22310 | Support commutating relational operators by swapping it alongside | |
22311 | operands. | |
22312 | (lower_commutative): Adjust. | |
22313 | (dt_simplify::gen): Do not pass artificial operators to gen | |
22314 | functions. | |
22315 | (decision_tree::gen): Do not add artificial operators as parameters. | |
22316 | (parser::parse_expr): Verify operator commutativity when :c is | |
22317 | applied. Allow :C to override this. | |
22318 | * match.pd: Adjust patterns to use :C instead of :c where required. | |
22319 | ||
22320 | 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org> | |
22321 | ||
22322 | PR tree-optimization/71077 | |
22323 | * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In | |
22324 | the combining step, use boolean_false_node and boolean_true_node | |
22325 | as the designated false/true return values. | |
22326 | ||
22327 | 2016-05-31 Jan Hubicka <hubicka@ucw.cz> | |
22328 | ||
22329 | * predict.def (PRED_LOOP_EXTRA_EXIT): Define. | |
22330 | * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT. | |
22331 | (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of | |
22332 | PRED_LOOP_EXIT. | |
22333 | ||
22334 | 2016-05-31 Jan Hubicka <hubicka@ucw.cz> | |
22335 | ||
22336 | * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list | |
22337 | of flags impliying the register renaming. | |
22338 | * toplev.c (process_options): Do not imply flag_rename_registers with | |
22339 | loop peeling. | |
22340 | ||
22341 | 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org> | |
22342 | ||
22343 | * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the | |
22344 | default implementation. | |
22345 | ||
22346 | 2016-05-31 Nathan Sidwell <nathan@acm.org> | |
22347 | ||
22348 | * dwarf2out.c (cur_line_info_table): Add GTY marker. | |
22349 | ||
22350 | 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org> | |
22351 | ||
22352 | * config/sh/constraints.md (b): Remove constraint. | |
22353 | * config/sh/predicates.md (arith_reg_operand): Remove | |
22354 | TARGET_REGISTER_P. | |
22355 | * config/sh/sh-modes.def (PDI): Remove. | |
22356 | * config/sh/sh.c (sh_target_reg_class, | |
22357 | sh_optimize_target_register_callee_saved): Remove functions. | |
22358 | (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS. | |
22359 | (sh_expand_epilogue): Update comment. | |
22360 | (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs, | |
22361 | sh_secondary_reload): Remove TARGET_REGS related code. | |
22362 | * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG, | |
22363 | TARGET_REGISTER_P): Remove macros. | |
22364 | (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs. | |
22365 | * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG, | |
22366 | TR1_REG, TR2_REG): Remove constants. | |
22367 | * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove. | |
22368 | ||
22369 | 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org> | |
22370 | ||
22371 | * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove | |
22372 | define_expand patterns. | |
22373 | (adddi3_compact): Rename to adddi3. | |
22374 | (subdi3_compact): Rename to subdi3. | |
22375 | (*negdi2): Rename to negdi2. | |
22376 | (*abs<mode>2): Rename to abs<mode>2. | |
22377 | ||
22378 | 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org> | |
22379 | ||
22380 | * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator. | |
22381 | (atomic_<fetchop_name>_fetchsi): Extract minus operator into ... | |
22382 | (atomic_sub_fetchsi): ... this new pattern. | |
22383 | (mvtc): Add CC_REG clobber. | |
22384 | ||
22385 | 2016-05-31 Marek Polacek <polacek@redhat.com> | |
22386 | ||
22387 | * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY. | |
22388 | ||
22389 | 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22390 | ||
22391 | * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use | |
22392 | aarch64_fusion_enabled_p to check for fusion capabilities. | |
22393 | ||
22394 | 2016-05-31 Richard Biener <rguenther@suse.de> | |
22395 | ||
22396 | PR tree-optimization/71352 | |
22397 | * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to | |
22398 | minus one and a negate. | |
22399 | ||
22400 | 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22401 | ||
22402 | * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete. | |
22403 | * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move): | |
22404 | Delete prototype. | |
22405 | * config/aarch64/iterators.md (insn_count): Add descriptive comment. | |
22406 | * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes): | |
22407 | Remove use of aarch64_simd_attr_length_move, set length attribute | |
22408 | directly. | |
22409 | (*aarch64_be_movoi): Likewise. | |
22410 | (*aarch64_be_movci): Likewise. | |
22411 | (*aarch64_be_movxi): Likewise. | |
22412 | ||
22413 | 2016-05-31 Jan Hubicka <hubicka@ucw.cz> | |
22414 | ||
22415 | * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops. | |
22416 | It no longer does that. | |
22417 | * toplev.c (process_options): Do not enable flag_web with -fpeel-loops. | |
22418 | ||
22419 | 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com> | |
22420 | ||
22421 | * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious | |
22422 | attribute __unused__. | |
22423 | ||
22424 | 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
22425 | ||
22426 | * config/arm/arm-protos.h (arm_arch_thumb1): Declare. | |
22427 | * config/arm/arm.c (arm_arch_thumb1): Define. | |
22428 | (arm_option_override): Initialize arm_arch_thumb1. | |
22429 | * config/arm/arm.h (arm_arch_thumb1): Declare. | |
22430 | (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target | |
22431 | support Thumb-1 ISA. | |
22432 | ||
22433 | 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com> | |
22434 | ||
22435 | PR target/71346 | |
22436 | * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use | |
22437 | `Yv' for scalar operand. | |
22438 | ||
22439 | 2016-05-31 Tom de Vries <tom@codesourcery.com> | |
22440 | ||
22441 | PR tree-optimization/69068 | |
22442 | * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle | |
22443 | phis with more than two args. | |
22444 | ||
22445 | 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org> | |
22446 | ||
22447 | * config.gcc: Move hard float support for arm*hf*-*-freebsd* into | |
22448 | armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd* | |
22449 | target. | |
22450 | ||
22451 | 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com> | |
22452 | ||
22453 | * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and | |
22454 | tune_64. | |
22455 | * doc/install.texi (--with-cpu-32, --with-cpu-64): Document | |
22456 | support on SPARC. | |
22457 | * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for | |
22458 | cpu_32, cpu_64, tune_32 and tune_64. | |
22459 | * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise. | |
22460 | ||
22461 | 2016-05-30 Uros Bizjak <ubizjak@gmail.com> | |
22462 | ||
22463 | * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)". | |
22464 | ||
22465 | 2016-05-30 Andi Kleen <ak@linux.intel.com> | |
22466 | ||
22467 | * auto-profile.c (read_profile): Replace asserts with errors | |
22468 | when file does not exist. | |
22469 | * gcov-io.c (gcov_read_words): Dito. | |
22470 | ||
22471 | 2016-05-30 Jan Hubicka <hubicka@ucw.cz> | |
22472 | ||
22473 | * tree-cfg.c (print_loop): Print likely upper bounds. | |
22474 | ||
22475 | 2016-05-30 Jan Hubicka <hubicka@ucw.cz> | |
22476 | ||
22477 | * doc/invoke.texi (-fpeel-loops,-O3): Update documentation. | |
22478 | * opts.c (default_options): Enable peel loops at -O3. | |
22479 | * tree-ssa-loop-ivcanon.c (peeled_loops): New static var. | |
22480 | (try_peel_loop): Do not re-peel already peeled loops; | |
22481 | use likely upper bounds; fix profile updating. | |
22482 | (pass_complete_unroll::execute): Initialize peeled_loops. | |
22483 | ||
22484 | 2016-05-30 Martin Liska <mliska@suse.cz> | |
22485 | ||
22486 | * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale | |
22487 | computed costs by frequency of BB they belong to. | |
22488 | (get_scaled_computation_cost_at): New function. | |
22489 | ||
22490 | 2016-05-30 Alexander Monakov <amonakov@ispras.ru> | |
22491 | Marc Glisse <marc.glisse@inria.fr> | |
22492 | ||
22493 | PR tree-optimization/71289 | |
22494 | * match.pd (-1 / B < A, A > -1 / B): New transformations. | |
22495 | ||
22496 | 2016-05-30 Jan Hubicka <hubicka@ucw.cz> | |
22497 | ||
22498 | * tree-vect-loop.c (vect_transform_loop): Update likely bounds. | |
22499 | ||
22500 | 2016-05-30 Jan Hubicka <hubicka@ucw.cz> | |
22501 | ||
22502 | * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit | |
22503 | for peeled copies; avoid underflow when updating estimates; correctly | |
22504 | scale loop profile. | |
22505 | ||
22506 | 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org> | |
22507 | ||
22508 | * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit | |
22509 | r236875. Corrected oe3 to oe2 as obvious. | |
22510 | ||
22511 | 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org> | |
22512 | ||
22513 | PR middle-end/71269 | |
22514 | PR middle-end/71252 | |
22515 | * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so | |
22516 | that inserted stmt will not dominate stmts that defines its operand. | |
22517 | (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt. | |
22518 | (rewrite_expr_tree_parallel): Likewise. | |
22519 | ||
22520 | 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org> | |
22521 | ||
22522 | PR middle-end/71252 | |
22523 | * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that | |
22524 | all fields including stmt_to_insert are swapped. | |
22525 | ||
22526 | 2016-05-30 Jan Hubicka <hubicka@ucw.cz> | |
22527 | ||
22528 | * predict.h (force_edge_cold): Declare. | |
22529 | * predict.c (force_edge_cold): New function. | |
22530 | * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile | |
22531 | updating. | |
22532 | (canonicalize_loop_induction_variables): Fix formating. | |
22533 | ||
22534 | 2016-05-30 Eric Botcazou <ebotcazou@adacore.com> | |
22535 | ||
22536 | * config/visium/visium.c (visium_split_double_add): Minor tweaks. | |
22537 | (visium_expand_copysign): Use gen_int_mode directly. | |
22538 | (visium_compute_frame_size): Minor tweaks. | |
22539 | ||
22540 | 2016-05-30 Jan Hubicka <hubicka@ucw.cz> | |
22541 | ||
22542 | * tree-vect-loop.c (vect_analyze_loop_2): Use | |
22543 | likely_max_stmt_executions_int. | |
22544 | ||
22545 | 2016-05-30 Tom de Vries <tom@codesourcery.com> | |
22546 | ||
22547 | PR tree-optimization/69067 | |
22548 | * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert. | |
22549 | ||
22550 | 2016-05-29 Uros Bizjak <ubizjak@gmail.com> | |
22551 | ||
22552 | PR target/71245 | |
22553 | * config/i386/sync.md (define_peephole2 atomic_storedi_fpu): | |
22554 | New peepholes to remove unneeded fild/fistp pairs. | |
22555 | (define_peephole2 atomic_loaddi_fpu): Ditto. | |
22556 | ||
22557 | 2016-05-27 Jan Hubicka <hubicka@ucw.cz> | |
22558 | ||
22559 | * predict.c (maybe_hot_frequency_p): Avoid division. | |
22560 | ||
22561 | 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com> | |
22562 | ||
22563 | * doc/install.texi: Use https for shop.fsf.org. | |
22564 | ||
22565 | 2016-05-27 Jan Hubicka <hubicka@ucw.cz> | |
22566 | ||
22567 | * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use | |
22568 | likely_max_stmt_executions_int. | |
22569 | ||
22570 | 2016-05-27 Jan Hubicka <hubicka@ucw.cz> | |
22571 | ||
22572 | * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use | |
22573 | likely_max_stmt_executions_int. | |
22574 | ||
22575 | 2016-05-27 Jan Hubicka <hubicka@ucw.cz> | |
22576 | ||
22577 | * profile.c (compute_branch_probabilities): Do not report hitrates | |
22578 | here. | |
22579 | (branch_prob): Report hitrates here. | |
22580 | * predict.c (gimple_predict_edge): Do not assert profile status; | |
22581 | fix formatting issues. | |
22582 | ||
22583 | 2016-05-27 Jan Hubicka <hubicka@ucw.cz> | |
22584 | ||
22585 | * predict.c (edge_predicted_by_p): New function. | |
22586 | (predict_paths_for_bb): Do not put multiple predictions of the same type | |
22587 | on one edge. | |
22588 | ||
22589 | 2016-05-27 Jan Hubicka <hubicka@ucw.cz> | |
22590 | ||
22591 | * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental | |
22592 | commit. | |
22593 | ||
22594 | 2016-05-28 Alan Modra <amodra@gmail.com> | |
22595 | ||
22596 | * dominance.c (verify_dominators): Don't segfault on NULL imm_bb. | |
22597 | ||
22598 | 2016-05-28 Alan Modra <amodra@gmail.com> | |
22599 | ||
22600 | PR rtl-optimization/71275 | |
22601 | * ira.c (ira): Free dominance info. | |
22602 | ||
22603 | 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com> | |
22604 | ||
22605 | * doc/sourcebuild.texi: New address for upstream Go repository. | |
22606 | ||
22607 | 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
22608 | ||
22609 | * config/arm/arm.h (TARGET_ARM_V6M): Remove. | |
22610 | (TARGET_ARM_V7M): Likewise. | |
22611 | ||
22612 | 2016-05-26 Jeff Law <law@redhat.com> | |
22613 | ||
22614 | * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h. | |
22615 | (thread_across_edge): Remove calls to find_jump_threads_backwards. | |
22616 | * passes.def: Add jump threading passes before DOM/VRP. | |
22617 | * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change | |
22618 | argument to a basic block from an edge. Remove tests which are | |
22619 | handled elsewhere. | |
22620 | (pass_data_thread_jumps, class pass_thread_jumps): New. | |
22621 | (pass_thread_jumps::gate, pass_thread_jumps::execute): New. | |
22622 | (make_pass_thread_jumps): Likewise. | |
22623 | * tree-pass.h (make_pass_thread_jumps): Declare. | |
22624 | ||
22625 | 2016-05-27 Eric Botcazou <ebotcazou@adacore.com> | |
22626 | ||
22627 | * config/visium/visium-protos.h (split_double_move): Rename into... | |
22628 | (visium_split_double_move): ...this. | |
22629 | (visium_split_double_add): Declare. | |
22630 | * config/visium/visium.c (split_double_move): Rename into... | |
22631 | (visium_split_double_move): ...this. | |
22632 | (visium_split_double_add): New function. | |
22633 | (visium_expand_copysign): Renumber operands for consistency. | |
22634 | * config/visium/visium.md (DImode move splitter): Adjust to renaming. | |
22635 | (DFmode move splitter): Likewise. | |
22636 | (*addi3_insn): Split by means of visium_split_double_add. | |
22637 | (*adddi3_insn_flags): Delete. | |
22638 | (*plus_plus_sltu<subst_arith>): New insn. | |
22639 | (*subdi3_insn): Split by means of visium_split_double_add. | |
22640 | (subdi3_insn_flags): Delete. | |
22641 | (*minus_minus_sltu<subst_arith>): New insn. | |
22642 | (*negdi2_insn): Split by means of visium_split_double_add. | |
22643 | (*negdi2_insn_flags): Delete. | |
22644 | ||
22645 | 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com> | |
22646 | ||
22647 | * configure.ac: Treat a --with-headers option without argument | |
22648 | the same as the default (i.e. consult sys-include directory). | |
22649 | * configure: Regenerate. | |
22650 | ||
22651 | 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22652 | ||
22653 | * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function. | |
22654 | * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare | |
22655 | prototype. | |
22656 | * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi): | |
22657 | Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled. | |
22658 | ||
22659 | 2016-05-27 Jiong Wang <jiong.wang@arm.com> | |
22660 | ||
22661 | PR target/63596 | |
22662 | * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor | |
22663 | tree-stdarg analysis results. | |
22664 | (aarch64_setup_incoming_varargs): Likewise. | |
22665 | ||
22666 | 2016-05-27 Jiong Wang <jiong.wang@arm.com> | |
22667 | ||
22668 | * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize | |
22669 | va_list_gpr_counter_field and va_list_fpr_counter_field. | |
22670 | ||
22671 | 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com> | |
22672 | ||
22673 | PR67609 | |
22674 | * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove. | |
22675 | * config/aarch64/aarch64.c | |
22676 | (aarch64_cannot_change_mode_class): Remove function. | |
22677 | * config/aarch64/aarch64-protos.h | |
22678 | (aarch64_cannot_change_mode_class): Remove. | |
22679 | ||
22680 | 2016-05-27 Jan Hubicka <hubicka@ucw.cz> | |
22681 | ||
22682 | * cfgloop.c (record_niter_bound): Record likely upper bounds. | |
22683 | (likely_max_stmt_executions_int, get_likely_max_loop_iterations, | |
22684 | get_likely_max_loop_iterations_int): New. | |
22685 | * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound, | |
22686 | any_likely_upper_bound. | |
22687 | (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations): | |
22688 | Declare. | |
22689 | * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds. | |
22690 | * loop-unroll.c (unroll_loop_constant_iterations): Update likely | |
22691 | upper bound. | |
22692 | (unroll_loop_constant_iterations): Likewise. | |
22693 | (unroll_loop_runtime_iterations): Likewise. | |
22694 | * lto-streamer-in.c (input_cfg): Stream likely upper bounds. | |
22695 | * lto-streamer-out.c (output_cfg): Likewise. | |
22696 | * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper | |
22697 | bounds. | |
22698 | (canonicalize_loop_induction_variables): Dump likely upper bounds. | |
22699 | * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds. | |
22700 | (likely_max_loop_iterations): New. | |
22701 | (likely_max_loop_iterations_int): New. | |
22702 | (likely_max_stmt_executions): New. | |
22703 | * tree-ssa-loop-niter.h (likely_max_loop_iterations, | |
22704 | likely_max_loop_iterations_int, likely_max_stmt_executions_int, | |
22705 | likely_max_stmt_executions): Declare. | |
22706 | ||
22707 | 2016-05-27 Marek Polacek <polacek@redhat.com> | |
22708 | ||
22709 | PR middle-end/71308 | |
22710 | * gimple-fold.c (gimple_fold_call): Check that LHS is not null. | |
22711 | ||
22712 | 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
22713 | ||
22714 | * config/s390/s390.md (2x risbg splitters): Use | |
22715 | reg_overlap_mentioned_p instead of rtx_equal_p. | |
22716 | ||
22717 | 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
22718 | ||
22719 | * combine.c (make_compound_operation): Take known zero bits into | |
22720 | account when checking for possible zero_extend. | |
22721 | ||
22722 | 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22723 | ||
22724 | * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes): | |
22725 | Use const_int_operand for operand 2 predicate. Simplify expand code | |
22726 | as a result. | |
22727 | ||
22728 | 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com> | |
22729 | ||
22730 | PR middle-end/71279 | |
22731 | * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR | |
22732 | into comparison. | |
22733 | ||
22734 | 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22735 | ||
22736 | * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete. | |
22737 | * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition | |
22738 | that returns CC_SESWPmode and CC_ZESWPmode. | |
22739 | (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode | |
22740 | and CC_SESWPmode. | |
22741 | (aarch64_rtx_costs): Likewise. | |
22742 | ||
22743 | 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com> | |
22744 | ||
22745 | * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function | |
22746 | for ISA 3.0 min/max support. | |
22747 | (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point | |
22748 | conditional move support. | |
22749 | (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and | |
22750 | rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are | |
22751 | available. | |
22752 | * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing | |
22753 | conditional moves where the comparison type is different from move | |
22754 | type. | |
22755 | (fp_minmax): New code iterator for smin/smax. | |
22756 | (minmax): New code attributes for min/max. | |
22757 | (SMINMAX): Likewise. | |
22758 | (smax<mode>3): Combine min, max insns into one insn using the | |
22759 | fp_minmax code iterator. Add support for ISA 3.0 min/max | |
22760 | instructions that don't need -ffast-math. | |
22761 | (s<minmax><mode>3): Likewise. | |
22762 | (smax<mode>3_vsx): Likewise. | |
22763 | (smin<mode>3): Likewise. | |
22764 | (s<minmax><mode>3_vsx): Likewise. | |
22765 | (smin<mode>3_vsx): Likewise. | |
22766 | (pre-VSX min/max splitters): Likewise. | |
22767 | (s<minmax><mode>3_fpr): Likewise. | |
22768 | (movsfcc): Rewrite floating point conditional moves to combine | |
22769 | SFmode/DFmode into a single insn. | |
22770 | (mov<mode>cc): Likewise. | |
22771 | (movdfcc): Likewise. | |
22772 | (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and | |
22773 | SFDF2 iterators to handle all combinations. | |
22774 | (fseldfsf4): Likewise. | |
22775 | (fsel<SFDF:mode><SFDF2:mode>4): Likewise. | |
22776 | (fseldfdf4): Likewise. | |
22777 | (fselsfdf4): Likewise. | |
22778 | (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0 | |
22779 | comparison instructions that set a 0/-1 mask, and use it for | |
22780 | floating point conditional move via XXSEL. | |
22781 | (fpmask<mode>): Likewise. | |
22782 | (xxsel<mode>): Likewise. | |
22783 | * config/rs6000/predicates.md (min_max_operator): Delete, no | |
22784 | longer used. | |
22785 | (fpmask_comparison_operaton): New insn for ISA 3.0 comparison | |
22786 | instructions that generate a 0/-1 mask for use with XXSEL. | |
22787 | * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to | |
22788 | say whether floating point min/max is available, either through | |
22789 | FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons. | |
22790 | (TARGET_MINMAX_DF): Likewise. | |
22791 | ||
22792 | 2016-05-27 Alan Modra <amodra@gmail.com> | |
22793 | ||
22794 | PR rtl-optimization/71275 | |
22795 | * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth | |
22796 | for update_equiv_regs and combine_and_move_insns. | |
22797 | ||
22798 | 2016-05-26 Uros Bizjak <ubizjak@gmail.com> | |
22799 | ||
22800 | * config/i386/i386.md (*movqi_internal) <attr "isa">: Use | |
22801 | if_then_else or cond RTXes to calculate attribute value. | |
22802 | * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto. | |
22803 | <attr "length_immediate>: Ditto. | |
22804 | (*vec_extractv2sf_1) <attr "length_immediate">: Ditto. | |
22805 | * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto. | |
22806 | (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto. | |
22807 | <attr "type">: Ditto. | |
22808 | <attr "prefix_data16">: Ditto. | |
22809 | <attr "prefix_extra">: Ditto. | |
22810 | <attr "length_immediate">: Ditto. | |
22811 | <attr "prefix">: Ditto. | |
22812 | (vec_set<mode>_0) <attr "isa">: Ditto. | |
22813 | <attr "prefix_extra">: Ditto. | |
22814 | <attr "length_immediate">: Ditto. | |
22815 | <attr "prefix">: Ditto. | |
22816 | (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto. | |
22817 | (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto. | |
22818 | (sse2_storelpd) <attr "prefix_data16">: Ditto. | |
22819 | (sse2_loadhpd) <attr "prefix_data16">: Ditto. | |
22820 | (sse2_loadlpd) <attr "prefix_data16">: Ditto. | |
22821 | <attr "length_immediate">: Ditto. | |
22822 | <attr "prefix">: Ditto. | |
22823 | (sse2_movsd) <attr "length_immediate">: Ditto. | |
22824 | <attr "prefix">: Ditto. | |
22825 | (vec_concatv2df) <attr "isa">: Ditto. | |
22826 | <attr "prefix">: Ditto. | |
22827 | (*vec_extractv4si) <attr "prefix_extra">: Ditto. | |
22828 | (*vec_extractv2di_1) <attr "isa">: Ditto. | |
22829 | <attr "type">: Ditto. | |
22830 | <attr "length_immediate">: Ditto. | |
22831 | <attr "prefix_rex">: Ditto. | |
22832 | <attr "prefix_extra">: Ditto. | |
22833 | (*vec_concatv2si_sse4_1) <attr "type">: Ditto. | |
22834 | <attr "prefix_extra">: Ditto. | |
22835 | <attr "length_immediate">: Ditto. | |
22836 | (vec_concatv2di) <attr "isa">: Ditto. | |
22837 | <attr "prefix_extra">: Ditto. | |
22838 | <attr "length_immediate">: Ditto. | |
22839 | <attr "prefix">: Ditto. | |
22840 | ||
22841 | 2016-05-26 Martin Liska <mliska@suse.cz> | |
22842 | ||
22843 | * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New | |
22844 | function. | |
22845 | (operator+): Likewise. | |
22846 | (operator-): Likewise. | |
22847 | (comp_cost::operator+=): Likewise. | |
22848 | (comp_cost::operator-=): Likewise. | |
22849 | (comp_cost::operator/=): Likewise. | |
22850 | (comp_cost::operator*=): Likewise. | |
22851 | (operator<): Likewise. | |
22852 | (operator==): Likewise. | |
22853 | (operator<=): Likewise. | |
22854 | (new_cost): Remove. | |
22855 | (infinite_cost_p): Likewise. | |
22856 | (add_costs): Likewise. | |
22857 | (sub_costs): Likewise. | |
22858 | (compare_costs): Likewise. | |
22859 | (set_group_iv_cost): Use the newly introduced functions. | |
22860 | (get_address_cost): Likewise. | |
22861 | (get_shiftadd_cost): Likewise. | |
22862 | (force_expr_to_var_cost): Likewise. | |
22863 | (split_address_cost): Likewise. | |
22864 | (ptr_difference_cost): Likewise. | |
22865 | (difference_cost): Likewise. | |
22866 | (get_computation_cost_at): Likewise. | |
22867 | (determine_group_iv_cost_generic): Likewise. | |
22868 | (determine_group_iv_cost_address): Likewise. | |
22869 | (determine_group_iv_cost_cond): Likewise. | |
22870 | (autoinc_possible_for_pair): Likewise. | |
22871 | (determine_group_iv_costs): Likewise. | |
22872 | (cheaper_cost_pair): Likewise. | |
22873 | (iv_ca_recount_cost): Likewise. | |
22874 | (iv_ca_set_no_cp): Likewise. | |
22875 | (iv_ca_set_cp): Likewise. | |
22876 | (iv_ca_cost): Likewise. | |
22877 | (iv_ca_new): Likewise. | |
22878 | (iv_ca_dump): Likewise. | |
22879 | (iv_ca_narrow): Likewise. | |
22880 | (iv_ca_prune): Likewise. | |
22881 | (iv_ca_replace): Likewise. | |
22882 | (try_add_cand_for): Likewise. | |
22883 | (try_improve_iv_set): Likewise. | |
22884 | (find_optimal_iv_set): Likewise. | |
22885 | ||
22886 | 2016-05-26 Richard Sandiford <richard.sandiford@arm.com> | |
22887 | ||
22888 | * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume | |
22889 | that internal functions will clobber all caller-saved registers. | |
22890 | ||
22891 | 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com> | |
22892 | ||
22893 | * config/aarch64/aarch64.c (aarch64_case_values_threshold): | |
22894 | Return a better case_values_threshold when optimizing. | |
22895 | ||
22896 | 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com> | |
22897 | ||
22898 | * config/aarch64/aarch64-simd.md (aarch64_combinez): | |
22899 | Add ? to integer variant. | |
22900 | (aarch64_combinez_be): Likewise. | |
22901 | ||
22902 | 2016-05-26 Jakub Jelinek <jakub@redhat.com> | |
22903 | ||
22904 | * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint | |
22905 | instead of x constraint. | |
22906 | (vcvtps2ph256<mask_name>): Likewise. | |
22907 | ||
22908 | * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw | |
22909 | alternative. Formatting fix. | |
22910 | ||
22911 | * config/i386/sse.md | |
22912 | (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename | |
22913 | to ... | |
22914 | (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this. | |
22915 | (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use | |
22916 | maybe_evex prefix instead of vex. | |
22917 | (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle | |
22918 | EXT_REX_SSE_REG_P (op0) case in the splitter. | |
22919 | ||
22920 | 2016-05-25 Jeff Law <law@redhat.com> | |
22921 | ||
22922 | PR tree-optimization/71272 | |
22923 | * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path): | |
22924 | Update comments. Add test for empty path. | |
22925 | ||
22926 | 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com> | |
22927 | ||
22928 | * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne. | |
22929 | * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a | |
22930 | special case builtin. | |
22931 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add | |
22932 | code for ALTIVEC_BUILTIN_VEC_CMPNE. | |
22933 | * config/rs6000/rs6000.c (altivec_init_builtins): Add definition | |
22934 | for __builtin_vec_cmpne. | |
22935 | ||
22936 | 2016-05-25 Eric Botcazou <ebotcazou@adacore.com> | |
22937 | ||
22938 | * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove | |
22939 | redundant test and bail out if the type of the new operand is not | |
22940 | a GIMPLE register type after stripping a VIEW_CONVERT_EXPR. | |
22941 | ||
22942 | 2016-05-25 Uros Bizjak <ubizjak@gmail.com> | |
22943 | ||
22944 | * config/i386/i386.opt (ix86_target_flags_explicit): Remove. | |
22945 | (x_ix86_target_flags_explicit): Remove. | |
22946 | * config/i386/i386.c (ix86_function_specific_save): Do not copy | |
22947 | x_ix86_target_flags_explicit. | |
22948 | (ix86_function_specific_restore): Ditto. | |
22949 | ||
22950 | 2016-05-25 Uros Bizjak <ubizjak@gmail.com> | |
22951 | H.J. Lu <hongjiu.lu@intel.com> | |
22952 | ||
22953 | PR target/70738 | |
22954 | * common/config/i386/i386-common.c | |
22955 | (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New. | |
22956 | (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable | |
22957 | MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only. | |
22958 | * config/i386/i386.opt (ix86_target_flags): Add new Variable. | |
22959 | (-mgeneral-regs-only): Add new option. | |
22960 | * config/i386/i386.c (ix86_option_override_internal): Don't enable | |
22961 | x87 instructions if only general registers are allowed. | |
22962 | (ix86_target_string): Add ix86_flags argument. Handle additional | |
22963 | flags options through ix86_flags argument. Update all callers. | |
22964 | * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only. | |
22965 | ||
22966 | 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22967 | ||
22968 | PR rtl-optimization/66940 | |
22969 | * ifcvt.c (noce_get_alt_condition): Check that incrementing or | |
22970 | decrementing desired_val will not overflow before performing these | |
22971 | operations. | |
22972 | ||
22973 | 2016-05-25 Ilya Verbin <ilya.verbin@intel.com> | |
22974 | ||
22975 | * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF, | |
22976 | V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND. | |
22977 | * config/i386/i386.c (enum ix86_builtins): Add | |
22978 | IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512, | |
22979 | IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512, | |
22980 | IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512, | |
22981 | IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512, | |
22982 | IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512, | |
22983 | IX86_BUILTIN_ROUNDPS_AZ_SFIX512. | |
22984 | (builtin_description bdesc_args): Add __builtin_ia32_floorps512, | |
22985 | __builtin_ia32_ceilps512, __builtin_ia32_truncps512, | |
22986 | __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512, | |
22987 | __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512, | |
22988 | __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512, | |
22989 | __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512. | |
22990 | Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for | |
22991 | __builtin_ia32_cvtps2dq512_mask. | |
22992 | (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND, | |
22993 | V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF. | |
22994 | (ix86_builtin_vectorized_function): Handle builtins mentioned above. | |
22995 | * config/i386/sse.md | |
22996 | (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>): | |
22997 | Rename to ... | |
22998 | (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this. | |
22999 | (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename | |
23000 | to ... | |
23001 | (avx512f_cvtpd2dq512<mask_name><round_name>): ... this. | |
23002 | (avx512f_vec_pack_sfix_v8df): New define_expand. | |
23003 | (avx512f_roundpd512): Rename to ... | |
23004 | (avx512f_round<castmode>512): ... this. Change iterator. | |
23005 | (avx512f_roundps512_sfix): New define_expand. | |
23006 | (round<mode>2_sfix): Change iterator. | |
23007 | ||
23008 | 2016-05-25 Nick Clifton <nickc@redhat.com> | |
23009 | ||
23010 | * config/msp430/msp430.c (msp430_attr): Produce an error if a | |
23011 | static interrupt handler is detected. | |
23012 | * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the | |
23013 | default linker script. | |
23014 | * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading | |
23015 | the low part of a symbolic pointer. | |
23016 | ||
23017 | 2016-05-25 Richard Biener <rguenther@suse.de> | |
23018 | ||
23019 | PR tree-optimization/71261 | |
23020 | * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the | |
23021 | interesting stmt instead of immediate uses when looking | |
23022 | for the use operand to replace. | |
23023 | ||
23024 | 2016-05-25 Martin Liska <mliska@suse.cz> | |
23025 | ||
23026 | * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'. | |
23027 | ||
23028 | 2016-05-25 Richard Biener <rguenther@suse.de> | |
23029 | ||
23030 | PR tree-optimization/71264 | |
23031 | * tree-vect-stmts.c (vect_init_vector): Properly deal with | |
23032 | vector type val. | |
23033 | ||
23034 | 2016-05-25 Martin Liska <mliska@suse.cz> | |
23035 | ||
23036 | PR tree-optimization/71239 | |
23037 | * tree.c (array_at_struct_end_p): Do not call operand_equal_p | |
23038 | if DECL_SIZE is NULL. | |
23039 | ||
23040 | 2016-05-25 Richard Biener <rguenther@suse.de> | |
23041 | ||
23042 | * timevar.def (TV_TREE_LOOP_IFCVT): Add. | |
23043 | * tree-if-conv.c (pass_data_if_conversion): Use it. | |
23044 | ||
23045 | 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
23046 | ||
23047 | * cgraph.c (cgraph_node::get_availability): Fix typo in comment. | |
23048 | * symtab.c (symtab_node::binds_to_current_def_p): Likewise. | |
23049 | * varpool.c (varpool_node::get_availability): Likewise. | |
23050 | ||
23051 | 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com> | |
23052 | ||
23053 | * config/rs6000/altivec.md (VNEG iterator): New iterator for | |
23054 | VNEGW/VNEGD instructions. | |
23055 | (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD. | |
23056 | (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and | |
23057 | support for ISA 3.0 VNEGW/VNEGD instructions. | |
23058 | ||
23059 | 2016-05-24 Cesar Philippidis <cesar@codesourcery.com> | |
23060 | ||
23061 | * gimplify.c (omp_notice_variable): Use zero-length arrays for data | |
23062 | pointers inside OACC_DATA regions. | |
23063 | (gimplify_scan_omp_clauses): Prune firstprivate clause associated | |
23064 | with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions. | |
23065 | (gimplify_adjust_omp_clauses): Fix typo in comment. | |
23066 | ||
23067 | 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com> | |
23068 | ||
23069 | * config/rs6000/altivec.md (VParity): New mode iterator for vector | |
23070 | parity built-in functions. | |
23071 | (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing | |
23072 | zeros. | |
23073 | (p9v_parity<mode>2): Likewise. | |
23074 | * config/rs6000/vector.md (VEC_IP): New mode iterator for vector | |
23075 | parity. | |
23076 | (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros. | |
23077 | (parity<mode>2): ISA 3.0 expander for vector parity. | |
23078 | * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for | |
23079 | power9 built-ins. | |
23080 | (BU_P9_64BIT_MISC_0): Likewise. | |
23081 | (BU_P9_MISC_0): Likewise. | |
23082 | (BU_P9V_AV_1): Likewise. | |
23083 | (BU_P9V_AV_2): Likewise. | |
23084 | (BU_P9V_AV_3): Likewise. | |
23085 | (BU_P9V_AV_P): Likewise. | |
23086 | (BU_P9V_VSX_1): Likewise. | |
23087 | (BU_P9V_OVERLOAD_1): Likewise. | |
23088 | (BU_P9V_OVERLOAD_2): Likewise. | |
23089 | (BU_P9V_OVERLOAD_3): Likewise. | |
23090 | (VCTZB): Add vector count trailing zeros support. | |
23091 | (VCTZH): Likewise. | |
23092 | (VCTZW): Likewise. | |
23093 | (VCTZD): Likewise. | |
23094 | (VPRTYBD): Add vector parity support. | |
23095 | (VPRTYBQ): Likewise. | |
23096 | (VPRTYBW): Likewise. | |
23097 | (VCTZ): Add overloaded vector count trailing zeros support. | |
23098 | (VPRTYB): Add overloaded vector parity support. | |
23099 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
23100 | overloaded vector count trailing zeros and parity instructions. | |
23101 | * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for | |
23102 | vector parity support. | |
23103 | * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count | |
23104 | trailing zeros support. | |
23105 | (vec_cntlz): Likewise. | |
23106 | (vec_vctzb): Likewise. | |
23107 | (vec_vctzd): Likewise. | |
23108 | (vec_vctzh): Likewise. | |
23109 | (vec_vctzw): Likewise. | |
23110 | (vec_vprtyb): Add ISA 3.0 vector parity support. | |
23111 | (vec_vprtybd): Likewise. | |
23112 | (vec_vprtybw): Likewise. | |
23113 | (vec_vprtybq): Likewise. | |
23114 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document | |
23115 | the ISA 3.0 vector count trailing zeros and vector parity built-in | |
23116 | functions. | |
23117 | ||
23118 | 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org> | |
23119 | ||
23120 | * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb | |
23121 | when there is stmt_to_insert. | |
23122 | ||
23123 | 2016-05-24 Martin Sebor <msebor@redhat.com> | |
23124 | ||
23125 | PR c++/71147 | |
23126 | * tree.h (complete_or_array_type_p): New inline function. | |
23127 | ||
23128 | 2016-05-24 Jakub Jelinek <jakub@redhat.com> | |
23129 | ||
23130 | * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define. | |
23131 | * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES | |
23132 | rather than X86_TUNE_AVOID_4BYTE_PREFIXES. | |
23133 | ||
23134 | * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): | |
23135 | Limit 1st alternative to noavx isa, split 2nd alternative into one | |
23136 | noavx and one avx alternative, use *x and Bm in the former and | |
23137 | x and m in the latter. | |
23138 | ||
23139 | * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead | |
23140 | of sse4 for the first alternative, drop %v from the template | |
23141 | and d operand modifier. Split second alternative into one sse4_noavx | |
23142 | and one avx alternative, use *x instead of *v in the former and v | |
23143 | instead of *v in the latter. | |
23144 | (*sse4_1_extractps): Use noavx isa instead of * for the first | |
23145 | alternative, drop %v from the template. Split second alternative into | |
23146 | one noavx and one avx alternative, use *x instead of *v in the | |
23147 | former and v instead of *v in the latter. | |
23148 | (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives | |
23149 | with noavx and the last one with avx. | |
23150 | (sse4_1_phminposuw): Guard first alternative with noavx isa, | |
23151 | split the second one into one noavx and one avx alternative, | |
23152 | use *x and Bm in the former and x and m in the latter one. | |
23153 | (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two | |
23154 | alternatives. | |
23155 | ||
23156 | * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit | |
23157 | first two alternatives to noavx, use *x instead of *v in the second | |
23158 | one, add avx alternative without *. | |
23159 | (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>, | |
23160 | sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>, | |
23161 | sse4_1_<code>v2siv2di2<mask_name>): Likewise. | |
23162 | ||
23163 | 2016-05-24 Jeff Law <law@redhat.com> | |
23164 | ||
23165 | * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path): | |
23166 | New function, extracted from... | |
23167 | (fsm_find_control_statement_thread_paths): Here. Use the new function. | |
23168 | Allow simple copies and constant initializations in the SSA chain. | |
23169 | ||
23170 | 2016-05-24 Marek Polacek <polacek@redhat.com> | |
23171 | ||
23172 | PR c/71249 | |
23173 | * gimplify.c (gimplify_switch_expr): Look into the innermost lexical | |
23174 | scope. | |
23175 | ||
23176 | 2016-05-24 Jakub Jelinek <jakub@redhat.com> | |
23177 | ||
23178 | PR c++/71257 | |
23179 | * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle | |
23180 | SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like | |
23181 | SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add | |
23182 | SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and | |
23183 | SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly. | |
23184 | ||
23185 | 2016-05-24 Richard Biener <rguenther@suse.de> | |
23186 | ||
23187 | PR tree-optimization/71240 | |
23188 | * tree-ssa-math-opts.c (init_symbolic_number): Verify the source | |
23189 | has integral type. | |
23190 | ||
23191 | 2016-05-24 Richard Biener <rguenther@suse.de> | |
23192 | ||
23193 | PR tree-optimization/71230 | |
23194 | * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops. | |
23195 | ||
23196 | 2016-05-24 Richard Sandiford <richard.sandiford@arm.com> | |
23197 | ||
23198 | * tree-vectorizer.h (vectorizable_comparison): Delete. | |
23199 | * tree-vect-loop.c (vectorizable_reduction): Remove redundant | |
23200 | PURE_SLP_STMT check. | |
23201 | * tree-vect-stmts.c (vectorizable_call): Likewise. | |
23202 | (vectorizable_simd_clone_call): Likewise. | |
23203 | (vectorizable_conversion): Likewise. | |
23204 | (vectorizable_assignment): Likewise. | |
23205 | (vectorizable_shift): Likewise. | |
23206 | (vectorizable_operation): Likewise. | |
23207 | (vectorizable_load): Likewise. | |
23208 | (vectorizable_condition): Likewise. | |
23209 | (vectorizable_store): Likewise. Assert that we don't have | |
23210 | hybrid SLP. | |
23211 | (vectorizable_comparison): Make static. Remove redundant | |
23212 | PURE_SLP_STMT check. | |
23213 | (vect_transform_stmt): Assert that we always have an slp_node | |
23214 | if PURE_SLP_STMT. | |
23215 | ||
23216 | 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
23217 | ||
23218 | * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of | |
23219 | operands[2] against 1 with comparison against CONST1_RTX. | |
23220 | (<shift>di3_neon): Likewise. | |
23221 | * config/arm/predicates.md (const0_operand): Replace with comparison | |
23222 | against CONST0_RTX. | |
23223 | ||
23224 | 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
23225 | ||
23226 | * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of | |
23227 | operands[2] against 1 with comparison against CONST1_RTX. | |
23228 | (ashrdi3): Likewise. | |
23229 | (lshrdi3): Likewise. | |
23230 | (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with | |
23231 | UINTVAL. | |
23232 | (ashrsi3): Likewise. | |
23233 | (lshrsi3): Likewise. | |
23234 | (rotrsi3): Likewise. | |
23235 | (define_split above *compareqi_eq0): Likewise. | |
23236 | (define_split above "prologue"): Likewise. | |
23237 | * config/arm/arm.c (thumb1_size_rtx_costs): Likewise. | |
23238 | * config/arm/predicates.md (shift_operator): Likewise. | |
23239 | (shift_nomul_operator): Likewise. | |
23240 | (sat_shift_operator): Likewise. | |
23241 | (thumb1_cmp_operand): Likewise. | |
23242 | (const_neon_scalar_shift_amount_operand): Replace manual range | |
23243 | check with IN_RANGE. | |
23244 | * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3): | |
23245 | Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL. | |
23246 | ||
23247 | 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
23248 | ||
23249 | * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT | |
23250 | with HOST_WIDE_INT_1. | |
23251 | (insv): Likewise. | |
23252 | * config/arm/arm.c (optimal_immediate_sequence): Replace cast of | |
23253 | 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U. | |
23254 | (arm_canonicalize_comparison): Likewise. | |
23255 | (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with | |
23256 | HOST_WIDE_INT_1. | |
23257 | (thumb1_size_rtx_costs): Likewise. | |
23258 | (vfp_const_double_index): Replace cast of 1 to unsigned | |
23259 | HOST_WIDE_INT with HOST_WIDE_INT_1U. | |
23260 | (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with | |
23261 | HOST_WIDE_INT_1. | |
23262 | (arm_asan_shadow_offset): Replace cast of 1 to unsigned | |
23263 | HOST_WIDE_INT with HOST_WIDE_INT_1U. | |
23264 | * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to | |
23265 | HOST_WIDE_INT with HOST_WIDE_INT_1. | |
23266 | ||
23267 | 2016-05-24 Marek Polacek <polacek@redhat.com> | |
23268 | ||
23269 | * tree-cfg.h (should_remove_lhs_p): New predicate. | |
23270 | * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it. | |
23271 | * gimplify.c (gimplify_modify_expr): Likewise. | |
23272 | * tree-cfg.c (verify_gimple_call): Likewise. | |
23273 | * tree-cfgcleanup.c (fixup_noreturn_call): Likewise. | |
23274 | * gimple-fold.c: Include "tree-cfg.h". | |
23275 | (gimple_fold_call): Use should_remove_lhs_p. | |
23276 | ||
23277 | 2016-05-24 Richard Biener <rguenther@suse.de> | |
23278 | ||
23279 | PR tree-optimization/71253 | |
23280 | * cfganal.h (control_dependences): Make robust against edge | |
23281 | and BB removal. | |
23282 | (control_dependences::control_dependences): Remove edge_list argument. | |
23283 | (control_dependences::get_edge): Remove. | |
23284 | (control_dependences::get_edge_src): Add. | |
23285 | (control_dependences::get_edge_dest): Likewise. | |
23286 | (control_dependences::m_el): Make a vector of edge src/dest index. | |
23287 | * cfganal.c (control_dependences::find_control_dependence): Adjust. | |
23288 | (control_dependences::control_dependences): Likewise. | |
23289 | (control_dependences::~control_dependence): Likewise. | |
23290 | (control_dependences::get_edge): Remove. | |
23291 | (control_dependences::get_edge_src): Add. | |
23292 | (control_dependences::get_edge_dest): Likewise. | |
23293 | * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use | |
23294 | get_edge_src. | |
23295 | (perform_tree_ssa_dce): Adjust. | |
23296 | * tree-loop-distribution.c (create_edge_for_control_dependence): Use | |
23297 | get_edge_src. | |
23298 | (pass_loop_distribution::execute): Adjust. Do loop destroying | |
23299 | conditional on changed. | |
23300 | ||
23301 | 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
23302 | ||
23303 | PR target/69857 | |
23304 | * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early | |
23305 | return. Reindent transformation comment and mention the ARM state | |
23306 | behavior. | |
23307 | ||
23308 | 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org> | |
23309 | ||
23310 | PR middle-end/71252 | |
23311 | * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert | |
23312 | after build_and_add_sum creates new use stmt. | |
23313 | ||
23314 | 2016-05-24 Richard Sandiford <richard.sandiford@arm.com> | |
23315 | ||
23316 | * tree-vect-stmts.c (vectorizable_load): Reorder checks so that | |
23317 | load_lanes/grouped_load classification comes first. Don't check | |
23318 | whether the vectorization factor is a multiple of the group size | |
23319 | for load_lanes. | |
23320 | ||
23321 | 2016-05-24 Richard Sandiford <richard.sandiford@arm.com> | |
23322 | ||
23323 | * tree-vect-data-refs.c (vect_analyze_group_access_1): Set | |
23324 | GROUP_GAP for single-element interleaving. | |
23325 | * tree-vect-stmts.c (vectorizable_load): Remove force_peeling | |
23326 | variable. | |
23327 | ||
23328 | 2016-05-24 Richard Biener <rguenther@suse.de> | |
23329 | ||
23330 | PR middle-end/70434 | |
23331 | PR c/69504 | |
23332 | * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark | |
23333 | bases which are accessed with non-invariant indices. | |
23334 | * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write | |
23335 | constant index ARRAY_REFs of vectors into BIT_FIELD_REFs. | |
23336 | ||
23337 | 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org> | |
23338 | ||
23339 | PR middle-end/71170 | |
23340 | * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert. | |
23341 | (add_to_ops_vec): Add stmt_to_insert. | |
23342 | (add_repeat_to_ops_vec): Init stmt_to_insert. | |
23343 | (insert_stmt_before_use): New. | |
23344 | (transform_add_to_multiply): Remove mult_stmt insertion and add it | |
23345 | to ops vector. | |
23346 | (get_ops): Init stmt_to_insert. | |
23347 | (maybe_optimize_range_tests): Likewise. | |
23348 | (rewrite_expr_tree): Insert stmt_to_insert before use stmt. | |
23349 | (rewrite_expr_tree_parallel): Likewise. | |
23350 | (reassociate_bb): Likewise. | |
23351 | ||
23352 | 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com> | |
23353 | ||
23354 | PR target/71201 | |
23355 | * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop | |
23356 | ISA 3.0 xxperm fusion alternative. | |
23357 | (altivec_vperm_v8hiv16qi): Likewise. | |
23358 | (altivec_vperm_<mode>_uns_internal): Likewise. | |
23359 | (vperm_v8hiv4si): Likewise. | |
23360 | (vperm_v16qiv8hi): Likewise. | |
23361 | ||
23362 | 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com> | |
23363 | Kelvin Nilsen <kelvin@gcc.gnu.org> | |
23364 | ||
23365 | * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate | |
23366 | vpermr/xxpermr on ISA 3.0. | |
23367 | (altivec_expand_vec_perm_le): Likewise. | |
23368 | * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec. | |
23369 | (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for | |
23370 | ISA 3.0. | |
23371 | ||
23372 | 2016-05-23 Uros Bizjak <ubizjak@gmail.com> | |
23373 | ||
23374 | * config/i386/i386.h (IS_STACK_MODE): Enable for | |
23375 | TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and | |
23376 | SSE_FLOAT_MODE_P macros. | |
23377 | * config/i386/i386.c (ix86_preferred_reload_class): Use | |
23378 | IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros. | |
23379 | Cleanup regclass processing for CONST_DOUBLE_P. | |
23380 | (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro. | |
23381 | (ix86_rtx_costs): Remove redundant TARGET_80387 check | |
23382 | with IS_STACK_MODE macro. | |
23383 | * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode) | |
23384 | with TARGET_SSE2. | |
23385 | (*movdf_internal): Use IS_STACK_MODE macro. | |
23386 | (*movsf_internal): Ditto. | |
23387 | ||
23388 | 2016-05-23 Marc Glisse <marc.glisse@inria.fr> | |
23389 | ||
23390 | * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A), | |
23391 | ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints. | |
23392 | ||
23393 | 2016-05-23 Jeff Law <law@redhat.com> | |
23394 | ||
23395 | * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function | |
23396 | extracted from ... | |
23397 | (fsm_find_control_statement_thread_paths): Call it. | |
23398 | ||
23399 | 2016-05-23 Martin Jambor <mjambor@suse.cz> | |
23400 | ||
23401 | PR ipa/71234 | |
23402 | * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of | |
23403 | from_global_constant if t is not NULL. | |
23404 | ||
23405 | 2016-05-23 Marek Polacek <polacek@redhat.com> | |
23406 | ||
23407 | PR c/49859 | |
23408 | * common.opt (Wswitch-unreachable): New option. | |
23409 | * doc/invoke.texi: Document -Wswitch-unreachable. | |
23410 | * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable | |
23411 | warning. | |
23412 | ||
23413 | 2016-05-23 Bin Cheng <bin.cheng@arm.com> | |
23414 | ||
23415 | * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when | |
23416 | TMR_INDEX is non-NULL. | |
23417 | ||
23418 | 2016-05-23 Richard Biener <rguenther@suse.de> | |
23419 | ||
23420 | PR tree-optimization/71230 | |
23421 | * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition... | |
23422 | (try_special_add_to_ops): ... here. Always test for single-use. | |
23423 | ||
23424 | 2016-05-23 Martin Jambor <mjambor@suse.cz> | |
23425 | ||
23426 | * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty | |
23427 | default block if a PHI node in the original one would be resized. | |
23428 | ||
23429 | 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com> | |
23430 | ||
23431 | PR tree-optimization/58135 | |
23432 | * tree-vect-slp.c: When group size is not multiple | |
23433 | of vector size, allow splitting of store group at | |
23434 | vector boundary. | |
23435 | ||
23436 | 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org> | |
23437 | ||
23438 | * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New. | |
23439 | ||
23440 | 2016-05-22 Jakub Jelinek <jakub@redhat.com> | |
23441 | ||
23442 | * config/i386/sse.md (vec_set_lo_<mode><mask_name>, | |
23443 | vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition> | |
23444 | condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead | |
23445 | of 64x2. | |
23446 | ||
23447 | * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi, | |
23448 | vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with | |
23449 | v constraint instead of x and vinserti32x4 insn. | |
23450 | ||
23451 | * config/i386/sse.md (i128vldq): New mode iterator. | |
23452 | (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add | |
23453 | avx512dq and avx512vl alternatives. | |
23454 | ||
23455 | * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x | |
23456 | constraint, use maybe_evex prefix instead of vex. | |
23457 | (vec_dupv4sf): Use v constraint instead of x for output | |
23458 | operand except for noavx alternative, use Yv constraint | |
23459 | instead of x for input. Use maybe_evex prefix instead of vex. | |
23460 | (*vec_dupv4si): Likewise. | |
23461 | (*vec_dupv2di): Likewise. | |
23462 | ||
23463 | 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org> | |
23464 | ||
23465 | PR middle-end/40921 | |
23466 | * tree-ssa-reassoc.c (try_special_add_to_ops): New. | |
23467 | (linearize_expr_tree): Call try_special_add_to_ops. | |
23468 | (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR. | |
23469 | ||
23470 | 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> | |
23471 | ||
23472 | * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET | |
23473 | to computed stack_usage. | |
23474 | ||
23475 | 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com> | |
23476 | ||
23477 | PR target/71103 | |
23478 | * config/avr/avr.md (define_expand "mov<mode>"): If the source | |
23479 | operand is subreg (symbol_ref) then move the symbol ref to register. | |
23480 | ||
23481 | 2016-05-21 Jan Hubicka <hubicka@ucw.cz> | |
23482 | ||
23483 | * tree.c (array_at_struct_end_p): Look through MEM_REF. | |
23484 | ||
23485 | 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org> | |
23486 | ||
23487 | PR middle-end/71179 | |
23488 | * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float | |
23489 | VECTOR type. | |
23490 | ||
23491 | 2016-05-20 Eric Botcazou <ebotcazou@adacore.com> | |
23492 | ||
23493 | * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic | |
23494 | ranges by calling get_single_symbol and tidy up. Look more closely | |
23495 | into NAME + CST1 vs CST2 comparisons if type overflow is undefined. | |
23496 | ||
23497 | 2016-05-20 Jeff Law <law@redhat.com> | |
23498 | ||
23499 | * bitmap.c (bitmap_find_bit): Remove useless test. | |
23500 | ||
23501 | 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org> | |
23502 | ||
23503 | * function.c (thread_prologue_and_epilogue_insns): Commit the | |
23504 | insertion of the epilogue. | |
23505 | ||
23506 | 2016-05-20 Martin Jambor <mjambor@suse.cz> | |
23507 | ||
23508 | PR tree-optimization/70884 | |
23509 | * tree-sra.c (initialize_constant_pool_replacements): Do not check | |
23510 | should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits. | |
23511 | (sort_and_splice_var_accesses): Do not consider multiple scalar reads | |
23512 | of constant pool data as a reason for scalarization. | |
23513 | ||
23514 | 2016-05-20 Eric Botcazou <ebotcazou@adacore.com> | |
23515 | ||
23516 | * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0 | |
23517 | for naked functions. | |
23518 | (thumb1_expand_prologue): Likewise. | |
23519 | ||
23520 | 2016-05-20 Nathan Sidwell <nathan@acm.org> | |
23521 | ||
23522 | * config/nvptx/nptx.c (nvptx_option_override): Only set | |
23523 | flag_toplevel_reorder, if not explicitly specified. Set | |
23524 | flag_no_common, unless explicitly specified. | |
23525 | ||
23526 | 2016-05-20 David Malcolm <dmalcolm@redhat.com> | |
23527 | ||
23528 | * calls.c (can_implement_as_sibling_call_p): Mark param | |
23529 | reg_parm_stack_space with ATTRIBUTE_UNUSED. | |
23530 | ||
23531 | 2016-05-20 Uros Bizjak <ubizjak@gmail.com> | |
23532 | ||
23533 | * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>: | |
23534 | Use IS_STACK_MODE when calculating cost of standard 80387 constants. | |
23535 | Fallthru to CONST_VECTOR case to calculate cost of standard SSE | |
23536 | constants. | |
23537 | <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)). | |
23538 | (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT | |
23539 | and CASE_CONST_ANY. | |
23540 | ||
23541 | 2016-05-20 Cesar Philippidis <cesar@codesourcery.com> | |
23542 | ||
23543 | * config/nvptx/nvptx.md (sincossf3): New pattern. | |
23544 | ||
23545 | 2016-05-20 David Malcolm <dmalcolm@redhat.com> | |
23546 | ||
23547 | * calls.c (maybe_complain_about_tail_call): New function. | |
23548 | (initialize_argument_information): Call | |
23549 | maybe_complain_about_tail_call when clearing *may_tailcall. | |
23550 | (can_implement_as_sibling_call_p): Call | |
23551 | maybe_complain_about_tail_call when returning false. | |
23552 | (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set, | |
23553 | ensure try_tail_call is set. Call maybe_complain_about_tail_call | |
23554 | if tail-call optimization fails. | |
23555 | * cfgexpand.c (expand_call_stmt): Initialize | |
23556 | CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p. | |
23557 | * gimple-pretty-print.c (dump_gimple_call): Dump | |
23558 | gimple_call_must_tail_p. | |
23559 | * gimple.c (gimple_build_call_from_tree): Call | |
23560 | gimple_call_set_must_tail with the value of | |
23561 | CALL_EXPR_MUST_TAIL_CALL. | |
23562 | * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL. | |
23563 | (gimple_call_set_must_tail): New function. | |
23564 | (gimple_call_must_tail_p): New function. | |
23565 | * print-tree.c (print_node): Update printing of TREE_STATIC | |
23566 | to reflect its use for CALL_EXPR_MUST_TAIL_CALL. | |
23567 | * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the | |
23568 | trailing comment listing applicable flags. | |
23569 | * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro. | |
23570 | ||
23571 | 2016-05-20 David Malcolm <dmalcolm@redhat.com> | |
23572 | ||
23573 | * calls.c (expand_call): Move "Rest of purposes for tail call | |
23574 | optimizations to fail" to... | |
23575 | (can_implement_as_sibling_call_p): ...this new function, and | |
23576 | split into multiple "if" statements. | |
23577 | ||
23578 | 2016-05-20 Jan Hubicka <hubicka@ucw.cz> | |
23579 | ||
23580 | * cfgloop.h (expected_loop_iterations_unbounded, | |
23581 | expected_loop_iterations): Unconstify. | |
23582 | * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the | |
23583 | profile with known upper bound; return 3 when profile is absent. | |
23584 | (expected_loop_iterations): Update. | |
23585 | ||
23586 | 2016-05-20 Jan Hubicka <hubicka@ucw.cz> | |
23587 | ||
23588 | * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int | |
23589 | and get_max_loop_iterations_int. | |
23590 | ||
23591 | 2016-05-20 Jan Hubicka <hubicka@ucw.cz> | |
23592 | ||
23593 | * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce | |
23594 | realistic upper bounds here. | |
23595 | ||
23596 | 2016-05-20 Jakub Jelinek <jakub@redhat.com> | |
23597 | ||
23598 | PR c++/71210 | |
23599 | * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn | |
23600 | calls if the LHS is variable length or has addressable type. | |
23601 | If targets[0]->decl is a noreturn call with void return type and | |
23602 | zero arguments, adjust fntype and remove lhs in that case. | |
23603 | ||
23604 | 2016-05-20 Marc Glisse <marc.glisse@inria.fr> | |
23605 | ||
23606 | PR tree-optimization/71079 | |
23607 | PR tree-optimization/71206 | |
23608 | * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments. | |
23609 | ||
23610 | 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
23611 | ||
23612 | * tree-vectorizer.c (get_vec_alignment_for_decl): New static function. | |
23613 | (get_vec_alignment_for_array_decl): Likewise. | |
23614 | (get_vec_alignment_for_record_decl): Likewise. | |
23615 | (increase_alignment::execute): Move code to find alignment to | |
23616 | get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl. | |
23617 | (type_align_map): New hash_map. | |
23618 | ||
23619 | 2016-05-20 Richard Guenther <rguenther@suse.de> | |
23620 | ||
23621 | PR tree-optimization/29756 | |
23622 | * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code. | |
23623 | * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR. | |
23624 | * fold-const.c (operand_equal_p): Likewise. | |
23625 | (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR. | |
23626 | * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR. | |
23627 | * tree-inline.c (estimate_operator_cost): Likewise. | |
23628 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
23629 | * tree-ssa-operands.c (get_expr_operands): Likewise. | |
23630 | * cfgexpand.c (expand_debug_expr): Likewise. | |
23631 | * gimple-pretty-print.c (dump_ternary_rhs): Likewise. | |
23632 | * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR. | |
23633 | * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR. | |
23634 | * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite | |
23635 | vector inserts using BIT_FIELD_REF or MEM_REF on the lhs. | |
23636 | (execute_update_addresses_taken): Do it. | |
23637 | ||
23638 | 2016-05-20 Richard Biener <rguenther@suse.de> | |
23639 | ||
23640 | PR tree-optimization/71185 | |
23641 | * tree-ssa-loop-prefetch.c (gather_memory_references): Drop | |
23642 | register operations. | |
23643 | ||
23644 | 2016-05-20 Richard Biener <rguenther@suse.de> | |
23645 | ||
23646 | * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use | |
23647 | gimple_seq_add_seq_without_update. | |
23648 | (release_bb_predicate): Assert we have no operands to free. | |
23649 | (if_convertible_loop_p_1): Calculate post dominators later. | |
23650 | Do not free BB predicates here. | |
23651 | (combine_blocks): Do not recompute BB predicates. | |
23652 | (version_loop_for_if_conversion): Save BB predicates around | |
23653 | loop versioning. | |
23654 | ||
23655 | 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org> | |
23656 | ||
23657 | * function.c (make_epilogue_seq): Remove epilogue_end parameter. | |
23658 | (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure | |
23659 | code. Ignore sibcalls on EDGE_IGNORE edges. | |
23660 | * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE | |
23661 | on edges for sibcalls that run without prologue. The rest of the | |
23662 | function is combined from... | |
23663 | (fix_fake_fallthrough_edge): ... this, and ... | |
23664 | (try_shrink_wrapping): ... a part of this. Remove the bb_with | |
23665 | function argument, make it a local variable. | |
23666 | ||
23667 | 2016-05-19 Sandra Loosemore <sandra@codesourcery.com> | |
23668 | ||
23669 | * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow | |
23670 | --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH | |
23671 | for 32-bit mode and SEH for 64-bit. | |
23672 | * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle | |
23673 | TARGET_64BIT_DEFAULT. | |
23674 | ||
23675 | 2016-05-19 Ryan Burn <contact@rnburn.com> | |
23676 | ||
23677 | * Makefile.in (GTFILES): Add cilk.h and cilk-common.c. | |
23678 | * gengtype.c (open_base_files): Add cilk.h to ifiles. | |
23679 | ||
23680 | 2016-05-19 Uros Bizjak <ubizjak@gmail.com> | |
23681 | ||
23682 | * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also | |
23683 | force pending loads from memory. | |
23684 | ||
23685 | 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
23686 | ||
23687 | * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant. | |
23688 | (UNSPEC_DARN_32): New unspec constant. | |
23689 | (UNSPEC_DARN_RAW): New unspec constant. | |
23690 | (darn_32): New instruction. | |
23691 | (darn_raw): New instruction. | |
23692 | (darn): New instruction. | |
23693 | * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add | |
23694 | support and documentation for this macro. | |
23695 | (BU_P9_MISC_1): New macro definition. | |
23696 | (BU_P9_64BIT_MISC_0): New macro definition. | |
23697 | (BU_P9_MISC_0): New macro definition. | |
23698 | (darn_32): New builtin definition. | |
23699 | (darn_raw): New builtin definition. | |
23700 | (darn): New builtin definition. | |
23701 | * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef | |
23702 | RS6000_BUILTIN_0 directives to surround each occurrence of | |
23703 | #include "rs6000-builtin.def". | |
23704 | (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and | |
23705 | RS6000_BTM_64BIT flags to the returned mask, depending on | |
23706 | configuration. | |
23707 | (def_builtin): Correct an error in the assignments made to the | |
23708 | debugging variable attr_string. | |
23709 | (rs6000_expand_builtin): Add support for no-operand built-in | |
23710 | functions. | |
23711 | (builtin_function_type): Remove fatal_error assertion that is no | |
23712 | longer valid. | |
23713 | (rs6000_common_init_builtins): Add support for no-operand built-in | |
23714 | functions. | |
23715 | * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro | |
23716 | definition. | |
23717 | (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag | |
23718 | definition. | |
23719 | (RS6000_BTM_64BIT): New macro definition. | |
23720 | * doc/extend.texi: Document __builtin_darn (void), | |
23721 | __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in | |
23722 | functions. | |
23723 | ||
23724 | 2016-05-19 Jan Hubicka <hubicka@ucw.cz> | |
23725 | ||
23726 | * tree-vect-loop.c (vect_analyze_loop_2): Use also | |
23727 | max_loop_iterations_int. | |
23728 | ||
23729 | 2016-05-19 Marek Polacek <polacek@redhat.com> | |
23730 | ||
23731 | PR tree-optimization/71031 | |
23732 | * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a | |
23733 | condition and adjust the code a bit. | |
23734 | ||
23735 | 2016-05-19 Martin Liska <mliska@suse.cz> | |
23736 | ||
23737 | * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize | |
23738 | auto_vec instead of vec. | |
23739 | ||
23740 | 2016-05-19 Martin Liska <mliska@suse.cz> | |
23741 | ||
23742 | * tree-parloops.c (oacc_entry_exit_ok): Release a vector. | |
23743 | ||
23744 | 2016-05-19 Martin Liska <mliska@suse.cz> | |
23745 | ||
23746 | * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs. | |
23747 | ||
23748 | 2016-05-19 Martin Liska <mliska@suse.cz> | |
23749 | ||
23750 | * ipa-pure-const.c (set_function_state): Remove an existing | |
23751 | funct_state. | |
23752 | (remove_node_data): Do not free it as it's released | |
23753 | in set_function_state. | |
23754 | ||
23755 | 2016-05-19 Martin Liska <mliska@suse.cz> | |
23756 | ||
23757 | * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release | |
23758 | bitmap. | |
23759 | ||
23760 | 2016-05-19 Martin Liska <mliska@suse.cz> | |
23761 | ||
23762 | * omp-simd-clone.c (simd_clone_adjust): Release vector. | |
23763 | ||
23764 | 2016-05-19 Martin Liska <mliska@suse.cz> | |
23765 | ||
23766 | * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate | |
23767 | an auto_vec instead of re-creating it. | |
23768 | ||
23769 | 2016-05-19 Martin Liska <mliska@suse.cz> | |
23770 | ||
23771 | * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use | |
23772 | auto_vec instead of vec. | |
23773 | ||
23774 | 2016-05-19 Martin Liska <mliska@suse.cz> | |
23775 | ||
23776 | * lto-section-in.c (lto_get_section_data): Call | |
23777 | lto_check_version with additional argument. | |
23778 | * lto-streamer.c (lto_check_version): Add new argument. | |
23779 | * lto-streamer.h (lto_check_version): Likewise. | |
23780 | ||
23781 | 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
23782 | ||
23783 | * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case): | |
23784 | Don't add cost of inner memory when handling sign-extended loads. | |
23785 | ||
23786 | 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com> | |
23787 | ||
23788 | PR rtl-optimization/71148 | |
23789 | * cse.c (cse_main): Free dominance info. | |
23790 | (rest_of_handle_cse): Don't free dominance info. | |
23791 | (rest_of_handle_cse2): Likewise. | |
23792 | (rest_of_handle_cse_after_global_opts): Likewise. | |
23793 | ||
23794 | 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
23795 | ||
23796 | PR target/71056 | |
23797 | * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return | |
23798 | NULL_TREE early if NEON is not available. Remove now redundant check | |
23799 | in ARM_CHECK_BUILTIN_MODE. | |
23800 | ||
23801 | 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com> | |
23802 | ||
23803 | PR sanitizer/64354 | |
23804 | * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new | |
23805 | builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch. | |
23806 | * doc/cpp.texi: Document new macros. | |
23807 | ||
23808 | 2016-05-19 Bin Cheng <bin.cheng@arm.com> | |
23809 | ||
23810 | PR tree-optimization/69848 | |
23811 | * tree-vect-loop.c (vectorizable_reduction): Don't factor | |
23812 | comparison expr out of VEC_COND_EXPR for COND_REDUCTION. | |
23813 | ||
23814 | 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org> | |
23815 | ||
23816 | * function.c (thread_prologue_and_epilogue_insn): Move the | |
23817 | "goto epilogue_done" one block later. | |
23818 | ||
23819 | 2016-05-19 Richard Biener <rguenther@suse.de> | |
23820 | ||
23821 | PR tree-optimization/70729 | |
23822 | * passes.def: Move LIM pass before PRE. Remove no longer | |
23823 | required copyprop and move first DCE out of the loop pipeline. | |
23824 | ||
23825 | 2016-05-18 David Malcolm <dmalcolm@redhat.com> | |
23826 | ||
23827 | PR driver/69265 | |
23828 | * Makefile.in (GCC_OBJS): Move spellcheck.o to... | |
23829 | (OBJS-libcommon-target): ...here. | |
23830 | * opts-common.c: Include spellcheck.h. | |
23831 | (cmdline_handle_error): Build a vec of valid options and use it | |
23832 | to suggest provide hints for misspelled arguments. | |
23833 | ||
23834 | 2016-05-18 Jakub Jelinek <jakub@redhat.com> | |
23835 | ||
23836 | PR c++/71100 | |
23837 | * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop | |
23838 | lhs if it has TREE_ADDRESSABLE type. | |
23839 | ||
23840 | 2016-05-18 Uros Bizjak <ubizjak@gmail.com> | |
23841 | ||
23842 | PR target/71145 | |
23843 | * config/alpha/alpha.md (trap): Add (use (reg:DI 29)). | |
23844 | (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS. | |
23845 | ||
23846 | 2016-05-18 Martin Jambor <mjambor@suse.cz> | |
23847 | ||
23848 | PR ipa/69708 | |
23849 | * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant | |
23850 | input for NOP_EXPR pass-through functions. | |
23851 | * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow | |
23852 | aggregate global constant VAR_DECLs in constant jump functions. | |
23853 | ||
23854 | 2016-05-18 Martin Jambor <mjambor@suse.cz> | |
23855 | ||
23856 | PR ipa/69708 | |
23857 | * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads | |
23858 | from TREE_READONLY parameters. | |
23859 | ||
23860 | 2016-05-18 Martin Jambor <mjambor@suse.cz> | |
23861 | ||
23862 | PR ipa/69708 | |
23863 | * cgraph.h (cgraph_indirect_call_info): New field | |
23864 | guaranteed_unmodified. | |
23865 | * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value | |
23866 | to ipa_find_agg_cst_for_param, check guaranteed_unmodified when | |
23867 | appropriate. | |
23868 | * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also | |
23869 | pass the parameter value to ipa_find_agg_cst_for_param. | |
23870 | * ipa-prop.c (ipa_load_from_parm_agg): New parameter | |
23871 | guaranteed_unmodified, store AA results there instead of bailing out | |
23872 | if present. | |
23873 | (ipa_note_param_call): Also initialize guaranteed_unmodified flag. | |
23874 | (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag. | |
23875 | (find_constructor_constant_at_offset): New function. | |
23876 | (ipa_find_agg_cst_from_init): Likewise. | |
23877 | (ipa_find_agg_cst_for_param): Also seearch for aggregate values in | |
23878 | static initializers of contants, report back through a new paameter | |
23879 | from_global_constant if that was the case. | |
23880 | (try_make_edge_direct_simple_call): Also pass parameter value to | |
23881 | ipa_find_agg_cst_for_param, check guaranteed_unmodified when | |
23882 | appropriate. | |
23883 | (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified. | |
23884 | (ipa_read_indirect_edge_info): Likewise. | |
23885 | * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration. | |
23886 | (ipa_load_from_parm_agg): Likewise. | |
23887 | ||
23888 | 2016-05-18 Jiong Wang <jiong.wang@arm.com> | |
23889 | ||
23890 | PR rtl-optimization/71150 | |
23891 | * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P | |
23892 | check. | |
23893 | ||
23894 | 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com> | |
23895 | ||
23896 | PR target/70915 | |
23897 | * config/rs6000/constraints.md (wE constraint): New constraint | |
23898 | for a vector constant that can be loaded with XXSPLTIB. | |
23899 | (wM constraint): New constraint for a vector constant of a 1's. | |
23900 | (wS constraint): New constraint for a vector constant that can be | |
23901 | loaded with XXSPLTIB and a vector sign extend instruction. | |
23902 | * config/rs6000/predicates.md (xxspltib_constant_split): New | |
23903 | predicates for wE/wS constraints. | |
23904 | (xxspltib_constant_nosplit): Likewise. | |
23905 | (easy_vector_constant): Add support for constants that can be | |
23906 | loaded via XXSPLTIB. | |
23907 | (all_ones_constant): New predicate for vector constant with all | |
23908 | 1's set. | |
23909 | (splat_input_operand): Add support for ISA 3.0 word splat operations. | |
23910 | * config/rs6000/rs6000.c (xxspltib_constant_p): New function to | |
23911 | return if a constant can be loaded with the ISA 3.0 XXSPLTIB | |
23912 | instruction and possibly with a sign extension. | |
23913 | (output_vec_const_move): Add support for XXSPLTIB. If we are | |
23914 | loading up 0/-1 into Altivec registers, prefer using VSPLTISW | |
23915 | instead of XXLXOR/XXLORC. | |
23916 | (rs6000_expand_vector_init): Add support for ISA 3.0 word splat | |
23917 | operations. | |
23918 | (rs6000_legitimize_reload_address): Likewise. | |
23919 | (rs6000_output_move_128bit): Use output_vec_const_move to emit | |
23920 | constants. | |
23921 | * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and | |
23922 | combine VSX_M and VSX_M2 into one iterator. | |
23923 | (VSX_M2): Likewise. | |
23924 | (VSINT_84): New iterators for loading constants with XXSPLTIB. | |
23925 | (VSINT_842): Likewise. | |
23926 | (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC. | |
23927 | (xxspltib_v16qi): New insns to load up constants with the ISA 3.0 | |
23928 | XXSPLTIB instruction. | |
23929 | (xxspltib_<mode>_nosplit): Likewise. | |
23930 | (xxspltib_<mode>_split): New insn to load up constants with | |
23931 | XXSPLTIB and a sign extend instruction. | |
23932 | (vsx_mov<mode>): Replace single move that handled all vector types | |
23933 | with separate 32-bit and 64-bit moves. Combine the movti_<bit> | |
23934 | moves (when -mvsx-timode is in effect) into the main vector | |
23935 | moves. Eliminate separate moves for <VSr> <VSa>, where the | |
23936 | preferred register class (<VSr>) is listed first, and the | |
23937 | secondary register class (<VSa>) is listed second with a '?' to | |
23938 | discourage use. Prefer loading 0/-1 in any VSX register for ISA | |
23939 | 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so | |
23940 | that if the register was involved in a slow operation, the | |
23941 | clear/set operation does not wait for the slow operation to | |
23942 | finish. Adjust the length attributes for 32-bit mode. Use | |
23943 | rs6000_output_move_128bit and drop the use of the string | |
23944 | instructions for 32-bit movti when -mvsx-timode is in effect. Use | |
23945 | spacing so that the alternatives and attributes don't generate | |
23946 | long lines, and put things in columns, so that it is easier to | |
23947 | match up the operands and attributes with the insn alternatives. | |
23948 | (vsx_mov<mode>_64bit): Likewise. | |
23949 | (vsx_mov<mode>_32bit): Likewise. | |
23950 | (vsx_movti_64bit): Fold movti into normal vector moves. | |
23951 | (vsx_movti_32bit): Likewise. | |
23952 | (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word | |
23953 | splat instructions. | |
23954 | (vsx_splat_v4si_internal): Likewise. | |
23955 | (vsx_splat_v4sf_internal): Likewise. | |
23956 | (vector fusion peepholes): Use VSX_M instead of VSX_M2. | |
23957 | (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign | |
23958 | extend vector elements. | |
23959 | (vsx_sign_extend_hi_<mode>): Likewise. | |
23960 | (vsx_sign_extend_si_v2di): Likewise. | |
23961 | * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add | |
23962 | declaration. | |
23963 | * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS | |
23964 | constraints. Add trailing period to wL documentation. | |
23965 | ||
23966 | 2016-05-18 Richard Sandiford <richard.sandiford@arm.com> | |
23967 | ||
23968 | PR middle-end/71020 | |
23969 | * tree-dfa.h (replace_abnormal_ssa_names): Declare. | |
23970 | * tree-dfa.c (replace_abnormal_ssa_names): New function. | |
23971 | * tree-call-cdce.c: Include tree-dfa.h. | |
23972 | (can_guard_call_p): New function, extracted from... | |
23973 | (can_use_internal_fn): ...here. | |
23974 | (shrink_wrap_one_built_in_call_with_conds): Remove failure path | |
23975 | and return void. | |
23976 | (shrink_wrap_one_built_in_call): Likewise. | |
23977 | (use_internal_fn): Likewise. | |
23978 | (shrink_wrap_conditional_dead_built_in_calls): Update accordingly | |
23979 | and return void. Call replace_abnormal_ssa_names. | |
23980 | (pass_call_cdce::execute): Check can_guard_call_p during the | |
23981 | initial walk. Assume shrink_wrap_conditional_dead_built_in_calls | |
23982 | will always change something. | |
23983 | ||
23984 | 2016-05-18 Martin Jambor <mjambor@suse.cz> | |
23985 | ||
23986 | PR ipa/70646 | |
23987 | * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early | |
23988 | if parameter PARAM_IPA_MAX_AGG_ITEMS is zero. | |
23989 | ||
23990 | 2016-05-18 Martin Jambor <mjambor@suse.cz> | |
23991 | ||
23992 | PR ipa/70646 | |
23993 | * ipa-inline.h (condition): New field size. | |
23994 | * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it | |
23995 | for comaprison and store it into the new condition. | |
23996 | (evaluate_conditions_for_known_args): Use condition size to check | |
23997 | access sizes for all but CHANGED conditions. | |
23998 | (unmodified_parm_1): New parameter size_p, store access size into it. | |
23999 | (unmodified_parm): Likewise. | |
24000 | (unmodified_parm_or_parm_agg_item): Likewise. | |
24001 | (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p. | |
24002 | (set_cond_stmt_execution_predicate): Extract access sizes and store | |
24003 | them to conditions. | |
24004 | (set_switch_stmt_execution_predicate): Likewise. | |
24005 | (will_be_nonconstant_expr_predicate): Likewise. | |
24006 | (will_be_nonconstant_predicate): Likewise. | |
24007 | (inline_read_section): Stream condition size. | |
24008 | (inline_write_summary): Likewise. | |
24009 | ||
24010 | 2016-05-18 Richard Biener <rguenther@suse.de> | |
24011 | ||
24012 | * tree-ssa-loop-im.c (determine_max_movement): Properly add | |
24013 | condition cost to PHI cost instead of total_cost. | |
24014 | ||
24015 | 2016-05-18 Martin Liska <mliska@suse.cz> | |
24016 | ||
24017 | PR fortran/70856 | |
24018 | * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for | |
24019 | merged variables. | |
24020 | ||
24021 | 2016-05-18 Richard Biener <rguenther@suse.de> | |
24022 | ||
24023 | * lto-streamer.h (LTO_major_version): Bump to 6. | |
24024 | ||
24025 | 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org> | |
24026 | ||
24027 | * function.c (make_split_prologue_seq, make_prologue_seq, | |
24028 | make_epilogue_seq): New functions, factored out from... | |
24029 | (thread_prologue_and_epilogue_insns): Here. | |
24030 | ||
24031 | 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org> | |
24032 | ||
24033 | * function.c (rest_of_handle_thread_prologue_and_epilogue): Call | |
24034 | cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead | |
24035 | of before. Add a comment. | |
24036 | ||
24037 | 2016-05-18 Bin Cheng <bin.cheng@arm.com> | |
24038 | ||
24039 | * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant | |
24040 | expression pointer, not pointer to the pointer. | |
24041 | ||
24042 | 2016-05-18 Jakub Jelinek <jakub@redhat.com> | |
24043 | ||
24044 | * config/i386/sse.md (pbroadcast_evex_isa): New mode attr. | |
24045 | (avx2_pbroadcast<mode>): Add another alternative with v instead | |
24046 | of x constraints in it, using <pbroadcast_evex_isa> isa. | |
24047 | (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives. | |
24048 | ||
24049 | * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use | |
24050 | constraint x instead of v in second alternative, add avx512bw | |
24051 | alternative. | |
24052 | ||
24053 | * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use | |
24054 | constraint x instead of v in second alternative, add avx512bw | |
24055 | alternative. | |
24056 | ||
24057 | * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use | |
24058 | constraint x instead of v in second alternative, add avx512bw | |
24059 | alternative. | |
24060 | ||
24061 | * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add | |
24062 | avx512bw alternative. | |
24063 | ||
24064 | 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com> | |
24065 | ||
24066 | * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static | |
24067 | array to 128 chars. | |
24068 | (define_insn "*andnottf3"): Ditto. | |
24069 | (define_insn "*<code><mode>3"/any_logic): Ditto. | |
24070 | (define_insn "*<code>tf3"/any_logic): Ditto. | |
24071 | (define_insn "sse2_storehpd"): Use Yv constraint for scalar | |
24072 | operand to block AVX-512VL insn variant emit when it is not enabled. | |
24073 | ||
24074 | 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com> | |
24075 | ||
24076 | * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv' | |
24077 | constraint fot SF mode. | |
24078 | ||
24079 | 2016-05-18 Petr Murzin <petr.murzin@intel.com> | |
24080 | Kirill Yukhin <kirill.yukhin@intel.com> | |
24081 | ||
24082 | * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand | |
24083 | modifiers. | |
24084 | (define_insn "rsqrt14<mode>"): Ditto. | |
24085 | (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto. | |
24086 | (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto. | |
24087 | (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto. | |
24088 | (define_insn "vec_set_hi_<mode><mask_name>"): Ditto. | |
24089 | (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"): | |
24090 | Ditto. | |
24091 | (define_insn "*avx512f_gatherdi<mode>"): Ditto. | |
24092 | (define_insn "*avx512f_scatterdi<mode>"): Ditto. | |
24093 | * config/i386/i386.c (ix86_print_operand): Expand check for size | |
24094 | override codes for Intel syntax. | |
24095 | ||
24096 | 2016-05-18 Richard Biener <rguenther@suse.de> | |
24097 | ||
24098 | PR tree-optimization/71168 | |
24099 | * tree-loop-distribution.c (distribute_loop): Move *destroy_p | |
24100 | initialization earlier. | |
24101 | ||
24102 | 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com> | |
24103 | ||
24104 | * config/aarch64/aarch64-simd.md | |
24105 | (aarch64_reduc_plus_internal<mode>): Rename to... | |
24106 | (reduc_plus_scal): ...This, and remove previous implementation. | |
24107 | ||
24108 | 2016-05-18 Richard Biener <rguenther@suse.de> | |
24109 | ||
24110 | * passes.def: Put late dse and cd_dce in canonical order. | |
24111 | ||
24112 | 2016-05-17 Jan Hubicka <hubicka@ucw.cz> | |
24113 | ||
24114 | * ipa-inline-transform.c (preserve_function_body_p): Look for | |
24115 | first non-thunk clone. | |
24116 | (save_function_body): Save into first non-thunk. | |
24117 | * lto-cgraph.c (lto_output_edge): When streaming thunk do not look | |
24118 | up call stmt id. | |
24119 | (lto_output_node): Inline thunks don't need body in every | |
24120 | partition. | |
24121 | * lto-streamer-in.c: Do not fixup thunk clones. | |
24122 | * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip | |
24123 | thunks. | |
24124 | * tree-inline.c (copy_bb): Be prepared for target node to be new after | |
24125 | folding suceeds. | |
24126 | ||
24127 | 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org> | |
24128 | ||
24129 | PR middle-end/63586 | |
24130 | * tree-ssa-reassoc.c (transform_add_to_multiply): New. | |
24131 | (reassociate_bb): Call transform_add_to_multiply. | |
24132 | ||
24133 | 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org> | |
24134 | ||
24135 | * config/aarch64/aarch64.c (all_extensions): Removed unused | |
24136 | static variable. | |
24137 | ||
24138 | 2016-05-17 Nathan Sidwell <nathan@acm.org> | |
24139 | ||
24140 | * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New. | |
24141 | (TARGET_FUNCTION_ARG_BOUNDARY): Override. | |
24142 | ||
24143 | 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com> | |
24144 | ||
24145 | PR tree-optimization/54579 | |
24146 | PR middle-end/55299 | |
24147 | * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns. | |
24148 | ||
24149 | 2016-05-17 Marek Polacek <polacek@redhat.com> | |
24150 | ||
24151 | PR ipa/71146 | |
24152 | * tree-inline.c (expand_call_inline): Call | |
24153 | maybe_remove_unused_call_args. | |
24154 | ||
24155 | 2016-05-17 Jim Wilson <jim.wilson@linaro.org> | |
24156 | ||
24157 | * doc/cpp.texi (__GNUC__): Major version changes are no longer rare. | |
24158 | * doc/invoke.texi (-mnan=2008): Change signalling to signaling. | |
24159 | * doc/md.texi (fmin@var{m}3): Likewise. | |
24160 | ||
24161 | 2016-05-17 Marc Glisse <marc.glisse@inria.fr> | |
24162 | ||
24163 | * match.pd (X & C): New transformation. | |
24164 | ||
24165 | 2016-05-17 Marc Glisse <marc.glisse@inria.fr> | |
24166 | ||
24167 | * match.pd (~X & Y): New transformation. | |
24168 | ||
24169 | 2016-05-17 Marc Glisse <marc.glisse@inria.fr> | |
24170 | ||
24171 | * tree-vrp.c (simplify_truth_ops_using_ranges): Set range | |
24172 | information for new SSA_NAME. | |
24173 | (simplify_conversion_using_ranges): Get range through get_range_info | |
24174 | instead of get_value_range. | |
24175 | ||
24176 | 2016-05-17 Jiong Wang <jiong.wang@arm.com> | |
24177 | ||
24178 | * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator. | |
24179 | Remove inline assembly. | |
24180 | (vmvn_s16): Likewise. | |
24181 | (vmvn_s32): Likewise. | |
24182 | (vmvn_u8): Likewise. | |
24183 | (vmvn_u16): Likewise. | |
24184 | (vmvn_u32): Likewise. | |
24185 | (vmvnq_s8): Likewise. | |
24186 | (vmvnq_s16): Likewise. | |
24187 | (vmvnq_s32): Likewise. | |
24188 | (vmvnq_u8): Likewise. | |
24189 | (vmvnq_u16): Likewise. | |
24190 | (vmvnq_u32): Likewise. | |
24191 | (vmvn_p8): Likewise. | |
24192 | (vmvnq_p16): Likewise. | |
24193 | ||
24194 | 2016-05-17 Jiong Wang <jiong.wang@arm.com> | |
24195 | ||
24196 | * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly. | |
24197 | Use builtin. | |
24198 | (vmul_n_s16): Likewise. | |
24199 | (vmul_n_s32): Likewise. | |
24200 | (vmul_n_u16): Likewise. | |
24201 | (vmul_n_u32): Likewise. | |
24202 | (vmulq_n_f32): Likewise. | |
24203 | (vmulq_n_f64): Likewise. | |
24204 | (vmulq_n_s16): Likewise. | |
24205 | (vmulq_n_s32): Likewise. | |
24206 | (vmulq_n_u16): Likewise. | |
24207 | (vmulq_n_u32): Likewise. | |
24208 | ||
24209 | 2016-05-17 Jiong Wang <jiong.wang@arm.com> | |
24210 | ||
24211 | * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend | |
24212 | to all supported modes. Rename to "*aarch64_mul3_elt_from_dup". | |
24213 | ||
24214 | 2016-05-17 Jiong Wang <jiong.wang@arm.com> | |
24215 | ||
24216 | * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename | |
24217 | to *aarch64_fma4_elt_from_dup<mode>. | |
24218 | (*aarch64_fnma4_elt_to_128df): Rename to | |
24219 | *aarch64_fnma4_elt_from_dup<mode>. | |
24220 | * config/aarch64/arm_neon.h (vfma_n_f64): New. | |
24221 | (vfms_n_f32): Likewise. | |
24222 | (vfms_n_f64): Likewise. | |
24223 | (vfmsq_n_f32): Likewise. | |
24224 | (vfmsq_n_f64): Likewise. | |
24225 | ||
24226 | 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com> | |
24227 | ||
24228 | * wide-int.h: Change fixed_wide_int_storage from class to struct. | |
24229 | ||
24230 | 2016-05-17 Richard Biener <rguenther@suse.de> | |
24231 | ||
24232 | PR tree-optimization/71132 | |
24233 | * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop. | |
24234 | Only add control dependences for blocks in the loop. | |
24235 | (build_rdg): Adjust. | |
24236 | (generate_code_for_partition): Return whether loop should | |
24237 | be destroyed and delay that. | |
24238 | (distribute_loop): Likewise. | |
24239 | (pass_loop_distribution::execute): Record loops to be destroyed | |
24240 | and perform delayed destroying of loops. | |
24241 | ||
24242 | 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
24243 | ||
24244 | PR target/70809 | |
24245 | * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete. | |
24246 | ||
24247 | 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com> | |
24248 | ||
24249 | * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete. | |
24250 | ||
24251 | 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com> | |
24252 | ||
24253 | PR target/71114 | |
24254 | * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix | |
24255 | insertion point for instructions generated by validize_mem. | |
24256 | ||
24257 | 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com> | |
24258 | ||
24259 | * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition | |
24260 | in brackets. | |
24261 | ||
24262 | 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com> | |
24263 | ||
24264 | * config/aarch64/aarch64.c | |
24265 | (aarch64_output_simd_mov_immediate): Make "buf_size" a variable | |
24266 | rather than a macro. | |
24267 | ||
24268 | 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com> | |
24269 | ||
24270 | * doc/invoke.texi (AArch64 Options): Various updates. | |
24271 | ||
24272 | 2016-05-16 Jan Hubicka <hubicka@ucw.cz> | |
24273 | ||
24274 | * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig | |
24275 | into instrumentation thunks. | |
24276 | * cif-code.def (CIF_CHKP): New. | |
24277 | ||
24278 | 2016-05-16 Uros Bizjak <ubizjak@gmail.com> | |
24279 | ||
24280 | * config/i386/xopintrin.h: Correct "unsinged" typo in the comments. | |
24281 | ||
24282 | 2016-05-16 Martin Jambor <mjambor@suse.cz> | |
24283 | ||
24284 | * hsa-gen.c (fillup_for_decl): Increase alignment to natural one. | |
24285 | (get_symbol_for_decl): Sorry if a global symbol in under-aligned. | |
24286 | ||
24287 | 2016-05-16 Marek Polacek <polacek@redhat.com> | |
24288 | ||
24289 | * gimple.c (maybe_remove_unused_call_args): Fix typos in the | |
24290 | commentary. | |
24291 | ||
24292 | 2016-05-16 Martin Jambor <mjambor@suse.cz> | |
24293 | ||
24294 | PR hsa/70857 | |
24295 | * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of | |
24296 | the outlined kernel function. | |
24297 | ||
24298 | 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com> | |
24299 | ||
24300 | * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa. | |
24301 | (ISA_HAS_DLSA): Ditto. | |
24302 | ||
24303 | 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com> | |
24304 | ||
24305 | * config/mips/m5100.md (m51_int_load): Update the latency to 2. | |
24306 | ||
24307 | 2016-05-16 Nathan Sidwell <nathan@acm.org> | |
24308 | ||
24309 | * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert. | |
24310 | (nvptx_name_replacement): Restore. Add comment. | |
24311 | (write_fn_proto, write_fn_proto_from_insn, | |
24312 | nvptx_output_call_insn): Restore | |
24313 | (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete. | |
24314 | ||
24315 | 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com> | |
24316 | ||
24317 | * config/aarch64/aarch64.md | |
24318 | (add<mode>3_compareC_cconly_imm): Remove use of %w. | |
24319 | (add<mode>3_compareC_imm): Likewise. | |
24320 | (<optab>si3_uxtw): Split into register and immediate variants. | |
24321 | (andsi3_compare0_uxtw): Likewise. | |
24322 | (and<mode>3_compare0): Likewise. | |
24323 | (and<mode>3nr_compare0): Likewise. | |
24324 | (stack_protect_test_<mode>): Don't use %x for memory operands. | |
24325 | ||
24326 | 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com> | |
24327 | ||
24328 | * config/mips/mips-cpus.def (p5600): Add multi-line brackets. | |
24329 | ||
24330 | 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com> | |
24331 | ||
24332 | * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3): | |
24333 | Split integer shifts into shift_reg and bfm. | |
24334 | (aarch64_lshr_sisd_or_int_<mode>3): Likewise. | |
24335 | (aarch64_ashr_sisd_or_int_<mode>3): Likewise. | |
24336 | (ror<mode>3_insn): Likewise. | |
24337 | (<optab>si3_insn_uxtw): Likewise. | |
24338 | (<optab><mode>3_insn): Change to rotate_imm. | |
24339 | (extr<mode>5_insn_alt): Likewise. | |
24340 | (extrsi5_insn_uxtw): Likewise. | |
24341 | (extrsi5_insn_uxtw_alt): Likewise. | |
24342 | ||
24343 | 2016-05-16 Matthew Wahab <matthew.wahab@arm.com> | |
24344 | ||
24345 | * doc/tm.texi: Regenerate. | |
24346 | * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove. | |
24347 | (TARGET_INVALID_RETURN_TYPE): Remove. | |
24348 | * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and | |
24349 | TARGET_INVALID_RETURN_TYPE. | |
24350 | * target.def (invalid_parameter_type): Remove. | |
24351 | (invalid_return_type): Remove. | |
24352 | ||
24353 | 2016-05-16 Jan Hubicka <hubicka@ucw.cz> | |
24354 | ||
24355 | * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic | |
24356 | on estimating thunk bodies; do not set inline_failed to CIF_THUNK for | |
24357 | calls from thunk. | |
24358 | * ipa-inline-transform.c (inline_call): When inlining into thunk produce | |
24359 | gimple body. | |
24360 | (preserve_function_body_p): No need to preserve function body | |
24361 | * cif-codes.def (CIF_THUNK): Remove. | |
24362 | * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable. | |
24363 | ||
24364 | 2016-05-16 Jan Hubicka <hubicka@ucw.cz> | |
24365 | ||
24366 | * tree-inline.c (expand_call_inline): recurse after inlining thunk. | |
24367 | ||
24368 | 2016-05-16 Jan Hubicka <hubicka@ucw.cz> | |
24369 | ||
24370 | * tree.c (free_lang_data_in_decl): Also set target/optimization flags | |
24371 | for thunks. | |
24372 | ||
24373 | 2016-05-16 Jan Hubicka <hubicka@ucw.cz> | |
24374 | ||
24375 | * ipa-inline.c (report_inline_failed_reason): Look into thunks, too | |
24376 | (inline_small_functions): Do not look for function symbol when | |
24377 | resetting caches. | |
24378 | ||
24379 | 2016-05-16 Jan Hubicka <hubicka@ucw.cz> | |
24380 | ||
24381 | * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling | |
24382 | of inline thunks | |
24383 | ||
24384 | 2016-05-16 Matthew Wahab <matthew.wahab@arm.com> | |
24385 | Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
24386 | Jiong Wang <jiong.wang@arm.com> | |
24387 | ||
24388 | * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro | |
24389 | for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE. | |
24390 | Define __ARM_FP16_ARGS when appropriate. | |
24391 | * config/arm/arm.c (arm_invalid_parameter_type): Remove | |
24392 | declaration. | |
24393 | (arm_invalid_return_type): Likewise. | |
24394 | (TARGET_INVALID_PARAMETER_TYPE): Remove. | |
24395 | (TARGET_INVALID_RETURN_TYPE): Remove. | |
24396 | (aapcs_vfp_sub_candidate): Allow HFmode. | |
24397 | (aapcs_vfp_allocate): Add comment. Support HFmode. | |
24398 | (aapcs_vfp_allocate_return_reg): Likewise. | |
24399 | (struct aapcs_cp_arg_layout): Slightly reword comments for | |
24400 | is_return_candidate and allocate_return_reg. | |
24401 | (output_mov_vfp): Update assert. | |
24402 | (arm_hard_regno_mode_ok): Remove comment, update HF-mode | |
24403 | condition. | |
24404 | (arm_invalid_parameter_type): Remove. | |
24405 | (amr_invalid_return_type): Remove. | |
24406 | * config/arm/arm.h (TARGET_NEON_FP16): Fix definition. | |
24407 | * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP. | |
24408 | * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP. | |
24409 | ||
24410 | 2016-05-16 Matthew Wahab <matthew.wahab@arm.com> | |
24411 | ||
24412 | * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove. | |
24413 | * config/aarch64/arch64-protos.h | |
24414 | (aarch64_legitimize_reload_address): Remove. | |
24415 | * config/aarch64/aarch64.c (aarch64_legitimize_reload_address): | |
24416 | Remove. | |
24417 | ||
24418 | 2016-05-16 Eric Botcazou <ebotcazou@adacore.com> | |
24419 | ||
24420 | * configure.ac: Add ACX_NONCANONICAL_HOST. | |
24421 | * configure: Regenerate. | |
24422 | * Makefile.in: Set host_noncanonical. | |
24423 | ||
24424 | 2016-05-14 Uros Bizjak <ubizjak@gmail.com> | |
24425 | ||
24426 | PR target/71097 | |
24427 | * config/i386/i386.md (*movtf_internal): Before register allocation, | |
24428 | do not allow FP constants for CM_MEDIUM memory model, allow only | |
24429 | standard FP constants for CM_LARGE and CM_LARGE_PIC models. | |
24430 | (*movxf_internal): Ditto. | |
24431 | (*movdf_internal): Ditto. | |
24432 | (*movsf_internal): Ditto. | |
24433 | ||
24434 | 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org> | |
24435 | ||
24436 | PR rtl-optimization/67483 | |
24437 | * combine.c (make_compound_operation): Don't call extract_left_shift | |
24438 | with negative shift amounts. | |
24439 | ||
24440 | 2016-05-13 Jakub Jelinek <jakub@redhat.com> | |
24441 | ||
24442 | PR bootstrap/71071 | |
24443 | * fold-const.c (fold_checksum_tree): Allow modification | |
24444 | of TYPE_ALIAS_SET during folding. | |
24445 | ||
24446 | * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue, | |
24447 | ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro. | |
24448 | (ix86_split_to_parts): Likewise. Fix up formatting. | |
24449 | ||
24450 | 2016-05-13 H.J. Lu <hongjiu.lu@intel.com> | |
24451 | ||
24452 | * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to | |
24453 | unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in | |
24454 | printf format. | |
24455 | ||
24456 | 2016-05-13 Nathan Sidwell <nathan@acm.org> | |
24457 | ||
24458 | * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New. | |
24459 | (nvptx_name_replacement): Delete. | |
24460 | (write_fn_proto, write_fn_proto_from_insn, | |
24461 | nvptx_output_call_insn): Remove nvptx_name_replacement call. | |
24462 | (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override. | |
24463 | * langhooks.c (add_builtin_funcction_common): Call | |
24464 | targetm.mangle_decl_assembler_name. | |
24465 | ||
24466 | * config/nvptx/nvptx.c (write_fn_proto): Handle | |
24467 | BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity. | |
24468 | ||
24469 | 2016-05-13 Martin Liska <mliska@suse.cz> | |
24470 | ||
24471 | * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC | |
24472 | and PRIu64 in printf format. | |
24473 | ||
24474 | 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
24475 | ||
24476 | * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in | |
24477 | comment. | |
24478 | ||
24479 | 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
24480 | ||
24481 | * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): | |
24482 | Change --param max-completely-peeled-times to | |
24483 | --param max-completely-peel-times in dump file printing. | |
24484 | ||
24485 | 2016-05-13 Richard Biener <rguenther@suse.de> | |
24486 | ||
24487 | PR tree-optimization/42587 | |
24488 | * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF. | |
24489 | (find_bswap_or_nop_1): Likewise. | |
24490 | (bswap_replace): Likewise. | |
24491 | ||
24492 | 2016-05-13 Martin Liska <mliska@suse.cz> | |
24493 | ||
24494 | * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): | |
24495 | Initialize a variable with default value. | |
24496 | ||
24497 | 2016-05-13 Martin Liska <mliska@suse.cz> | |
24498 | ||
24499 | * doc/invoke.texi: Enhance explanation of error recovery | |
24500 | of sanitizers. | |
24501 | ||
24502 | 2016-05-13 Martin Liska <mliska@suse.cz> | |
24503 | ||
24504 | * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style. | |
24505 | (struct cost_pair): Change inv_expr_id (int) to inv_expr | |
24506 | (iv_inv_expr_ent *). | |
24507 | (struct iv_inv_expr_ent): Comment struct fields. | |
24508 | (sort_iv_inv_expr_ent): New function. | |
24509 | (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id. | |
24510 | (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with | |
24511 | a hash_map between iv_inv_expr_ent and number of usages. | |
24512 | (niter_for_exit): Fix coding style. | |
24513 | (tree_ssa_iv_optimize_init): Use renamed variable. | |
24514 | (determine_base_object): Fix coding style. | |
24515 | (alloc_iv): Likewise. | |
24516 | (find_interesting_uses_outside): Likewise. | |
24517 | (add_candidate_1): Likewise. | |
24518 | (add_standard_iv_candidates): Likewise. | |
24519 | (set_group_iv_cost): Replace inv_expr_id with inv_expr. | |
24520 | (prepare_decl_rtl): Fix coding style. | |
24521 | (get_address_cost): Likewise. | |
24522 | (get_shiftadd_cost): Likewise. | |
24523 | (force_expr_to_var_cost): Likewise. | |
24524 | (compare_aff_trees): Likewise. | |
24525 | (get_expr_id): Restructure the function. | |
24526 | (get_loop_invariant_expr_id): Renamed to | |
24527 | get_loop_invariant_expr. | |
24528 | (get_computation_cost_at): Replace usage of inv_expr_id with | |
24529 | inv_expr. | |
24530 | (get_computation_cost): Likewise. | |
24531 | (determine_group_iv_cost_generic): Likewise. | |
24532 | (determine_group_iv_cost_address): Likewise. | |
24533 | (iv_period): Fix coding style. | |
24534 | (iv_elimination_compare_lt): Likewise. | |
24535 | (may_eliminate_iv): Likewise. | |
24536 | (determine_group_iv_cost_cond): Replace usage of inv_expr_id with | |
24537 | inv_expr. | |
24538 | (determine_group_iv_costs): Dump invariant expressions. | |
24539 | (iv_ca_recount_cost): Use the newly added hash_map. | |
24540 | (iv_ca_set_remove_invariants): Fix coding style. | |
24541 | (iv_ca_set_add_invariants): Fix coding style. | |
24542 | (iv_ca_set_no_cp): Utilize the newly added hash_map for used | |
24543 | invariants. | |
24544 | (iv_ca_set_cp): Likewise. | |
24545 | (iv_ca_new): Initialize the newly added hash_map and remove | |
24546 | initialization of fields. | |
24547 | (iv_ca_free): Delete the hash_map. | |
24548 | (iv_ca_dump): Dump invariant expressions. | |
24549 | (iv_ca_extend): Fix coding style. | |
24550 | (try_add_cand_for): Likewise. | |
24551 | (create_new_ivs): Dump information about # of avg iterations and | |
24552 | # of used invariant expressions. | |
24553 | (rewrite_use_compare): Fix coding style. | |
24554 | (free_loop_data): Set default value for max_inv_expr_id. | |
24555 | ||
24556 | 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com> | |
24557 | ||
24558 | * cse.c (rest_of_handle_cse): Use cleanup_cfg | |
24559 | returned value cse_cfg_altered computation. | |
24560 | (rest_of_handle_cse2): Likewise. | |
24561 | (rest_of_handle_cse_after_global_opts): Likewise. | |
24562 | ||
24563 | 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
24564 | ||
24565 | PR target/53440 | |
24566 | * config/arm/arm.c (arm32_output_mi_thunk): New. | |
24567 | (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework | |
24568 | to split Thumb1 vs TARGET_32BIT functionality. | |
24569 | (arm_thumb1_mi_thunk): New. | |
24570 | ||
24571 | 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
24572 | ||
24573 | * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set | |
24574 | to true. | |
24575 | ||
24576 | 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
24577 | ||
24578 | PR target/71080 | |
24579 | * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp. | |
24580 | ||
24581 | 2016-05-13 Eric Botcazou <ebotcazou@adacore.com> | |
24582 | ||
24583 | * builtins.c (expand_builtin_memcmp): Do not emit the call here. | |
24584 | (expand_builtin_trap): Emit a regular call. | |
24585 | (set_builtin_user_assembler_name): Remove obsolete cases. | |
24586 | * dse.c (scan_insn): Adjust. | |
24587 | * except.c: Include calls.h. | |
24588 | (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined, | |
24589 | emit a regular call to setjmp. | |
24590 | * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall. | |
24591 | (block_move_libcall_safe_for_call_parm): Use memcpy builtin. | |
24592 | (emit_block_move_via_libcall): Delete. | |
24593 | (block_move_fn): Delete. | |
24594 | (init_block_move_fn): Likewise. | |
24595 | (emit_block_move_libcall_fn): Likewise. | |
24596 | (emit_block_op_via_libcall): New function. | |
24597 | (set_storage_via_libcall): Tidy up and use memset builtin. | |
24598 | (block_clear_fn): Delete. | |
24599 | (init_block_clear_fn): Likewise. | |
24600 | (clear_storage_libcall_fn): Likewise. | |
24601 | (expand_assignment): Call emit_block_move_via_libcall. | |
24602 | Do not include gt-expr.h. | |
24603 | * expr.h (emit_block_op_via_libcall): Declare. | |
24604 | (emit_block_copy_via_libcall): New inline function. | |
24605 | (emit_block_move_via_libcall): Likewise. | |
24606 | (emit_block_comp_via_libcall): Likewise. | |
24607 | (block_clear_fn): Delete. | |
24608 | (init_block_move_fn): Likewise. | |
24609 | (init_block_clear_fn): Likewise. | |
24610 | (emit_block_move_via_libcall): Likewise. | |
24611 | (set_storage_via_libcall): Add default parameter value. | |
24612 | * libfuncs.h (enum libfunc_index): Remove obsolete values. | |
24613 | (abort_libfunc): Delete. | |
24614 | (memcpy_libfunc): Likewise. | |
24615 | (memmove_libfunc): Likewise. | |
24616 | (memcmp_libfunc): Likewise. | |
24617 | (memset_libfunc): Likewise. | |
24618 | (setbits_libfunc): Likewise. | |
24619 | (setjmp_libfunc): Likewise. | |
24620 | (longjmp_libfunc): Likewise. | |
24621 | (profile_function_entry_libfunc): Likewise. | |
24622 | (profile_function_exit_libfunc): Likewise. | |
24623 | (gcov_flush_libfunc): Likewise. | |
24624 | * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL | |
24625 | and DECL_VISIBILITY on the declaration. | |
24626 | (init_optabs): Do not initialize obsolete libfuncs. | |
24627 | * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall. | |
24628 | * tree-core.h (ECF_RET1): Define. | |
24629 | (ECF_TM_PURE): Adjust. | |
24630 | (ECF_TM_BUILTIN): Likewise. | |
24631 | * tree.c (set_call_expr_flags): Deal with ECF_RET1. | |
24632 | (build_common_builtin_nodes): Initialize abort builtin. | |
24633 | Add ECF_RET1 on memcpy, memmove and memset builtins. | |
24634 | Pass final flags for alloca and alloca_with_align builtins. | |
24635 | * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize | |
24636 | obsolete builtins. | |
24637 | * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise. | |
24638 | * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to | |
24639 | set_storage_via_libcall and call emit_block_copy_via_libcall. | |
24640 | ||
24641 | 2016-05-12 Uros Bizjak <ubizjak@gmail.com> | |
24642 | ||
24643 | * config/i386/i386.md (*call_got_x32): Change operand 0 to | |
24644 | DImode before it is passed to ix86_output_call_operand. | |
24645 | (*call_value_got_x32): Ditto for operand 1. | |
24646 | ||
24647 | 2016-05-12 Jiong Wang <jiong.wang@arm.com> | |
24648 | ||
24649 | PR rtl-optimization/70904 | |
24650 | * lra-constraint.c (process_addr_reg): Relax the restriction on subreg | |
24651 | reload for wide mode. | |
24652 | ||
24653 | 2016-05-12 Marek Polacek <polacek@redhat.com> | |
24654 | ||
24655 | PR c/70756 | |
24656 | * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration. | |
24657 | * langhooks.c (lhd_incomplete_type_error): Add location parameter. | |
24658 | * langhooks.h (incomplete_type_error): Likewise. | |
24659 | * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location | |
24660 | parameter, pass it down to incomplete_type_error. | |
24661 | * tree.h (size_in_bytes): New inline overload. | |
24662 | (size_in_bytes_loc): Renamed from size_in_bytes. | |
24663 | ||
24664 | 2016-05-12 Richard Biener <rguenther@suse.de> | |
24665 | ||
24666 | PR tree-optimization/71059 | |
24667 | * tree-ssa-pre.c (phi_translate_1): Fully fold translated | |
24668 | nary before looking up or entering the expression into the VN | |
24669 | hashes. | |
24670 | * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo. | |
24671 | Make sure to re-use NARYs without result as inserted by | |
24672 | phi-translation. | |
24673 | ||
24674 | 2016-05-12 Richard Biener <rguenther@suse.de> | |
24675 | ||
24676 | PR tree-optimization/71062 | |
24677 | * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict | |
24678 | field. | |
24679 | * tree-ssa-structalias.c (set_uids_in_ptset): Set | |
24680 | vars_contains_restrict if the var is a restrict tag. | |
24681 | * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict | |
24682 | do not disambiguate pointers against it. | |
24683 | (dump_points_to_solution): Re-structure and adjust for new | |
24684 | vars_contains_restrict flag. | |
24685 | * gimple-pretty-print.c (pp_points_to_solution): Likewise. | |
24686 | ||
24687 | 2016-05-12 Martin Liska <mliska@suse.cz> | |
24688 | ||
24689 | * doc/invoke.texi: Explain connection between | |
24690 | -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1". | |
24691 | ||
24692 | 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com> | |
24693 | ||
24694 | PR tree-optimization/71006 | |
24695 | * tree-vect-loop.c (vect_determine_vectorization_factor): Don't | |
24696 | consider COND_EXPR as a mask producer. | |
24697 | ||
24698 | 2016-05-12 Marek Polacek <polacek@redhat.com> | |
24699 | ||
24700 | PR driver/71063 | |
24701 | * opts.c (common_handle_option): Detect missing argument for --help^. | |
24702 | ||
24703 | 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
24704 | ||
24705 | PR target/70830 | |
24706 | * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction | |
24707 | when popping the PC and within an interrupt handler routine. | |
24708 | Add missing tab to output of "ldmfd". | |
24709 | (output_return_instruction): Output LDMFD with SP update rather | |
24710 | than POP when returning from interrupt handler. | |
24711 | ||
24712 | 2016-05-12 Jakub Jelinek <jakub@redhat.com> | |
24713 | ||
24714 | * config/i386/i386.md (isa): Add x64_avx512dq, enable if | |
24715 | TARGET_64BIT && TARGET_AVX512DQ. | |
24716 | * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives. | |
24717 | (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative. | |
24718 | (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext, | |
24719 | *vec_extractv2di_0_sse): Use v constraint instead of x constraint. | |
24720 | (*vec_extractv4si): Add avx512dq and avx512bw alternatives. | |
24721 | (*vec_extractv4si_zext): Add avx512dq alternative. | |
24722 | (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives, | |
24723 | use v instead of x constraint in other alternatives where possible. | |
24724 | ||
24725 | * config/i386/sse.md (sse2_loadld): Use v instead of x | |
24726 | constraint in alternatives 0,1,4. | |
24727 | ||
24728 | * config/i386/sse.md (pinsr_evex_isa): New mode attr. | |
24729 | (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with | |
24730 | v constraints instead of x and <pinsr_evex_isa> isa attribute. | |
24731 | ||
24732 | PR target/71019 | |
24733 | * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>, | |
24734 | <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn | |
24735 | is not emitted unless TARGET_AVX512BW. | |
24736 | (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>): | |
24737 | Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x" | |
24738 | for the result operand. | |
24739 | ||
24740 | * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v | |
24741 | constraint instead of x in avx alternatives. Use maybe_evex instead | |
24742 | of vex prefix. | |
24743 | ||
24744 | * config/i386/constraints.md (Yv): New constraint. | |
24745 | * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow | |
24746 | TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL. | |
24747 | * config/i386/i386.md (avx512fvecmode): New mode attr. | |
24748 | (*pushtf): Use v constraint instead of x. | |
24749 | (*movtf_internal): Likewise. For TARGET_AVX512VL and | |
24750 | xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions. | |
24751 | (*absneg<mode>2): Use Yv constraint instead of x constraint. | |
24752 | (*absnegtf2_sse): Likewise. | |
24753 | (copysign<mode>3_const, copysign<mode>3_var): Likewise. | |
24754 | * config/i386/sse.md (*andnot<mode>3): Add avx512vl and | |
24755 | avx512f alternatives. | |
24756 | (*andnottf3, *<code><mode>3, *<code>tf3): Likewise. | |
24757 | ||
24758 | 2016-05-12 Richard Biener <rguenther@suse.de> | |
24759 | ||
24760 | PR tree-optimization/71060 | |
24761 | * tree-data-ref.c (initialize_data_dependence_relation): Do not | |
24762 | require exact match of DR_BASE_OBJECT but only matching address and | |
24763 | type. | |
24764 | ||
24765 | 2016-05-12 Richard Biener <rguenther@suse.de> | |
24766 | ||
24767 | PR tree-optimization/70986 | |
24768 | * cfganal.c: Include cfgloop.h. | |
24769 | (dfs_find_deadend): Prefer to take edges exiting loops. | |
24770 | ||
24771 | 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
24772 | ||
24773 | * gcc.target/powerpc/pr70963.c: Require at least power8 at both | |
24774 | compile and run time. | |
24775 | ||
24776 | 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com> | |
24777 | ||
24778 | PR c/43651 | |
24779 | * doc/invoke.texi (Wduplicate-decl-specifier): Document new option. | |
24780 | ||
24781 | 2016-05-11 Uros Bizjak <ubizjak@gmail.com> | |
24782 | ||
24783 | * config/i386/i386.c (legitimize_pic_address): Use | |
24784 | copy_to_suggested_reg instead of gen_movsi. | |
24785 | ||
24786 | 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com> | |
24787 | ||
24788 | * config/rs6000/predicates.md (quad_memory_operand): Move most of | |
24789 | the code into quad_address_p and call it to share code with | |
24790 | vsx_quad_dform_memory_operand. | |
24791 | (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector | |
24792 | d-form support. | |
24793 | * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask | |
24794 | bit instead of being a separate word. Split -mpower9-dform into | |
24795 | two switches, -mpower9-dform-scalar and -mpower9-dform-vector. | |
24796 | * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask | |
24797 | for the register class supporting 128-bit quad word memory offsets. | |
24798 | (mode_supports_vsx_dform_quad): Helper function to return if the | |
24799 | register class uses quad word memory offsets. | |
24800 | (rs6000_debug_addr_mask): Add support for quad word memory offsets. | |
24801 | (rs6000_debug_reg_global): Always print if we are using LRA or not. | |
24802 | (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form | |
24803 | instructions are enabled, set up the appropriate addr_masks for | |
24804 | 128-bit types. | |
24805 | (rs6000_init_hard_regno_mode_ok): wb constraint is now based on | |
24806 | -mpower9-dform-scalar, instead of -mpower9-dform. | |
24807 | (rs6000_option_override_internal): Split -mpower9-dform into two | |
24808 | switches, -mpower9-dform-scalar and -mpower9-dform-vector. The | |
24809 | -mpower9-dform switch sets or clears both. If we are not using | |
24810 | the LRA register allocator, do not enable -mpower9-dform-vector by | |
24811 | default. If we are using LRA, enable -mpower9-dform-vector and | |
24812 | -mvsx-timode if it is appropriate. Issue a warning if either | |
24813 | -mpower9-dform-vector or -mvsx-timode are explicitly used without | |
24814 | enabling LRA. | |
24815 | (quad_address_offset_p): New helper function to return if the | |
24816 | offset is legal for quad word memory instructions. | |
24817 | (quad_address_p): New function to determin if GPR or vector | |
24818 | register quad word memory addresses are legal. | |
24819 | (mem_operand_gpr): Validate quad word address offsets. | |
24820 | (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector | |
24821 | d-form (register + offset) instructions. | |
24822 | (offsettable_ok_by_alignment): Likewise. | |
24823 | (rs6000_legitimate_offset_address_p): Likewise. | |
24824 | (legitimate_lo_sum_address_p): Likewise. | |
24825 | (rs6000_legitimize_address): Likewise. | |
24826 | (rs6000_legitimize_reload_address): Add more debug statements for | |
24827 | -mdebug=addr. | |
24828 | (rs6000_legitimate_address_p): Add support for ISA 3.0 vector | |
24829 | d-form instructions. | |
24830 | (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector | |
24831 | d-form instructions. Distinguish different cases in debug | |
24832 | output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector | |
24833 | d-form instructions. | |
24834 | (rs6000_preferred_reload_class): Likewise. | |
24835 | (rs6000_output_move_128bit): Add support for ISA 3.0 d-form | |
24836 | instructions. If ISA 3.0 is available, generate lxvx/stxvx instead | |
24837 | of the ISA 2.06 indexed memory instructions. | |
24838 | (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions, | |
24839 | use them to save/restore the saved vector registers instead of | |
24840 | using Altivec instructions. | |
24841 | (rs6000_emit_epilogue): Likewise. | |
24842 | (rs6000_lra_p): Use TARGET_LRA instead of the old option word. | |
24843 | (rs6000_opt_masks): Split -mpower9-dform into | |
24844 | -mpower9-dform-scalar and -mpower9-dform-vector. | |
24845 | (rs6000_print_options_internal): Print -mno-<switch> if <switch> | |
24846 | was not selected. | |
24847 | * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit | |
24848 | ISA 3.0 vector indexed memory instructions, and fold the code into | |
24849 | the normal mov<mode> patterns. | |
24850 | (p9_vecstore_<mode>): Likewise. | |
24851 | (vsx_mov<mode>): Add support for ISA 3.0 vector d-form | |
24852 | instructions. | |
24853 | (vsx_movti_64bit): Likewise. | |
24854 | (vsx_movti_32bit): Likewise. | |
24855 | * config/rs6000/constraints.md (wO constraint): New constraint for | |
24856 | ISA 3.0 vector d-form support. | |
24857 | * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use | |
24858 | -mpower9-dform-scalar instead of -mpower9-dform. Add note not to | |
24859 | include -mpower9-dform-vector until we switch over to LRA. | |
24860 | (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two. | |
24861 | switches, -mpower9-dform-scalar and -mpower9-dform-vector. | |
24862 | * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration. | |
24863 | * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation | |
24864 | for -mpower9-dform and -mlra. | |
24865 | * doc/md.texi (wO constraint): Document wO constraint. | |
24866 | ||
24867 | 2016-05-11 Alexander Monakov <amonakov@ispras.ru> | |
24868 | ||
24869 | * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of | |
24870 | 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'. | |
24871 | * genautomata.c (output_internal_insn_code_evaluation): Simplify. | |
24872 | Move handling of non-insn arguments inline into the sole user: | |
24873 | (output_trans_func): ...here. | |
24874 | (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *' | |
24875 | in emitted function prototype. | |
24876 | (output_internal_insn_latency_func): Ditto. Simplify. | |
24877 | (output_internal_maximal_insn_latency_func): Ditto. Delete | |
24878 | always-unused argument. | |
24879 | (output_insn_latency_func): Ditto. | |
24880 | (output_maximal_insn_latency_func): Ditto. | |
24881 | ||
24882 | 2016-05-11 Richard Biener <rguenther@suse.de> | |
24883 | ||
24884 | PR tree-optimization/71055 | |
24885 | * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting | |
24886 | sth with precision not equal to access size verify we don't chop | |
24887 | off bits. | |
24888 | ||
24889 | 2016-05-11 Richard Biener <rguenther@suse.de> | |
24890 | ||
24891 | PR debug/71057 | |
24892 | * dwarf2out.c (retry_incomplete_types): Set early_dwarf. | |
24893 | (dwarf2out_finish): Move retry_incomplete_types call ... | |
24894 | (dwarf2out_early_finish): ... here. | |
24895 | ||
24896 | 2016-05-11 Richard Biener <rguenther@suse.de> | |
24897 | ||
24898 | PR middle-end/71002 | |
24899 | * alias.c (reference_alias_ptr_type): Preserve alias-set zero | |
24900 | if the langhook insists on it. | |
24901 | * fold-const.c (make_bit_field_ref): Add arg for the original | |
24902 | reference and preserve its alias-set. | |
24903 | (decode_field_reference): Take exp by reference and adjust it | |
24904 | to the original memory reference. | |
24905 | (optimize_bit_field_compare): Adjust callers. | |
24906 | (fold_truth_andor_1): Likewise. | |
24907 | * gimplify.c (gimplify_expr): Adjust in-SSA form test. | |
24908 | ||
24909 | 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com> | |
24910 | ||
24911 | PR middle-end/70807 | |
24912 | * cfgrtl.h (delete_insn_and_edges): Now return bool. | |
24913 | * cfgrtl.c (delete_insn_and_edges): Likewise. | |
24914 | * config/i386/i386.c (convert_scalars_to_vector): Remove | |
24915 | redundant code. | |
24916 | * cse.c (cse_insn): Compute cse_cfg_altered. | |
24917 | (delete_trivially_dead_insns): Likewise. | |
24918 | (cse_cc_succs): Likewise. | |
24919 | (rest_of_handle_cse): Free dominance info if required. | |
24920 | (rest_of_handle_cse2): Likewise. | |
24921 | (rest_of_handle_cse_after_global_opts): Likewise. | |
24922 | ||
24923 | 2016-05-11 Alan Modra <amodra@gmail.com> | |
24924 | ||
24925 | * config/rs6000/rs6000.c (is_complex_IBM_long_double, | |
24926 | abi_v4_pass_in_fpr): New functions. | |
24927 | (rs6000_function_arg_boundary): Exclude complex IBM long double | |
24928 | from 64-bit alignment when ABI_V4. | |
24929 | (rs6000_function_arg, rs6000_function_arg_advance_1, | |
24930 | rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr. | |
24931 | ||
24932 | 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org> | |
24933 | ||
24934 | PR rtl-optimization/71028 | |
24935 | * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional | |
24936 | jump with just a return in the fallthrough block if the branch | |
24937 | block contains just a return as well. | |
24938 | ||
24939 | 2016-05-10 Marc Glisse <marc.glisse@inria.fr> | |
24940 | ||
24941 | * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with... | |
24942 | * match.pd ((X & Y) ^ Y): ... this. | |
24943 | ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y) | |
24944 | | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations. | |
24945 | ||
24946 | 2016-05-10 David Malcolm <dmalcolm@redhat.com> | |
24947 | ||
24948 | * read-md.c (require_char_ws): New function. | |
24949 | (read_string): Simplify using require_char_ws. | |
24950 | (handle_constants): Likewise. | |
24951 | (handle_enum): Likewise. | |
24952 | (handle_file): Likewise. | |
24953 | * read-md.h (require_char_ws): New declaration. | |
24954 | * read-rtl.c (read_conditions): Simplify using require_char_ws. | |
24955 | (read_mapping): Likewise. | |
24956 | (read_rtx_code): Likewise. | |
24957 | (read_nested_rtx): Likewise. | |
24958 | ||
24959 | 2016-05-10 James Norris <jnorris@codesourcery.com> | |
24960 | ||
24961 | * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o | |
24962 | if offloading is enabled and -fopenacc or -fopenmp is specified. | |
24963 | (CRTOFFLOADEND): Likewise. | |
24964 | (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN. | |
24965 | (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND. | |
24966 | ||
24967 | 2016-05-10 Uros Bizjak <ubizjak@gmail.com> | |
24968 | ||
24969 | * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit | |
24970 | gotoff_operand code paths. Use copy_to_suggested_regs and | |
24971 | expand_simple_binop where appropriate. Cleanup. | |
24972 | ||
24973 | 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com> | |
24974 | ||
24975 | PR target/70799 | |
24976 | * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow | |
24977 | integer constants. | |
24978 | (dimode_scalar_chain::vector_const_cost): New. | |
24979 | (dimode_scalar_chain::compute_convert_gain): Handle constants. | |
24980 | (dimode_scalar_chain::convert_op): Likewise. | |
24981 | (dimode_scalar_chain::convert_insn): Likewise. | |
24982 | ||
24983 | 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com> | |
24984 | ||
24985 | * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an | |
24986 | unary operation, not a binary one. | |
24987 | ||
24988 | 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com> | |
24989 | ||
24990 | PR middle-end/70877 | |
24991 | * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle | |
24992 | calls with type casted fndecl. | |
24993 | ||
24994 | 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com> | |
24995 | ||
24996 | PR tree-optimization/70786 | |
24997 | * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR. | |
24998 | * calls.c (initialize_argument_information): Bind bounds | |
24999 | with corresponding args passed by reference. | |
25000 | ||
25001 | 2016-05-10 Jakub Jelinek <jakub@redhat.com> | |
25002 | ||
25003 | PR target/70927 | |
25004 | * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>), | |
25005 | *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding, | |
25006 | use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute | |
25007 | accordingly. | |
25008 | ||
25009 | 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
25010 | ||
25011 | PR target/70963 | |
25012 | * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct | |
25013 | code for a zero scale factor. | |
25014 | (vsx_xvcvdpuxds_scale): Likewise. | |
25015 | ||
25016 | 2016-05-10 David Malcolm <dmalcolm@redhat.com> | |
25017 | ||
25018 | * diagnostic-show-locus.c (layout::layout): Call show_ruler | |
25019 | if show_ruler_p was set on the context. | |
25020 | (layout::show_ruler): New method. | |
25021 | * diagnostic.h (struct diagnostic_context): Add field | |
25022 | "show_ruler_p". | |
25023 | ||
25024 | 2016-05-10 Richard Biener <rguenther@suse.de> | |
25025 | ||
25026 | PR tree-optimization/71039 | |
25027 | * tree-ssa-phiprop.c: Include tree-ssa-loop.h. | |
25028 | (chk_uses): New function. | |
25029 | (propagate_with_phi): Verify we can safely replicate the lhs of an | |
25030 | aggregate assignment on all incoming edges. | |
25031 | ||
25032 | 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org> | |
25033 | ||
25034 | * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func): | |
25035 | Forward declare. | |
25036 | (rx_atomic_sequence): New class. | |
25037 | * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits. | |
25038 | (is_interrupt_func, is_fast_interrupt_func): Make non-static and | |
25039 | non-inline. | |
25040 | (rx_atomic_sequence::rx_atomic_sequence, | |
25041 | rx_atomic_sequence::~rx_atomic_sequence): New functions. | |
25042 | * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN, | |
25043 | CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV, | |
25044 | CTRLREG_INTB): New constants. | |
25045 | (FETCHOP): New code iterator. | |
25046 | (fethcop_name, fetchop_name2): New iterator code attributes. | |
25047 | (QIHI): New mode iterator. | |
25048 | (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>, | |
25049 | atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi, | |
25050 | atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns. | |
25051 | ||
25052 | 2016-05-10 Martin Liska <mliska@suse.cz> | |
25053 | ||
25054 | * tree-inline.c (remap_dependence_clique): Do not remap | |
25055 | debugging statements. | |
25056 | ||
25057 | 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
25058 | ||
25059 | * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly") | |
25060 | ("*fixuns_truncdfdi2_z13") | |
25061 | ("*fixuns_trunc<FP:mode><GPR:mode>2_z196") | |
25062 | ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13") | |
25063 | ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX. | |
25064 | ||
25065 | 2016-05-10 Richard Biener <rguenther@suse.de> | |
25066 | ||
25067 | PR tree-optimization/70497 | |
25068 | PR tree-optimization/28367 | |
25069 | * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function | |
25070 | split out from ... | |
25071 | (visit_reference_op_load): ... here. | |
25072 | (vn_reference_lookup_3): Use it to handle subreg-like accesses | |
25073 | with simplified BIT_FIELD_REFs. | |
25074 | * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs. | |
25075 | * tree-complex.c (extract_component): Handle BIT_FIELD_REFs | |
25076 | correctly. | |
25077 | ||
25078 | 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com> | |
25079 | ||
25080 | * dwarf2out.c (add_abstract_origin_attribute): Adjust | |
25081 | documentation comment. For BLOCK nodes, add a | |
25082 | DW_AT_abstract_origin attribute that points to the DIE generated | |
25083 | for the origin BLOCK. | |
25084 | (gen_lexical_block_die): Call add_abstract_origin_attribute for | |
25085 | blocks from inlined functions. | |
25086 | ||
25087 | 2016-05-10 Alan Modra <amodra@gmail.com> | |
25088 | ||
25089 | PR target/70947 | |
25090 | * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop | |
25091 | regrename modifying insns saving lr before __morestack call. | |
25092 | * config/rs6000/rs6000.md (split_stack_return): Similarly for | |
25093 | insns restoring lr after __morestack call. | |
25094 | ||
25095 | 2016-05-09 Jakub Jelinek <jakub@redhat.com> | |
25096 | ||
25097 | * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb, | |
25098 | lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from | |
25099 | expanders. | |
25100 | * config/i386/sse.md (vec_interleave_high<mode>, | |
25101 | vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz, | |
25102 | <avx512>_vpermt2var<mode>3_maskz): Likewise. | |
25103 | ||
25104 | 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
25105 | ||
25106 | * config/rs6000/rs6000.c (rs6000_reassociation_width): Add | |
25107 | function for TARGET_SCHED_REASSOCIATION_WIDTH to enable | |
25108 | parallel reassociation for power8 and forward. | |
25109 | ||
25110 | 2016-05-09 Uros Bizjak <ubizjak@gmail.com> | |
25111 | ||
25112 | * config/i386/i386.md (absneg splitters with general regs): Use | |
25113 | general_reg_operand predicate. | |
25114 | (btsq peephole2): Use x86_64_immediate_operand to check if new | |
25115 | value is suitable for immediate operand. Generate emitted insn | |
25116 | using RTL expressions. | |
25117 | (btcq peephole2): Ditto. | |
25118 | (btrq peephole2): Ditto. Generate correct immediate operand | |
25119 | for AND masking. | |
25120 | ||
25121 | 2016-05-09 Richard Sandiford <richard.sandiford@arm.com> | |
25122 | ||
25123 | * cfgexpand.c (expand_debug_expr): Fix address offset for negative | |
25124 | bitpos. | |
25125 | ||
25126 | 2016-05-09 Richard Sandiford <richard.sandiford@arm.com> | |
25127 | ||
25128 | * tree-affine.c (wide_int_constant_multiple_p): Add missing | |
25129 | pointer dereference. | |
25130 | ||
25131 | 2016-05-09 Richard Biener <rguenther@suse.de> | |
25132 | ||
25133 | PR tree-optimization/70985 | |
25134 | * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when | |
25135 | op0 isn't a gimple register. | |
25136 | ||
25137 | 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com> | |
25138 | ||
25139 | * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic) | |
25140 | (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store) | |
25141 | (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l) | |
25142 | (i6400_fpu_mult): New cpu units. | |
25143 | (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3) | |
25144 | (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move) | |
25145 | (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d) | |
25146 | (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b) | |
25147 | (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store) | |
25148 | (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1) | |
25149 | (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2) | |
25150 | (i6400_msa_long_float4, i6400_msa_long_float5) | |
25151 | (i6400_msa_long_float8, i6400_msa_fdiv_df) | |
25152 | (i6400_msa_fdiv_sf): New reservations. | |
25153 | * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp) | |
25154 | (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b) | |
25155 | (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a) | |
25156 | (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d) | |
25157 | (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units. | |
25158 | (msa_short_int_add, msa_short_logic, msa_short_logic_move_v) | |
25159 | (msa_short_cmp, msa_short_float2, msa_short_logic3) | |
25160 | (msa_short_store4, msa_long_load, msa_short_store) | |
25161 | (msa_long_logic, msa_long_float2, msa_long_float4) | |
25162 | (msa_long_float5, msa_long_float8, msa_long_mult) | |
25163 | (msa_long_fdiv, msa_long_div): New reservations. | |
25164 | ||
25165 | 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com> | |
25166 | Sameera Deshpande <sameera.deshpande@imgtec.com> | |
25167 | Matthew Fortune <matthew.fortune@imgtec.com> | |
25168 | Graham Stott <graham.stott@imgtec.com> | |
25169 | Chao-ying Fu <chao-ying.fu@imgtec.com> | |
25170 | ||
25171 | * config.gcc: Add MSA header file for mips*-*-* target. | |
25172 | * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6) | |
25173 | (Ubv8i, Urv8): New constraints. | |
25174 | * config/mips/mips-ftypes.def: Add function types for MSA | |
25175 | builtins. | |
25176 | * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF) | |
25177 | (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes. | |
25178 | * config/mips/mips-msa.md: New file. | |
25179 | * config/mips/mips-protos.h | |
25180 | (mips_split_128bit_const_insns): New prototype. | |
25181 | (mips_msa_idiv_insns): Likewise. | |
25182 | (mips_split_128bit_move): Likewise. | |
25183 | (mips_split_128bit_move_p): Likewise. | |
25184 | (mips_split_msa_copy_d): Likewise. | |
25185 | (mips_split_msa_insert_d): Likewise. | |
25186 | (mips_split_msa_fill_d): Likewise. | |
25187 | (mips_expand_msa_branch): Likewise. | |
25188 | (mips_const_vector_same_val_p): Likewise. | |
25189 | (mips_const_vector_same_bytes_p): Likewise. | |
25190 | (mips_const_vector_same_int_p): Likewise. | |
25191 | (mips_const_vector_shuffle_set_p): Likewise. | |
25192 | (mips_const_vector_bitimm_set_p): Likewise. | |
25193 | (mips_const_vector_bitimm_clr_p): Likewise. | |
25194 | (mips_msa_vec_parallel_const_half): Likewise. | |
25195 | (mips_msa_output_division): Likewise. | |
25196 | (mips_ldst_scaled_shift): Likewise. | |
25197 | (mips_expand_vec_cond_expr): Likewise. | |
25198 | * config/mips/mips.c (enum mips_builtin_type): Add | |
25199 | MIPS_BUILTIN_MSA_TEST_BRANCH. | |
25200 | (mips_gen_const_int_vector_shuffle): New prototype. | |
25201 | (mips_const_vector_bitimm_set_p): New function. | |
25202 | (mips_const_vector_bitimm_clr_p): Likewise. | |
25203 | (mips_const_vector_same_val_p): Likewise. | |
25204 | (mips_const_vector_same_bytes_p): Likewise. | |
25205 | (mips_const_vector_same_int_p): Likewise. | |
25206 | (mips_const_vector_shuffle_set_p): Likewise. | |
25207 | (mips_symbol_insns): Forbid loading symbols via immediate for | |
25208 | MSA. | |
25209 | (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and | |
25210 | stores. | |
25211 | (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for | |
25212 | MSA. | |
25213 | (mips_lx_address_p): Add support load indexed address for MSA. | |
25214 | (mips_address_insns): Add calculation of instructions needed for | |
25215 | stores and loads for MSA. | |
25216 | (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle | |
25217 | CONST_VECTOR for MSA and let it fall through. | |
25218 | (mips_ldst_scaled_shift): New function. | |
25219 | (mips_subword_at_byte): Likewise. | |
25220 | (mips_msa_idiv_insns): Likewise. | |
25221 | (mips_legitimize_move): Validate MSA moves. | |
25222 | (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add | |
25223 | calculation of costs for MSA division. | |
25224 | (mips_split_move_p): Check if MSA moves need splitting. | |
25225 | (mips_split_move): Split MSA moves if necessary. | |
25226 | (mips_split_128bit_move_p): New function. | |
25227 | (mips_split_128bit_move): Likewise. | |
25228 | (mips_split_msa_copy_d): Likewise. | |
25229 | (mips_split_msa_insert_d): Likewise. | |
25230 | (mips_split_msa_fill_d): Likewise. | |
25231 | (mips_output_move): Handle MSA moves. | |
25232 | (mips_expand_msa_branch): New function. | |
25233 | (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers. | |
25234 | Reinstate 'y' modifier. | |
25235 | (mips_file_start): Add MSA .gnu_attribute. | |
25236 | (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in | |
25237 | FPRs. | |
25238 | (mips_hard_regno_nregs): Always return 1 for MSA supported mode. | |
25239 | (mips_class_max_nregs): Add register size for MSA supported mode. | |
25240 | (mips_cannot_change_mode_class): Allow conversion between MSA | |
25241 | vector modes and TImode. | |
25242 | (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v | |
25243 | instruction. | |
25244 | (mips_secondary_reload_class): Force MSA loads/stores via memory. | |
25245 | (mips_preferred_simd_mode): Add preffered modes for MSA. | |
25246 | (mips_vector_mode_supported_p): Add MSA supported modes. | |
25247 | (mips_autovectorize_vector_sizes): New function. | |
25248 | (mips_msa_output_division): Likewise. | |
25249 | (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET) | |
25250 | (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros. | |
25251 | (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h) | |
25252 | (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d) | |
25253 | (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h) | |
25254 | (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du | |
25255 | (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w) | |
25256 | (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v) | |
25257 | (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b) | |
25258 | (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v) | |
25259 | (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w) | |
25260 | (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b) | |
25261 | (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w) | |
25262 | (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b) | |
25263 | (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w) | |
25264 | (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b) | |
25265 | (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w) | |
25266 | (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b) | |
25267 | (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w) | |
25268 | (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b) | |
25269 | (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w) | |
25270 | (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b) | |
25271 | (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w) | |
25272 | (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d) | |
25273 | (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w) | |
25274 | (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w) | |
25275 | (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w) | |
25276 | (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w) | |
25277 | (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w) | |
25278 | (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w) | |
25279 | (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w) | |
25280 | (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d) | |
25281 | (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w) | |
25282 | (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d) | |
25283 | (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d) | |
25284 | (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d) | |
25285 | (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h) | |
25286 | (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d) | |
25287 | (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h) | |
25288 | (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d) | |
25289 | (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h) | |
25290 | (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d) | |
25291 | (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h) | |
25292 | (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d) | |
25293 | (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h) | |
25294 | (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d) | |
25295 | (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h) | |
25296 | (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d) | |
25297 | (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h) | |
25298 | (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d) | |
25299 | (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h) | |
25300 | (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d) | |
25301 | (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w) | |
25302 | (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h) | |
25303 | (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v) | |
25304 | (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b) | |
25305 | (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w) | |
25306 | (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b) | |
25307 | (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w) | |
25308 | (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h) | |
25309 | (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b) | |
25310 | (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d) | |
25311 | (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w) | |
25312 | (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h) | |
25313 | (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b) | |
25314 | (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d) | |
25315 | (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w) | |
25316 | (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h) | |
25317 | (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v) | |
25318 | (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w) | |
25319 | (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d) | |
25320 | (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b) | |
25321 | (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w) | |
25322 | (CODE_FOR_msa_ldi_d): New code_aliasing macros. | |
25323 | (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b, | |
25324 | slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b, | |
25325 | srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b, | |
25326 | srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b, | |
25327 | srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b, | |
25328 | srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d, | |
25329 | bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w, | |
25330 | bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h, | |
25331 | bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b, | |
25332 | binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w, | |
25333 | binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h, | |
25334 | binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b, | |
25335 | addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d, | |
25336 | subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w, | |
25337 | max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b, | |
25338 | max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w, | |
25339 | maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h, | |
25340 | mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b, | |
25341 | mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d, | |
25342 | min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d, | |
25343 | ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w, | |
25344 | clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b, | |
25345 | clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w, | |
25346 | clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h, | |
25347 | clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b, | |
25348 | clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h, | |
25349 | st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h, | |
25350 | sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b, | |
25351 | adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w, | |
25352 | adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b, | |
25353 | ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d, | |
25354 | aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h, | |
25355 | aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d, | |
25356 | subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h, | |
25357 | subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w, | |
25358 | subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b, | |
25359 | asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d, | |
25360 | maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w, | |
25361 | msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h, | |
25362 | div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h, | |
25363 | hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h, | |
25364 | hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b, | |
25365 | mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d, | |
25366 | dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d, | |
25367 | dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d, | |
25368 | dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d, | |
25369 | sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w, | |
25370 | splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b, | |
25371 | pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d, | |
25372 | ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d, | |
25373 | ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w, | |
25374 | ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v, | |
25375 | ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v, | |
25376 | bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v, | |
25377 | fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w, | |
25378 | pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w, | |
25379 | nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b, | |
25380 | copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w, | |
25381 | insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h, | |
25382 | bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d, | |
25383 | fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d, | |
25384 | fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d, | |
25385 | fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w, | |
25386 | fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d, | |
25387 | fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w, | |
25388 | fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d, | |
25389 | fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d, | |
25390 | fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h, | |
25391 | fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d, | |
25392 | fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h, | |
25393 | mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h, | |
25394 | msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w, | |
25395 | fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d, | |
25396 | flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w, | |
25397 | ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w, | |
25398 | ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d, | |
25399 | ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa, | |
25400 | move_v builtins. | |
25401 | (mips_get_builtin_decl_index): New array. | |
25402 | (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI) | |
25403 | (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF) | |
25404 | (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI) | |
25405 | (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New. | |
25406 | (mips_init_builtins): Initialize mips_get_builtin_decl_index | |
25407 | array. | |
25408 | (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target | |
25409 | hook. | |
25410 | (mips_expand_builtin_insn): Prepare operands for | |
25411 | CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w, | |
25412 | CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b, | |
25413 | CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w, | |
25414 | CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b, | |
25415 | CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w, | |
25416 | CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b, | |
25417 | CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w, | |
25418 | CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b, | |
25419 | CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w, | |
25420 | CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b, | |
25421 | CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, | |
25422 | CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w, | |
25423 | CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b, | |
25424 | CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w, | |
25425 | CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b, | |
25426 | CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w, | |
25427 | CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b, | |
25428 | CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w, | |
25429 | CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b, | |
25430 | CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w, | |
25431 | CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b, | |
25432 | CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b, | |
25433 | CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b, | |
25434 | CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d, | |
25435 | CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w, | |
25436 | CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h, | |
25437 | CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b, | |
25438 | CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b, | |
25439 | CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b, | |
25440 | CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b, | |
25441 | CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b, | |
25442 | CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, | |
25443 | CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w, | |
25444 | CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h, | |
25445 | CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b, | |
25446 | CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w, | |
25447 | CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b, | |
25448 | CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d, | |
25449 | CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w, | |
25450 | CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, | |
25451 | CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d. | |
25452 | (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH. | |
25453 | (mips_set_compression_mode): Disallow MSA with MIPS16 code. | |
25454 | (mips_option_override): -mmsa requires -mfp64 and -mhard-float. | |
25455 | These are set implicitly and an error is reported if overridden. | |
25456 | (mips_expand_builtin_msa_test_branch): New function. | |
25457 | (mips_expand_msa_shuffle): Likewise. | |
25458 | (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes. | |
25459 | (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook. | |
25460 | (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise. | |
25461 | (mips_expand_vec_unpack): Add support for MSA. | |
25462 | (mips_expand_vector_init): Likewise. | |
25463 | (mips_expand_vi_constant): Use CONST0_RTX (element_mode) | |
25464 | instead of const0_rtx. | |
25465 | (mips_msa_vec_parallel_const_half): New function. | |
25466 | (mips_gen_const_int_vector): Likewise. | |
25467 | (mips_gen_const_int_vector_shuffle): Likewise. | |
25468 | (mips_expand_msa_cmp): Likewise. | |
25469 | (mips_expand_vec_cond_expr): Likewise. | |
25470 | * config/mips/mips.h | |
25471 | (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width. | |
25472 | (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is | |
25473 | specified. | |
25474 | (ASM_SPEC): Pass mmsa and mno-msa to the assembler. | |
25475 | (ISA_HAS_MSA): New macro. | |
25476 | (UNITS_PER_MSA_REG): Likewise. | |
25477 | (BITS_PER_MSA_REG): Likewise. | |
25478 | (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA. | |
25479 | (MSA_REG_FIRST): New macro. | |
25480 | (MSA_REG_LAST): Likewise. | |
25481 | (MSA_REG_NUM): Likewise. | |
25482 | (MSA_REG_P): Likewise. | |
25483 | (MSA_REG_RTX_P): Likewise. | |
25484 | (MSA_SUPPORTED_MODE_P): Likewise. | |
25485 | (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA. | |
25486 | (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31. | |
25487 | * config/mips/mips.md: Include mips-msa.md. | |
25488 | (alu_type): Add simd_add. | |
25489 | (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF. | |
25490 | (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd, | |
25491 | simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins, | |
25492 | simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp, | |
25493 | simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat, | |
25494 | simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt, | |
25495 | simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic, | |
25496 | simd_move, simd_load, simd_store. Choose "multi" for moves | |
25497 | for "qword_mode". | |
25498 | (qword_mode): New attribute. | |
25499 | (insn_count): Add instruction count for quad moves. | |
25500 | Increase the count for MIPS SIMD division. | |
25501 | (UNITMODE): Add UNITMODEs for vector types. | |
25502 | (addsub): New code iterator. | |
25503 | * config/mips/mips.opt (mmsa): New option. | |
25504 | * config/mips/msa.h: New file. | |
25505 | * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is | |
25506 | specified. | |
25507 | * config/mips/mti-linux.h: Likewise. | |
25508 | * config/mips/predicates.md | |
25509 | (const_msa_branch_operand): New constraint. | |
25510 | (const_uimm3_operand): Likewise. | |
25511 | (const_uimm4_operand): Likewise. | |
25512 | (const_uimm5_operand): Likewise. | |
25513 | (const_uimm8_operand): Likewise. | |
25514 | (const_imm5_operand): Likewise. | |
25515 | (aq10b_operand): Likewise. | |
25516 | (aq10h_operand): Likewise. | |
25517 | (aq10w_operand): Likewise. | |
25518 | (aq10d_operand): Likewise. | |
25519 | (const_m1_operand): Likewise. | |
25520 | (reg_or_m1_operand): Likewise. | |
25521 | (const_exp_2_operand): Likewise. | |
25522 | (const_exp_4_operand): Likewise. | |
25523 | (const_exp_8_operand): Likewise. | |
25524 | (const_exp_16_operand): Likewise. | |
25525 | (const_vector_same_val_operand): Likewise. | |
25526 | (const_vector_same_simm5_operand): Likewise. | |
25527 | (const_vector_same_uimm5_operand): Likewise. | |
25528 | (const_vector_same_uimm6_operand): Likewise. | |
25529 | (const_vector_same_uimm8_operand): Likewise. | |
25530 | (par_const_vector_shf_set_operand): Likewise. | |
25531 | (reg_or_vector_same_val_operand): Likewise. | |
25532 | (reg_or_vector_same_simm5_operand): Likewise. | |
25533 | (reg_or_vector_same_uimm6_operand): Likewise. | |
25534 | * doc/extend.texi (MIPS SIMD Architecture Functions): New | |
25535 | section. | |
25536 | * doc/invoke.texi (-mmsa): Document new option. | |
25537 | ||
25538 | 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
25539 | ||
25540 | * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify. | |
25541 | * configure: Regenerate. | |
25542 | * config.in: Regenerate. | |
25543 | * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error | |
25544 | on -fvtable-verify. | |
25545 | * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define. | |
25546 | (ENDFILE_VTV_SPEC): Define. | |
25547 | ||
25548 | 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com> | |
25549 | ||
25550 | * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related | |
25551 | registers in all interrupt handlers if necessary. | |
25552 | (rl78_option_override): Add warning. | |
25553 | (MUST_SAVE_MDUC_REGISTERS): New macro. | |
25554 | (rl78_expand_epilogue): Restore the MDUC registers if necessary. | |
25555 | * config/rl78/rl78.c (check_mduc_usage): New function. | |
25556 | (mduc_regs): New structure to hold MDUC register data. | |
25557 | * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute. | |
25558 | (mulsi3_g13): Add is_g13_muldiv_insn attribute. | |
25559 | (udivmodsi4_g13): Add is_g13_muldiv_insn attribute. | |
25560 | (mulhi3_g13): Add is_g13_muldiv_insn attribute. | |
25561 | * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option. | |
25562 | * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts. | |
25563 | ||
25564 | 2016-05-09 Bin Cheng <bin.cheng@arm.com> | |
25565 | ||
25566 | * tree-if-conv.c (tree-ssa-loop.h): Include header file. | |
25567 | (tree-ssa-loop-niter.h): Ditto. | |
25568 | (idx_within_array_bound, ref_within_array_bound): New functions. | |
25569 | (ifcvt_memrefs_wont_trap): Check if array ref is within bound. | |
25570 | Factor out check on writable base object to ... | |
25571 | (base_object_writable): ... here. | |
25572 | ||
25573 | 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
25574 | ||
25575 | * config/arm/arm.md (probe_stack): Add modes to set source | |
25576 | and destination. | |
25577 | ||
25578 | 2016-05-09 Bernd Schmidt <bschmidt@redhat.com> | |
25579 | ||
25580 | * regrename.c (base_reg_class_for_rename): New static function. | |
25581 | (scan_rtx_address, scan_rtx): Use it instead of base_reg_class. | |
25582 | ||
25583 | 2016-05-08 Jan Hubicka <hubicka@ucw.cz> | |
25584 | ||
25585 | * cgraph.c (thunk_adjust): Export. | |
25586 | * cgraphclones.c (cgraph_node::create_clone): Clone thunk info. | |
25587 | * cgraphunit.c (thunk_adjust): Export. | |
25588 | (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined | |
25589 | thunks. | |
25590 | * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are | |
25591 | inlinable. | |
25592 | * tree-inline.c (expand_call_inline): Expand thunks inline. | |
25593 | ||
25594 | 2016-05-08 Uros Bizjak <ubizjak@gmail.com> | |
25595 | ||
25596 | PR target/70998 | |
25597 | * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern. | |
25598 | (*sse2_vd_cvtss2sd): Ditto. | |
25599 | * config/i386/i386.md | |
25600 | (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter): | |
25601 | Generate *sse2_vd_cvtsd2ss pattern. | |
25602 | (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter): | |
25603 | Generate *sse2_vd_cvtss2sd pattern. | |
25604 | ||
25605 | 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org> | |
25606 | ||
25607 | * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ... | |
25608 | * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its | |
25609 | users. | |
25610 | ||
25611 | 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org> | |
25612 | ||
25613 | * config/sh/sh-protos.h (sh_media_register_for_return): Remove. | |
25614 | * config/sh/sh.c: Define and declare variables on first use throughout | |
25615 | the file. | |
25616 | (current_function_interrupt): Change to bool type. | |
25617 | (frame_insn): Rename to emit_frame_insn and update users. | |
25618 | (push_regs): Use bool for 'interrupt_handler' argument. | |
25619 | (save_schedule_s): Remove. | |
25620 | (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove. | |
25621 | (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and | |
25622 | targetm.asm_out.unaligned_op.di. | |
25623 | (gen_far_branch): Remove redundant forward declaration. | |
25624 | (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry, | |
25625 | MAX_TEMPS, save_schedule_ssave_schedule): Remove. | |
25626 | (sh_set_return_address, sh_function_ok_for_sibcall, | |
25627 | scavenge_reg): Update comments. | |
25628 | (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition. | |
25629 | (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop. | |
25630 | (sh_attr_renesas_p): Remove unnecessary parentheses. | |
25631 | (branch_dest): Simplify. | |
25632 | * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields. | |
25633 | Change force_mem, prototype_p, outgoing, renesas_abi fields to bool. | |
25634 | (CUMULATIVE_ARGS): Change macro to typedef. | |
25635 | (current_function_interrupt): Change to bool type. | |
25636 | (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt): | |
25637 | Surround with __cplusplus ifdef. | |
25638 | (sh_compare_op0, sh_compare_op1): Remove. | |
25639 | (EPILOGUE_USES): Use TARGET_FPU_ANY condition. | |
25640 | ||
25641 | 2016-05-07 Jim Wilson <jim.wilson@linaro.org> | |
25642 | ||
25643 | * config/arm/arm.md (arch): Add neon. | |
25644 | (arch_enabled): Return yes for arch neon when TARGET_NEON. | |
25645 | * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add | |
25646 | neon_move as type for alt 3. Add arch attr enabling alt 3 for neon. | |
25647 | Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust | |
25648 | attributes for alt renumbering. Mark alt 3 as non-predicable. | |
25649 | (thumb2_movdf_vfp): Likewise. | |
25650 | ||
25651 | 2016-05-07 Uros Bizjak <ubizjak@gmail.com> | |
25652 | ||
25653 | * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute | |
25654 | to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets. | |
25655 | (*andqi_1): Add preferred_for_speed attribute to disparage | |
25656 | alternative 2 for TARGET_PARTIAL_REG_STALL targets. | |
25657 | (*<code>qi_1): Ditto. | |
25658 | (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage | |
25659 | alternative 1 for TARGET_PARTIAL_REG_STALL targets. | |
25660 | (*ashlqi3_1): Ditto. | |
25661 | (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns. | |
25662 | Add preferred_for_size attribute to disparage alternative 0 and | |
25663 | preferred_for_speed attribute to disparage alternative 1 for | |
25664 | TARGET_PARTIAL_REG_STALL targets. | |
25665 | ||
25666 | 2016-05-07 Tom de Vries <tom@codesourcery.com> | |
25667 | ||
25668 | PR tree-optimization/70956 | |
25669 | * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL | |
25670 | def. | |
25671 | ||
25672 | 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org> | |
25673 | ||
25674 | * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function. | |
25675 | * config/sh/sh.c (sh_cbranch_distance): Implement it. | |
25676 | * config/sh/sh.md (branch_zero): Remove define_attr. | |
25677 | (define_delay): Disable delay slot if branch distance is one insn. | |
25678 | ||
25679 | 2016-05-06 Uros Bizjak <ubizjak@gmail.com> | |
25680 | ||
25681 | * config/i386/i386.md (LEAMODE): New mode attribute. | |
25682 | (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute. | |
25683 | (ashift to LEA splitter): Rewrte splitter using SWI mode iterator | |
25684 | and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as | |
25685 | operand 2 predicate. | |
25686 | (*lea<mode>_general_2): Use VOIDmode for const248_operand. | |
25687 | (*lea<mode>_general_3): Ditto. | |
25688 | (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand. | |
25689 | ||
25690 | 2016-05-06 Jakub Jelinek <jakub@redhat.com> | |
25691 | ||
25692 | * genmddump.c (main): Convert argv from char ** to const char **. | |
25693 | ||
25694 | 2016-05-06 David Malcolm <dmalcolm@redhat.com> | |
25695 | ||
25696 | * coretypes.h (OVERRIDE): New macro. | |
25697 | (FINAL): New macro. | |
25698 | ||
25699 | 2016-05-06 Eric Botcazou <ebotcazou@adacore.com> | |
25700 | ||
25701 | * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case, | |
25702 | allow coalescing if the types are compatible. | |
25703 | ||
25704 | 2016-05-06 David Malcolm <dmalcolm@redhat.com> | |
25705 | ||
25706 | * pass_manager.h (pass_manager::register_pass_name): New method. | |
25707 | (pass_manager::get_pass_by_name): New method. | |
25708 | (pass_manager::create_pass_tab): New method. | |
25709 | (pass_manager::m_name_to_pass_map): New field. | |
25710 | * passes.c (name_to_pass_map): Delete global in favor of field | |
25711 | "m_name_to_pass_map" of pass_manager. | |
25712 | (register_pass_name): Rename from a function to... | |
25713 | (pass_manager::register_pass_name): ...this method, updating | |
25714 | for renaming of global "name_to_pass_map" to field | |
25715 | "m_name_to_pass_map". | |
25716 | (create_pass_tab): Rename from a function to... | |
25717 | (pass_manager::create_pass_tab): ...this method, updating | |
25718 | for renaming of global "name_to_pass_map" to field. | |
25719 | (get_pass_by_name): Rename from a function to... | |
25720 | (pass_manager::get_pass_by_name): ...this method. | |
25721 | (enable_disable_pass): Convert use of get_pass_by_name to | |
25722 | a method call, locating the pass_manager singleton. | |
25723 | ||
25724 | 2016-05-06 David Malcolm <dmalcolm@redhat.com> | |
25725 | ||
25726 | * genattr-common.c (main): Convert argv from char ** to const char **. | |
25727 | * genattr.c (main): Likewise. | |
25728 | * genattrtab.c (main): Likewise. | |
25729 | * genautomata.c (initiate_automaton_gen): Likewise. | |
25730 | (main): Likewise. | |
25731 | * gencodes.c (main): Likewise. | |
25732 | * genconditions.c (main): Likewise. | |
25733 | * genconfig.c (main): Likewise. | |
25734 | * genconstants.c (main): Likewise. | |
25735 | * genemit.c (main): Likewise. | |
25736 | * genenums.c (main): Likewise. | |
25737 | * genextract.c (main): Likewise. | |
25738 | * genflags.c (main): Likewise. | |
25739 | * genmddeps.c (main): Likewise. | |
25740 | * genopinit.c (main): Likewise. | |
25741 | * genoutput.c (main): Likewise. | |
25742 | * genpeep.c (main): Likewise. | |
25743 | * genpreds.c (main): Likewise. | |
25744 | * genrecog.c (main): Likewise. | |
25745 | * gensupport.c (init_rtx_reader_args_cb): Likewise. | |
25746 | (init_rtx_reader_args): Likewise. | |
25747 | * gensupport.h (init_rtx_reader_args_cb): Likewise. | |
25748 | (init_rtx_reader_args): Likewise. | |
25749 | * gentarget-def.c (main): Likewise. | |
25750 | * read-md.c (read_md_files): Likewise. | |
25751 | * read-md.h (read_md_files): Likewise. | |
25752 | ||
25753 | 2016-05-06 Uros Bizjak <ubizjak@gmail.com> | |
25754 | ||
25755 | * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand | |
25756 | instead of register_and_not_any_fp_reg_operand as operand 0 predicate. | |
25757 | * config/i386/predicates.md (register_and_not_any_fp_reg_operand): | |
25758 | Remove unused predicate. | |
25759 | (register_and_not_fp_reg_operand): Ditto. | |
25760 | ||
25761 | 2016-05-06 Martin Liska <mliska@suse.cz> | |
25762 | ||
25763 | * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec | |
25764 | instead of vec as the vector is local to the function. | |
25765 | ||
25766 | 2016-05-06 Jakub Jelinek <jakub@redhat.com> | |
25767 | ||
25768 | * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add | |
25769 | avx512bw alternative. | |
25770 | ||
25771 | * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move | |
25772 | before the ashr<mode>3 pattern. | |
25773 | ||
25774 | * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use | |
25775 | v instead of x in vex or maybe_vex alternatives, use | |
25776 | maybe_evex instead of vex in prefix. | |
25777 | ||
25778 | * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps, | |
25779 | *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi, | |
25780 | vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x | |
25781 | in vex or maybe_vex alternatives, use maybe_evex instead of vex | |
25782 | in prefix. | |
25783 | ||
25784 | * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use | |
25785 | v instead of x in vex or maybe_vex alternatives, use | |
25786 | maybe_evex instead of vex in prefix. | |
25787 | ||
25788 | * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps, | |
25789 | sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1, | |
25790 | sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd, | |
25791 | sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex | |
25792 | alternatives, use maybe_evex instead of vex in prefix. | |
25793 | ||
25794 | * config/i386/sse.md (vec_interleave_lowv4sf, | |
25795 | *vec_interleave_highv2df, *vec_interleave_lowv2df): Use | |
25796 | v instead of x in vex or maybe_vex alternatives, use | |
25797 | maybe_evex instead of vex in prefix. | |
25798 | ||
25799 | * config/i386/sse.md (sse_movhlps, sse_movlhps): Use | |
25800 | v instead of x in vex or maybe_vex alternatives, use | |
25801 | maybe_evex instead of vex in prefix. | |
25802 | ||
25803 | * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use | |
25804 | v constraint instead of x. | |
25805 | ||
25806 | 2016-05-06 Nathan Sidwell <nathan@codesourcery.com> | |
25807 | ||
25808 | * gimple.c (gimple_call_same_target_p): Unique functions are eq. | |
25809 | * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq | |
25810 | equality first. | |
25811 | ||
25812 | 2016-05-06 Richard Biener <rguenther@suse.de> | |
25813 | ||
25814 | PR tree-optimization/70948 | |
25815 | * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): | |
25816 | Properly clobber all fields of va_list for __builtin_va_start. | |
25817 | ||
25818 | 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com> | |
25819 | ||
25820 | PR debug/70935 | |
25821 | * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with | |
25822 | loop latch destination. | |
25823 | ||
25824 | 2016-05-06 Martin Liska <mliska@suse.cz> | |
25825 | ||
25826 | * tree-ssa-uninit.c: Apply manual changes | |
25827 | to the GNU coding style. | |
25828 | (prune_uninit_phi_opnds): Rename from | |
25829 | prune_uninit_phi_opnds_in_unrealizable_paths. | |
25830 | ||
25831 | 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org> | |
25832 | ||
25833 | * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic, | |
25834 | mspace): Remove deprecated options. | |
25835 | * doc/invoke.texi (SH options): Remove -mspace. | |
25836 | ||
25837 | 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org> | |
25838 | ||
25839 | * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length. | |
25840 | ||
25841 | 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org> | |
25842 | ||
25843 | * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar | |
25844 | corresponding combine split pattern. | |
25845 | ||
25846 | 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org> | |
25847 | ||
25848 | PR target/58219 | |
25849 | * config/sh/predicates.md (long_displacement_mem_operand): New. | |
25850 | * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU. | |
25851 | Add movi20, movi20s alternatives. Adjust length attribute for | |
25852 | alternatives. | |
25853 | (movsi_ie): Allow for any FPU. Adjust length attribute for | |
25854 | alternatives. | |
25855 | (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length | |
25856 | attribute for alternatives. | |
25857 | (*mov<mode>): Use long_displacement_mem_operand for length attribute. | |
25858 | (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust | |
25859 | length attribute for alternatives. | |
25860 | ||
25861 | 2016-05-06 Richard Biener <rguenther@suse.de> | |
25862 | ||
25863 | PR tree-optimization/70960 | |
25864 | * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops. | |
25865 | ||
25866 | 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org> | |
25867 | ||
25868 | PR target/52933 | |
25869 | * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants. | |
25870 | * config/sh/sh.c (sh_rtx_costs): Add another div0s case. | |
25871 | ||
25872 | 2016-05-06 Marek Polacek <polacek@redhat.com> | |
25873 | ||
25874 | PR sanitizer/70875 | |
25875 | * ubsan.c (get_ubsan_type_info_for_type): Remove assert. | |
25876 | ||
25877 | 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org> | |
25878 | ||
25879 | PR target/54089 | |
25880 | * config/sh/sh.md (*rotcr): Add another variant. | |
25881 | ||
25882 | 2016-05-06 Richard Biener <rguenther@suse.de> | |
25883 | ||
25884 | PR middle-end/70931 | |
25885 | * dwarf2out.c (native_encode_initializer): Skip zero-sized fields. | |
25886 | ||
25887 | 2016-05-06 Richard Biener <rguenther@suse.de> | |
25888 | ||
25889 | PR middle-end/70941 | |
25890 | * fold-const.c (split_tree): Always convert to the original type | |
25891 | before negating. | |
25892 | ||
25893 | 2016-05-06 Richard Biener <rguenther@suse.de> | |
25894 | ||
25895 | * fwprop.c (fwprop): Remove duplicate cleanup_cfg call. | |
25896 | (fwprop_addr): Likewise. | |
25897 | ||
25898 | 2016-05-06 Uros Bizjak <ubizjak@gmail.com> | |
25899 | ||
25900 | PR target/70873 | |
25901 | * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p): | |
25902 | New prototype. | |
25903 | * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New. | |
25904 | * config/i386/i386.md (push mem splitter): Use find_constant_src in | |
25905 | the splitter condition. | |
25906 | (FP load splitter): Use ix86_standard_x87sse_constant_load_p in | |
25907 | the splitter condition. | |
25908 | (FP float_extend load splitter): Ditto. | |
25909 | ||
25910 | 2016-05-05 Uros Bizjak <ubizjak@gmail.com> | |
25911 | ||
25912 | * config/i386/i386.md (peehole2 patterns): Change true_regnum | |
25913 | to REGNO in all peephole2 patterns. | |
25914 | (post-reload splitters): Change true_regnum to REGNO in | |
25915 | post-reload splitters. | |
25916 | (zero_extend splitters): Use general_reg_operand and | |
25917 | nonimmediate_gr_operand predicates. | |
25918 | ||
25919 | 2016-05-05 Jakub Jelinek <jakub@redhat.com> | |
25920 | ||
25921 | * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use | |
25922 | v constraint instead of x. | |
25923 | ||
25924 | 2016-05-05 Alan Modra <amodra@gmail.com> | |
25925 | ||
25926 | PR target/68662 | |
25927 | * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't | |
25928 | set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set | |
25929 | TARGET_NO_FP_IN_TOC for -mrelocatable. | |
25930 | (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant | |
25931 | TARGET_RELOCATABLE test. | |
25932 | (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. | |
25933 | (ASM_PREFERRED_EH_DATA_FORMAT): Likewise. | |
25934 | * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise. | |
25935 | (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. | |
25936 | (ASM_PREFERRED_EH_DATA_FORMAT): Likewise. | |
25937 | * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise. | |
25938 | (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. | |
25939 | (ASM_PREFERRED_EH_DATA_FORMAT): Likewise. | |
25940 | * config/rs6000/predicates.md (easy_fp_constant): Likewise. | |
25941 | * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op): | |
25942 | Likewise. | |
25943 | (rs6000_assemble_integer): Update TARGET_RELOCATABLE test. | |
25944 | (rs6000_stack_info): Likewise. | |
25945 | (rs6000_elf_asm_out_constructor): Likewise. | |
25946 | (rs6000_elf_asm_out_destructor): Likewise. | |
25947 | (rs6000_elf_declare_function_name): Likewise. | |
25948 | * config/rs6000/rs6000.md (load_toc_aix_di): Likewise. | |
25949 | * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC): | |
25950 | Don't define. | |
25951 | ||
25952 | 2016-05-05 Alan Modra <amodra@gmail.com> | |
25953 | ||
25954 | * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite. | |
25955 | ||
25956 | 2016-05-05 Alan Modra <amodra@gmail.com> | |
25957 | ||
25958 | * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use | |
25959 | out-of-line gpr restore for one or two regs if that would add | |
25960 | a save of lr. | |
25961 | ||
25962 | 2016-05-04 Uros Bizjak <ubizjak@gmail.com> | |
25963 | ||
25964 | PR target/70873 | |
25965 | * config/i386/i386.md | |
25966 | (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2): | |
25967 | Change to post-epilogue_completed late splitter. Use sse_reg_operand | |
25968 | as operand 0 predicate. | |
25969 | (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2): | |
25970 | Ditto. | |
25971 | (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2): | |
25972 | Ditto. Emit the pattern using RTX. | |
25973 | ||
25974 | (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter): | |
25975 | Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in | |
25976 | the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG. | |
25977 | (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter): | |
25978 | Ditto. | |
25979 | (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use | |
25980 | sse_reg_operand as operand 0 predicate. | |
25981 | ||
25982 | (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2): | |
25983 | Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg | |
25984 | instead of gen_rtx_REG. | |
25985 | (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2): | |
25986 | Ditto. | |
25987 | ||
25988 | 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org> | |
25989 | ||
25990 | * function.c (emit_use_return_register_into_block): Delete. | |
25991 | (gen_return_pattern): Delete. | |
25992 | (emit_return_into_block): Delete. | |
25993 | (active_insn_between): Delete. | |
25994 | (convert_jumps_to_returns): Delete. | |
25995 | (emit_return_for_exit): Delete. | |
25996 | (thread_prologue_and_epilogue_insns): Delete all code dealing with | |
25997 | simple_return for shrink-wrapped blocks. | |
25998 | * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the | |
25999 | end of blocks that need one. | |
26000 | (get_unconverted_simple_return): Delete. | |
26001 | (convert_to_simple_return): Delete. | |
26002 | * shrink-wrap.c (get_unconverted_simple_return): Delete declaration. | |
26003 | (convert_to_simple_return): Ditto. | |
26004 | ||
26005 | 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26006 | ||
26007 | * cfgcleanup.c (bb_is_just_return): New function. | |
26008 | (try_optimize_cfg): Simplify jumps to return, branches to return, | |
26009 | and branches around return. | |
26010 | ||
26011 | 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26012 | ||
26013 | * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a | |
26014 | branch to a return. | |
26015 | ||
26016 | 2016-05-04 Jakub Jelinek <jakub@redhat.com> | |
26017 | ||
26018 | PR c++/70906 | |
26019 | PR c++/70933 | |
26020 | * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK. | |
26021 | * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass), | |
26022 | assert flags & OEP_HASH_CHECK, instead of asserting it | |
26023 | never happens. Handle TARGET_EXPR. | |
26024 | * fold-const.c (operand_equal_p): For hash verification, | |
26025 | or in OEP_HASH_CHECK into flags. | |
26026 | ||
26027 | 2016-05-04 Eric Botcazou <ebotcazou@adacore.com> | |
26028 | ||
26029 | * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head | |
26030 | comment. | |
26031 | (compute_samebase_partition_bases): Fix typo. | |
26032 | ||
26033 | 2016-05-04 Jakub Jelinek <jakub@redhat.com> | |
26034 | ||
26035 | * config/i386/sse.md (vec_interleave_highv8sf, | |
26036 | vec_interleave_lowv8sf, vec_interleave_highv4df, | |
26037 | vec_interleave_lowv4df): Remove constraints from expanders. | |
26038 | ||
26039 | * config/i386/sse.md (sse2_movq128): Use v constraint instead of x. | |
26040 | ||
26041 | 2016-05-04 Jan Hubicka <hubicka@ucw.cz> | |
26042 | ||
26043 | * tree-inline.c (expand_call_inline): Fix path dealing with | |
26044 | making lhs of call statement undefined. | |
26045 | ||
26046 | 2016-05-04 Jan Hubicka <hubicka@ucw.cz> | |
26047 | ||
26048 | * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): | |
26049 | Check availability on NODE, too. | |
26050 | * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise. | |
26051 | (cgraph_node::call_for_symbol_and_aliases): Likewise. | |
26052 | (varpool_node::call_for_symbol_and_aliase): Likewise. | |
26053 | * ipa-pure-const.c (add_new_function): Analyze all bodies. | |
26054 | (propagate_pure_const): Propagate across interposable functions, too. | |
26055 | (skip_function_for_local_pure_const): Do not skip interposable bodies | |
26056 | with aliases. | |
26057 | (pass_local_pure_const::execute): Update. | |
26058 | ||
26059 | 2016-05-04 Marek Polacek <polacek@redhat.com> | |
26060 | ||
26061 | * doc/invoke.texi: Document -Wdangling-else. | |
26062 | ||
26063 | 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
26064 | ||
26065 | * config.gcc: Error out when conflicting multilib is detected. Do not | |
26066 | loop over multilibs since no combination is legal. | |
26067 | ||
26068 | 2016-05-04 Alan Modra <amodra@gmail.com> | |
26069 | ||
26070 | * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct. | |
26071 | * config/rs6000/sysv4.h (TARGET_TOC): Simplify. | |
26072 | * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op): | |
26073 | Align .toc. | |
26074 | ||
26075 | 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com> | |
26076 | ||
26077 | * config/mips/mips-cpus.def (p5600): Avoid IMADD by default. | |
26078 | Clean up p5600 comments. | |
26079 | ||
26080 | 2016-05-04 Richard Biener <rguenther@suse.de> | |
26081 | ||
26082 | * match.pd: Add BIT_FIELD_REF canonicalizations and vector | |
26083 | constructor simplifications. | |
26084 | * fold-const.c (fold_ternary_loc): Remove duplicate functionality here. | |
26085 | ||
26086 | 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org> | |
26087 | ||
26088 | * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates. | |
26089 | * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if | |
26090 | result.set_rtx is null instead of aborting. | |
26091 | * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): | |
26092 | Always enable. | |
26093 | (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A. | |
26094 | * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec, | |
26095 | *mov<mode>_store_postinc): New patterns. | |
26096 | ||
26097 | 2016-05-04 Marc Glisse <marc.glisse@inria.fr> | |
26098 | ||
26099 | * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark | |
26100 | as commutative. Check both conversions are NOP. | |
26101 | ((A & B) OP (C & B)): Remove. | |
26102 | ||
26103 | 2016-05-04 Alan Modra <amodra@gmail.com> | |
26104 | ||
26105 | * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test. | |
26106 | ||
26107 | 2016-05-04 Alan Modra <amodra@gmail.com> | |
26108 | ||
26109 | PR target/70866 | |
26110 | * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p | |
26111 | when cr2,3,4 are all fixed regs. | |
26112 | ||
26113 | 2016-05-04 Bernd Schmidt <bschmidt@redhat.com> | |
26114 | ||
26115 | PR rtl-optimization/57193 | |
26116 | * opts.c (default_options_table): Revert OPT_frename_registers change. | |
26117 | * doc/invoke.texi (-frename-registers, -O2): Likewise. | |
26118 | ||
26119 | 2016-05-03 Martin Sebor <msebor@redhat.com> | |
26120 | ||
26121 | PR c++/66561 | |
26122 | * builtins.c (fold_builtin_FILE): New function. | |
26123 | (fold_builtin_FUNCTION, fold_builtin_LINE): New functions. | |
26124 | (fold_builtin_0): Call them. | |
26125 | * gimplify.c (gimplify_call_expr): Remove the handling of | |
26126 | BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE. | |
26127 | ||
26128 | PR c++/66561 | |
26129 | * doc/extend.texi (Other Builtins): Update __builtin_FILE, | |
26130 | __builtin_FUNCTION, and __builtin_LINE to reflect they yield | |
26131 | constants. | |
26132 | ||
26133 | PR c++/66639 | |
26134 | * doc/extend.texi (Function Names as Strings): Update __func__, | |
26135 | __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to | |
26136 | constants. | |
26137 | ||
26138 | 2016-05-03 Jakub Jelinek <jakub@redhat.com> | |
26139 | Richard Biener <rguenther@suse.de> | |
26140 | ||
26141 | PR tree-optimization/70916 | |
26142 | * tree-if-conv.c: Include cfganal.h. | |
26143 | (pass_if_conversion::execute): Call connect_infinite_loops_to_exit | |
26144 | and remove_fake_exit_edges around the optimization pass. | |
26145 | ||
26146 | 2016-05-03 Jan Hubicka <hubicka@ucw.cz> | |
26147 | ||
26148 | * cgraph.c (symbol_table::create_edge): Set inline_failed. | |
26149 | (cgraph_edge::make_direct): Likewise. | |
26150 | (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p. | |
26151 | * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed. | |
26152 | * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code | |
26153 | (CIF_THUNK): New code. | |
26154 | * ipa-inline-analysis.c (initialize_inline_failed): Preserve | |
26155 | CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p. | |
26156 | (compute_inline_parameters): Set inline_failed for thunks. | |
26157 | (inline_analyze_function): Cleanup. | |
26158 | * ipa-inline.c (can_inline_edge_p): Do not deal with | |
26159 | call_stmt_cannot_inline_p. | |
26160 | (can_early_inline_edge_p): Likewise. | |
26161 | (early_inliner): Initialize inline_failed. | |
26162 | * lto-cgraph.c (lto_output_edge): Sanity check inline_failed. | |
26163 | ||
26164 | 2016-05-03 Uros Bizjak <ubizjak@gmail.com> | |
26165 | ||
26166 | * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename | |
26167 | from nonimm_ssenomem_operand. | |
26168 | (nonimm_ssenomem_operand): New predicate. | |
26169 | * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand | |
26170 | as operand 0 predicate. | |
26171 | (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387. | |
26172 | Disable unsupported alternatives using "enabled" attribute. | |
26173 | Use register_ssemem_operand as operand 0 predicate. | |
26174 | (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate. | |
26175 | ||
26176 | 2016-05-03 Marek Polacek <polacek@redhat.com> | |
26177 | ||
26178 | PR c/70859 | |
26179 | * input.c (expansion_point_location): New function. | |
26180 | * input.h (expansion_point_location): Declare. | |
26181 | ||
26182 | 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com> | |
26183 | ||
26184 | * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset | |
26185 | occurence with frame_offset_ ones. | |
26186 | ||
26187 | 2016-05-03 Alan Modra <amodra@gmail.com> | |
26188 | ||
26189 | PR rtl-optimization/70890 | |
26190 | * ira.c (combine_and_move_insns): When moving def_insn, remove | |
26191 | equivs on use_insn. | |
26192 | ||
26193 | 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
26194 | ||
26195 | * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll") | |
26196 | ("*r<noxa>sbg_<mode>_srl"): New define_insns. | |
26197 | ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask". | |
26198 | ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise. | |
26199 | ||
26200 | 2016-05-03 Alan Modra <amodra@gmail.com> | |
26201 | ||
26202 | * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition | |
26203 | for SAVE_MULTIPLE/STORE_MULTIPLE. | |
26204 | ||
26205 | 2016-05-03 Jakub Jelinek <jakub@redhat.com> | |
26206 | ||
26207 | * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387, | |
26208 | *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x. | |
26209 | ||
26210 | 2016-05-03 Richard Biener <rguenther@suse.de> | |
26211 | ||
26212 | * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter | |
26213 | default true. | |
26214 | (gimplify_arg): Likewise. | |
26215 | * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter, | |
26216 | re-writing the result to a decl if required. | |
26217 | (internal_get_tmp_var): Add allow_ssa parameter | |
26218 | and override into_ssa with it. | |
26219 | (get_formal_tmp_var): Adjust. | |
26220 | (get_initialized_tmp_var): Add allow_ssa parameter. | |
26221 | (gimplify_arg): Add allow_ssa parameter and avoid generating | |
26222 | SSA names for the result false. | |
26223 | (gimplify_call_expr): If the call may return twice do not | |
26224 | gimplify parameters into SSA. | |
26225 | (prepare_gimple_addressable): Do not allow an SSA name as temporary. | |
26226 | (gimplify_modify_expr): Adjust assert. For noreturn calls | |
26227 | with a SSA name LHS adjust its def. | |
26228 | (gimplify_save_expr): Do not allow an SSA name as save-expr result. | |
26229 | (gimplify_one_sizepos): Do not allow an SSA name as a sizepos. | |
26230 | (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA. | |
26231 | (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not | |
26232 | an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands. | |
26233 | (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise | |
26234 | for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP. | |
26235 | (optimize_target_teams): Do not allow SSA names for clause operands. | |
26236 | (gimplify_expr): Likewise for where we mark the result addressable. | |
26237 | * passes.def (pass_init_datastructures): Remove. | |
26238 | * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names. | |
26239 | (rewrite_stmt): Likewise. | |
26240 | * tree-inline.c (initialize_cfun): Properly transfer SSA state. | |
26241 | (replace_locals_op): Replace SSA names. | |
26242 | (copy_gimple_seq_and_replace_locals): Init src_cfun. | |
26243 | * gimple-low.c (lower_builtin_setjmp): Deal with SSA. | |
26244 | * cgraph.c (release_function_body): Free CFG annotations only | |
26245 | when we have a CFG. Simplify. | |
26246 | * gimple-fold.c (gimplify_and_update_call_from_tree): Use | |
26247 | force_gimple_operand instead of get_initialized_tmp_var. | |
26248 | * tree-pass.h (make_pass_init_datastructures): Remove. | |
26249 | * tree-ssa.c (execute_init_datastructures): Remove. | |
26250 | (pass_data_init_datastructures): Likewise. | |
26251 | (class pass_init_datastructures): Likewise. | |
26252 | (make_pass_init_datastructures): Likewise. | |
26253 | * omp-low.c (create_omp_child_function): Init SSA data structures. | |
26254 | (grid_expand_target_grid_body): Likewise. | |
26255 | * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA | |
26256 | name before adding it to names_to_release. | |
26257 | (remove_bb): Always release SSA defs. | |
26258 | * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR | |
26259 | before dereferencing it. | |
26260 | * cgraphunit.c (init_lowered_empty_function): Always | |
26261 | int SSA data structures. | |
26262 | * tree-ssanames.c (release_defs): Remove assert that we are in | |
26263 | SSA form. | |
26264 | * trans-mem.c (diagnose_tm_1): Handle SSA name function. | |
26265 | ||
26266 | 2016-05-03 Jakub Jelinek <jakub@redhat.com> | |
26267 | Uros Bizjak <ubizjak@gmail.com> | |
26268 | ||
26269 | PR rtl-optimization/70467 | |
26270 | * config/i386/predicates.md (x86_64_hilo_int_operand, | |
26271 | x86_64_hilo_general_operand): New predicates. | |
26272 | * config/i386/constraints.md (Wd): New constraint. | |
26273 | * config/i386/i386.md (mode attr di): Use Wd instead of e. | |
26274 | (general_hilo_operand): New mode attr. | |
26275 | (add<mode>3, sub<mode>3): Use <general_hilo_operand> | |
26276 | instead of <general_operand>. | |
26277 | (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use | |
26278 | x86_64_hilo_general_operand instead of <general_operand>. | |
26279 | ||
26280 | 2016-05-03 Jakub Jelinek <jakub@redhat.com> | |
26281 | ||
26282 | PR tree-optimization/70916 | |
26283 | * tree-if-conv.c (constant_or_ssa_name): Removed. | |
26284 | (fold_build_cond_expr): Use is_gimple_val instead of | |
26285 | constant_or_ssa_name. | |
26286 | ||
26287 | PR tree-optimization/70916 | |
26288 | * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up | |
26289 | if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P. | |
26290 | ||
26291 | PR target/49244 | |
26292 | * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h. | |
26293 | (optimize_atomic_bit_test_and): New function. | |
26294 | (pass_fold_builtins::execute): Use it. | |
26295 | * optabs.def (atomic_bit_test_and_set_optab, | |
26296 | atomic_bit_test_and_complement_optab, | |
26297 | atomic_bit_test_and_reset_optab): New optabs. | |
26298 | * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, | |
26299 | ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns. | |
26300 | * builtins.h (expand_ifn_atomic_bit_test_and): New prototype. | |
26301 | * builtins.c (expand_ifn_atomic_bit_test_and): New function. | |
26302 | * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET, | |
26303 | expand_ATOMIC_BIT_TEST_AND_COMPLEMENT, | |
26304 | expand_ATOMIC_BIT_TEST_AND_RESET): New functions. | |
26305 | * doc/md.texi (atomic_bit_test_and_set@var{mode}, | |
26306 | atomic_bit_test_and_complement@var{mode}, | |
26307 | atomic_bit_test_and_reset@var{mode}): Document. | |
26308 | * config/i386/sync.md (atomic_bit_test_and_set<mode>, | |
26309 | atomic_bit_test_and_complement<mode>, | |
26310 | atomic_bit_test_and_reset<mode>): New expanders. | |
26311 | (atomic_bit_test_and_set<mode>_1, | |
26312 | atomic_bit_test_and_complement<mode>_1, | |
26313 | atomic_bit_test_and_reset<mode>_1): New insns. | |
26314 | ||
26315 | 2016-05-03 Richard Sandiford <richard.sandiford@arm.com> | |
26316 | ||
26317 | PR rtl-optimization/70687 | |
26318 | * combine.c (change_zero_ext): Check for scalar modes. Use wide_int | |
26319 | instead of unsigned HOST_WIDE_INT. | |
26320 | ||
26321 | 2016-05-03 Bernd Schmidt <bschmidt@redhat.com> | |
26322 | ||
26323 | PR rtl-optimization/44281 | |
26324 | * hard-reg-set.h (struct target_hard_regs): New field | |
26325 | x_fixed_nonglobal_reg_set. | |
26326 | (fixed_nonglobal_reg_set): New macro. | |
26327 | * reginfo.c (init_reg_sets_1): Initialize it. | |
26328 | * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead | |
26329 | of fixed_reg_set. | |
26330 | * df-scan.c (df_insn_refs_collect): Asms may reference global regs. | |
26331 | ||
26332 | 2016-05-03 Bin Cheng <bin.cheng@arm.com> | |
26333 | ||
26334 | PR tree-optimization/56541 | |
26335 | * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item. | |
26336 | * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param. | |
26337 | * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro. | |
26338 | (any_complicated_phi): new static variable. | |
26339 | (aggressive_if_conv): delete. | |
26340 | (if_convertible_phi_p): support phis with more than two arguments. | |
26341 | (if_convertible_bb_p): remvoe check on aggressive_if_conv and | |
26342 | critical pred edges. | |
26343 | (ifcvt_split_critical_edges): support phis with more than two | |
26344 | arguments by checking new parameter. only split critical edges | |
26345 | if needed. | |
26346 | (tree_if_conversion): handle simd pragma marked loop using new | |
26347 | local variable aggressive_if_conv. check any_complicated_phi. | |
26348 | ||
26349 | 2016-05-03 Bin Cheng <bin.cheng@arm.com> | |
26350 | ||
26351 | * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on | |
26352 | before using it. | |
26353 | ||
26354 | 2016-05-03 Bin Cheng <bin.cheng@arm.com> | |
26355 | ||
26356 | * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber | |
26357 | cbase. | |
26358 | ||
26359 | 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org> | |
26360 | ||
26361 | * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify. | |
26362 | (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to | |
26363 | define_insn_and_split. | |
26364 | (mulsi3_i): New define_insn_and_split. | |
26365 | (mulsi3_call): Convert to define_insn. | |
26366 | (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact): | |
26367 | Remove constraints. | |
26368 | ||
26369 | 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com> | |
26370 | ||
26371 | * machmode.h (mode_complex): Add support to give the complex mode | |
26372 | for a given mode. | |
26373 | (GET_MODE_COMPLEX_MODE): Likewise. | |
26374 | * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode | |
26375 | stored by build_complex_type and gfc_build_complex_type instead of | |
26376 | trying to figure out the appropriate mode based on the size. Raise | |
26377 | an assertion error, if the type was not set. | |
26378 | * genmodes.c (struct mode_data): Add field for the complex type of | |
26379 | the given type. | |
26380 | (blank_mode): Likewise. | |
26381 | (make_complex_modes): Remember the complex mode created in the | |
26382 | base type. | |
26383 | (emit_mode_complex): Write out the mode_complex array to map a | |
26384 | type mode to the complex version. | |
26385 | (emit_insn_modes_c): Likewise. | |
26386 | * tree.c (build_complex_type): Set the complex type to use before | |
26387 | calling layout_type. | |
26388 | * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add | |
26389 | support for __float128 complex datatypes. | |
26390 | (rs6000_hard_regno_mode_ok): Likewise. | |
26391 | (rs6000_setup_reg_addr_masks): Likewise. | |
26392 | (rs6000_complex_function_value): Likewise. | |
26393 | * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise. | |
26394 | __float128 and __ibm128 complex. | |
26395 | (FLOAT128_IBM_P): Likewise. | |
26396 | (ALTIVEC_ARG_MAX_RETURN): Likewise. | |
26397 | * doc/extend.texi (Additional Floating Types): Document that | |
26398 | -mfloat128 must be used to enable __float128. Document complex | |
26399 | __float128 and __ibm128 support. | |
26400 | ||
26401 | 2016-05-02 Jakub Jelinek <jakub@redhat.com> | |
26402 | ||
26403 | PR target/49244 | |
26404 | * gimple.c (gimple_builtin_call_types_compatible_p): Allow | |
26405 | char/short arguments promoted to int because of promote_prototypes. | |
26406 | ||
26407 | 2016-05-02 Uros Bizjak <ubizjak@gmail.com> | |
26408 | ||
26409 | * config/i386/predicates.md (register_ssemem_operand): New predicate. | |
26410 | * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from | |
26411 | *cmpi<FPCMP:unord><MODEF:mode>_mixed and | |
26412 | *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported | |
26413 | alternatives using "enabled" attribute. Use register_ssemem_operand | |
26414 | as operand 1 predicate. | |
26415 | (*cmpi<unord>xf_i387): Split XFmode pattern from | |
26416 | *cmpi<FPCMP:unord><X87MODEF:mode>_i387. | |
26417 | (*absneg<mode>2): Merge from *absneg<mode>2_mixed and | |
26418 | *absneg<mode>2_i387. Disable unsupported alternatives using | |
26419 | "enabled" attribute. | |
26420 | (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387. | |
26421 | ||
26422 | 2016-05-02 Nathan Sidwell <nathan@codesourcery.com> | |
26423 | ||
26424 | * omp-low.c (lower_oacc_head_tail): Assert there is at least one | |
26425 | marker. | |
26426 | (oacc_loop_process): Check mask for loop termination. | |
26427 | ||
26428 | 2016-05-02 Jan Hubicka <hubicka@ucw.cz> | |
26429 | ||
26430 | * cif-code.def (CIF_THUNK): Add. | |
26431 | * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert | |
26432 | accidental change. | |
26433 | ||
26434 | 2016-05-02 Jan Hubicka <hubicka@ucw.cz> | |
26435 | ||
26436 | * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions | |
26437 | (dump_inline_summary): Dump it. | |
26438 | (fp_expression_p): New predicate. | |
26439 | (estimate_function_body_sizes): Use it. | |
26440 | (inline_merge_summary): Merge fp_expressions. | |
26441 | (inline_read_section): Read fp_expressions. | |
26442 | (inline_write_summary): Write fp_expressions. | |
26443 | * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math | |
26444 | codegen boundary if either caller or callee is !fp_expressions. | |
26445 | * ipa-inline.h (inline_summary): Add fp_expressions. | |
26446 | * ipa-inline-transform.c (inline_call): When inlining !fp_expressions | |
26447 | to fp_expressions be sure the fp generation flags are updated. | |
26448 | ||
26449 | 2016-05-02 Jakub Jelinek <jakub@redhat.com> | |
26450 | ||
26451 | PR rtl-optimization/70467 | |
26452 | * cse.c (cse_insn): Handle no-op MEM moves after folding. | |
26453 | ||
26454 | PR rtl-optimization/70467 | |
26455 | * ipa-pure-const.c (check_call): Handle internal calls even in | |
26456 | ipa mode like in local mode. | |
26457 | ||
26458 | 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
26459 | ||
26460 | * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions. | |
26461 | ||
26462 | 2016-05-02 Marc Glisse <marc.glisse@inria.fr> | |
26463 | ||
26464 | * match.pd (X u< X, X u> X): New transformations. | |
26465 | ||
26466 | 2016-05-02 Marc Glisse <marc.glisse@inria.fr> | |
26467 | ||
26468 | * flag-types.h (enum warn_strict_overflow_code): Move ... | |
26469 | * coretypes.h: ... here. | |
26470 | * fold-const.h (fold_overflow_warning): Declare. | |
26471 | * fold-const.c (fold_overflow_warning): Make non-static. | |
26472 | (fold_comparison): Move the transformation of X +- C1 CMP C2 | |
26473 | into X CMP C2 -+ C1 ... | |
26474 | * match.pd: ... here. | |
26475 | * gimple-fold.c (fold_stmt_1): Protect with | |
26476 | fold_defer_overflow_warnings. | |
26477 | ||
26478 | 2016-05-02 Nathan Sidwell <nathan@codesourcery.com> | |
26479 | ||
26480 | * omp-low.c (struct oacc_loop): Add 'inner' field. | |
26481 | (new_oacc_loop_raw): Initialize it to zero. | |
26482 | (oacc_loop_fixed_partitions): Initialize it. | |
26483 | (oacc_loop_auto_partitions): Partition outermost loop to outermost | |
26484 | available partitioning. | |
26485 | ||
26486 | 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com> | |
26487 | ||
26488 | * config/arc/arc.md (mulsidi3): Change operand 0 predicate to | |
26489 | register_operand. | |
26490 | (umulsidi3): Likewise. | |
26491 | (indirect_jump): Fix jump instruction assembly patterns. | |
26492 | ||
26493 | 2016-05-02 Thomas Schwinge <thomas@codesourcery.com> | |
26494 | ||
26495 | PR target/70860 | |
26496 | * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun. | |
26497 | (nvptx_function_value): Assert non-NULL cfun. | |
26498 | ||
26499 | 2016-05-02 Eric Botcazou <ebotcazou@adacore.com> | |
26500 | ||
26501 | PR rtl-optimization/70886 | |
26502 | * sched-deps.c (estimate_dep_weak): Canonicalize cselib values. | |
26503 | ||
26504 | * cselib.h (rtx_equal_for_cselib_1): Declare. | |
26505 | (rtx_equal_for_cselib_p: New inline function. | |
26506 | * cselib.c (rtx_equal_for_cselib_p): Delete. | |
26507 | (rtx_equal_for_cselib_1): Make public. | |
26508 | ||
26509 | 2016-05-02 Uros Bizjak <ubizjak@gmail.com> | |
26510 | ||
26511 | * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate. | |
26512 | (register_mixssei387nonimm_operand): Remove predicate. | |
26513 | * config/i386/i386.md (*fop_<mode>_comm): Merge from | |
26514 | *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported | |
26515 | alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH | |
26516 | for TARGET_MIX_SSE_I387 alternatives. | |
26517 | (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387. | |
26518 | Disable unsupported alternatives using "enabled" attribute. Use | |
26519 | nonimm_ssenomem_operand as operand 1 predicate. Also check | |
26520 | X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives. | |
26521 | ||
26522 | 2016-05-02 Richard Sandiford <richard.sandiford@arm.com> | |
26523 | ||
26524 | * tree.c (cst_and_fits_in_hwi): Simplify. | |
26525 | ||
26526 | 2016-05-02 Richard Sandiford <richard.sandiford@arm.com> | |
26527 | ||
26528 | * tree.h (wi::to_wide): New function. | |
26529 | * expr.c (expand_expr_real_1): Use wi::to_wide. | |
26530 | * fold-const.c (int_const_binop_1): Likewise. | |
26531 | (extract_muldiv_1): Likewise. | |
26532 | ||
26533 | 2016-05-02 Richard Sandiford <richard.sandiford@arm.com> | |
26534 | ||
26535 | * wide-int.h: Update offset_int and widest_int documentation. | |
26536 | (WI_SIGNED_SHIFT_RESULT): New macro. | |
26537 | (wi::binary_shift): Define signed_shift_result_type for | |
26538 | shifts on offset_int- and widest_int-like types. | |
26539 | (generic_wide_int): Support <<= and >>= if << and >> are supported. | |
26540 | * tree.h (int_bit_position): Use shift operators instead of wi:: | |
26541 | shifts. | |
26542 | * alias.c (adjust_offset_for_component_ref): Likewise. | |
26543 | * expr.c (get_inner_reference): Likewise. | |
26544 | * fold-const.c (fold_comparison): Likewise. | |
26545 | * gimple-fold.c (fold_nonarray_ctor_reference): Likewise. | |
26546 | * gimple-ssa-strength-reduction.c (restructure_reference): Likewise. | |
26547 | * tree-dfa.c (get_ref_base_and_extent): Likewise. | |
26548 | * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise. | |
26549 | (stmt_kills_ref_p): Likewise. | |
26550 | * tree-ssa-ccp.c (bit_value_binop_1): Likewise. | |
26551 | * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise. | |
26552 | * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. | |
26553 | (ao_ref_init_from_vn_reference): Likewise. | |
26554 | ||
26555 | 2016-05-02 Richard Sandiford <richard.sandiford@arm.com> | |
26556 | ||
26557 | * wide-int.h: Update offset_int and widest_int documentation. | |
26558 | (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro. | |
26559 | (wi::binary_traits): Allow ordered comparisons between offset_int and | |
26560 | offset_int, between widest_int and widest_int, and between either | |
26561 | of these types and basic C types. | |
26562 | (operator <, <=, >, >=): Define for the same combinations. | |
26563 | * tree.h (tree_int_cst_lt): Use comparison operators instead | |
26564 | of wi:: comparisons. | |
26565 | (tree_int_cst_le): Likewise. | |
26566 | * gimple-fold.c (fold_array_ctor_reference): Likewise. | |
26567 | (fold_nonarray_ctor_reference): Likewise. | |
26568 | * gimple-ssa-strength-reduction.c (record_increment): Likewise. | |
26569 | * tree-affine.c (aff_comb_cannot_overlap_p): Likewise. | |
26570 | * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise. | |
26571 | * tree-sra.c (completely_scalarize): Likewise. | |
26572 | * tree-ssa-alias.c (stmt_kills_ref_p): Likewise. | |
26573 | * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise. | |
26574 | * tree-vrp.c (extract_range_from_binary_expr_1): Likewise. | |
26575 | (check_for_binary_op_overflow): Likewise. | |
26576 | (search_for_addr_array): Likewise. | |
26577 | * ubsan.c (ubsan_expand_objsize_ifn): Likewise. | |
26578 | ||
26579 | 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com> | |
26580 | ||
26581 | * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword. | |
26582 | (arc_save_restore): Likewise. | |
26583 | (arc_dwarf_register_span): Likewise. | |
26584 | (arc_output_pic_addr_const): Initialize suffix variable. | |
26585 | ||
26586 | 2016-05-02 Martin Liska <mliska@suse.cz> | |
26587 | ||
26588 | * symbol-summary.h (function_summary::function_summary): | |
26589 | Remove checking assert for all cgraph nodes. | |
26590 | (function_summary::get): Check summary_uid. | |
26591 | (symtab_insertion): Check summary_uid. | |
26592 | ||
26593 | 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com> | |
26594 | ||
26595 | * config/arc/arc-protos.h (compact_memory_operand_p): Declare. | |
26596 | * config/arc/arc.c (arc_output_commutative_cond_exec): Consider | |
26597 | bmaskn instruction. | |
26598 | (arc_dwarf_register_span): Remove enum keyword. | |
26599 | (compact_memory_operand_p): New function. | |
26600 | * config/arc/arc.h (reg_class): Add code density register classes. | |
26601 | (REG_CLASS_NAMES): Likewise. | |
26602 | (REG_CLASS_CONTENTS): Likewise. | |
26603 | * config/arc/arc.md (*movqi_insn): Add code density instructions. | |
26604 | (*movhi_insn, *movsi_insn, *movsf_insn): Likewise. | |
26605 | (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise. | |
26606 | (*cmpsi_cc_c_insn, *movsi_ne): Likewise. | |
26607 | * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New | |
26608 | constraints. | |
26609 | (h, Rcd, Rsd, Rzd): New register constraints. | |
26610 | (T): Use compact_memory_operand_p function. | |
26611 | * config/arc/predicates.md (compact_load_memory_operand): Remove. | |
26612 | ||
26613 | 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org> | |
26614 | ||
26615 | * config/sh/sh.md (*negnegt, *movtt): Remove. | |
26616 | ||
26617 | 2016-05-02 Marek Polacek <polacek@redhat.com> | |
26618 | Tom de Vries <tom@codesourcery.com> | |
26619 | ||
26620 | PR tree-optimization/70700 | |
26621 | * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids | |
26622 | bigger than FIRST_REF_NODE. | |
26623 | ||
26624 | 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org> | |
26625 | ||
26626 | PR target/52898 | |
26627 | * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4, | |
26628 | TARGET_CMPEQDI_T. | |
26629 | (prepare_cbranch_operands): Don't use scratch register. Assume that | |
26630 | function is used when pseudos can be created. | |
26631 | (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths. | |
26632 | * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created. | |
26633 | (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4 | |
26634 | define_expand. Allow it only when pseudos can be created. | |
26635 | * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete. | |
26636 | ||
26637 | 2016-05-01 Uros Bizjak <ubizjak@gmail.com> | |
26638 | ||
26639 | * config/i386/constraints.md (BC): Only allow -1 operands. | |
26640 | * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative. | |
26641 | Add "enabled" attribute. Update XI mode attribute calculation. | |
26642 | * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative. | |
26643 | (*movoi_internal_avx): Update XI mode attribute calculation. | |
26644 | (*movti_internal): Ditto. | |
26645 | ||
26646 | 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org> | |
26647 | ||
26648 | * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4, | |
26649 | cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints. | |
26650 | ||
26651 | 2016-05-01 Eric Botcazou <ebotcazou@adacore.com> | |
26652 | ||
26653 | * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch | |
26654 | statement on instruction code. Remove trailing spaces. | |
26655 | (altivec_expand_stv_builtin): Likewise. | |
26656 | ||
26657 | 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org> | |
26658 | ||
26659 | * config/sh/sh.h (TARGET_SH4): Remove and use default implementation. | |
26660 | (TARGET_FPU_DOUBLE): Simplify. | |
26661 | (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace | |
26662 | 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'. | |
26663 | * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions | |
26664 | with 'TARGET_FPU_DOUBLE'. | |
26665 | * config/sh/sh.md: Likewise. | |
26666 | ||
26667 | 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp> | |
26668 | ||
26669 | * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT, | |
26670 | SH_DIV_STR_FOR_SIZE): Remove. | |
26671 | * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT, | |
26672 | SH_DIV_STR_FOR_SIZE): Remove. | |
26673 | ||
26674 | 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org> | |
26675 | ||
26676 | * config/sh/predicates.md (any_register_operand, zero_extend_operand, | |
26677 | logical_reg_operand): Delete. | |
26678 | (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand, | |
26679 | arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand, | |
26680 | logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using | |
26681 | match_operand and match_test. | |
26682 | (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local | |
26683 | variables on their first use. Return bool values. | |
26684 | * config/sh/sh.h (LOAD_EXTEND_OP): Update comment. | |
26685 | * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and | |
26686 | arith_reg_operand for input operand. Remove empty constraints. | |
26687 | (xorsi3): Delete. | |
26688 | (*xorsi3_compact): Rename to xorsi3. | |
26689 | (zero_extend<mode>si2): Use arith_reg_operand for input operand. | |
26690 | (*zero_extend<mode>si2_disp_mem): Update comment. | |
26691 | (mov_nop): Delete. | |
26692 | ||
26693 | 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org> | |
26694 | ||
26695 | * config/sh/t-sh: Remove SH5 support. | |
26696 | * config.gcc: Likewise. | |
26697 | * configure: Likewise. | |
26698 | ||
26699 | 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
26700 | ||
26701 | * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus. | |
26702 | ||
26703 | 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org> | |
26704 | ||
26705 | * config/sh/sh.c (register_sh_passes, sh_option_override, | |
26706 | sh_print_operand, prepare_move_operands, | |
26707 | sh_can_follow_jump): Remove TARGET_SH1 checks. | |
26708 | * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P, | |
26709 | PROMOTE_MODE): Likewise. | |
26710 | * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3, | |
26711 | movdi): Likewise. | |
26712 | ||
26713 | 2016-04-30 Alan Modra <amodra@gmail.com> | |
26714 | ||
26715 | * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline | |
26716 | restoring when fixed_reg_p, but allow out-of-line or stmw save. | |
26717 | Check for user regs later to avoid unnecessary looping over regs. | |
26718 | Merge user reg check with non-saved reg check. Don't force | |
26719 | inline VR restore when static chain used. | |
26720 | (rs6000_frame_related): Omit eh_frame info for user regs when | |
26721 | saving. | |
26722 | (fixed_regs_p): Delete. | |
26723 | ||
26724 | 2016-04-30 Alan Modra <amodra@gmail.com> | |
26725 | ||
26726 | * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with.. | |
26727 | (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum. | |
26728 | Update all uses. | |
26729 | ||
26730 | 2016-04-30 Alan Modra <amodra@gmail.com> | |
26731 | ||
26732 | PR target/69645 | |
26733 | * config/rs6000/rs6000.c (fixed_reg_p): New function. | |
26734 | (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p. | |
26735 | Update all uses. | |
26736 | ||
26737 | 2016-04-30 Alan Modra <amodra@gmail.com> | |
26738 | ||
26739 | * config/rs6000/rs6000.c (rs6000_conditional_register_usage): | |
26740 | Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with | |
26741 | flag_pic test for Darwin. | |
26742 | ||
26743 | 2016-04-30 Alan Modra <amodra@gmail.com> | |
26744 | ||
26745 | * regs.h (struct reg_info_t): Delete freq_calls_crossed and | |
26746 | throw_calls_crossed. | |
26747 | (REG_FREQ_CALLS_CROSSED): Delete. | |
26748 | (REG_N_THROWING_CALLS_CROSSED): Delete. | |
26749 | * regstat.c (regstat_bb_compute_ri): Don't calculate | |
26750 | REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED. | |
26751 | (dump_reg_info): Don't print call cross frequency. | |
26752 | * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED | |
26753 | and REG_N_THROWING_CALLS_CROSSED. | |
26754 | ||
26755 | 2016-04-30 Alan Modra <amodra@gmail.com> | |
26756 | ||
26757 | * regs.h (struct reg_info_t): Delete live_length. | |
26758 | (REG_LIVE_LENGTH): Delete macro. | |
26759 | * regstat.c (regstat_bb_compute_ri): Delete artificial_uses, | |
26760 | local_live, local_processed and local_live_last_luid params. | |
26761 | Replace bb_index param with bb. Don't set REG_LIVE_LENGTH. | |
26762 | Formatting fixes. | |
26763 | (regstat_compute_ri): Adjust for above. Don't set | |
26764 | REG_LIVE_LENGTH. | |
26765 | (dump_reg_info): Don't print live length. | |
26766 | * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH | |
26767 | with test of setjmp_crosses. Don't set REG_LIVE_LENGTH. | |
26768 | Localize loop_depth var. | |
26769 | ||
26770 | 2016-04-30 Alan Modra <amodra@gmail.com> | |
26771 | ||
26772 | * ira.c (enum valid_equiv): New. | |
26773 | (validate_equiv_mem): Return enum. | |
26774 | (update_equiv_mem): Create replacement in more cases. | |
26775 | (add_store_equivs): Update validate_equiv_mem call. | |
26776 | ||
26777 | 2016-04-30 Alan Modra <amodra@gmail.com> | |
26778 | ||
26779 | * ira.c (combine_and_move_insns): Rather than scanning insns, | |
26780 | use DF infrastucture to find use and def insns. | |
26781 | ||
26782 | 2016-04-30 Alan Modra <amodra@gmail.com> | |
26783 | ||
26784 | ira.c (combine_and_move_insns): Move invariant conditions.. | |
26785 | (ira.c): ..to here. Call combine_and_move_insns before | |
26786 | add_store_equivs. Call grow_reg_equivs later. Allocate | |
26787 | req_equiv later using max_reg_num() rather than global max_regno. | |
26788 | (contains_replace_regs): Delete. | |
26789 | (add_store_equivs): Remove contains_replace_regs test. | |
26790 | ||
26791 | 2016-04-30 Alan Modra <amodra@gmail.com> | |
26792 | ||
26793 | * ira.c (struct equiv_mem_data): New. | |
26794 | (equiv_mem, equiv_mem_modified): Delete static vars. | |
26795 | (validate_equiv_mem_from_store): Use "data" param to communicate.. | |
26796 | (validate_equiv_mem): ..from here. | |
26797 | ||
26798 | 2016-04-30 Alan Modra <amodra@gmail.com> | |
26799 | ||
26800 | * ira.c (add_store_equivs, combine_and_move_insns): New functions, | |
26801 | split out from.. | |
26802 | (update_reg_equivs): ..here. Move allocation and freeing of | |
26803 | reg_equiv, and calls to grow_reg_equivs, init_alias_analysis, | |
26804 | end_alias_analysis to.. | |
26805 | (ira): ..here. | |
26806 | ||
26807 | 2016-04-30 Alan Modra <amodra@gmail.com> | |
26808 | ||
26809 | * ira.c (pdx_subregs): Delete. | |
26810 | (struct equivalence): Add pdx_subregs field. | |
26811 | (set_paradoxical_subreg): Remove pdx_subregs param. Update | |
26812 | pdx_subregs access. | |
26813 | (update_equiv_regs): Don't create or free pdx_subregs. Update | |
26814 | pdx_subregs access. | |
26815 | ||
26816 | 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
26817 | ||
26818 | * config/rs6000/altivec.h: Change definitions of vec_xl and | |
26819 | vec_xst. | |
26820 | * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New. | |
26821 | (LD_ELEMREV_V2DI): New. | |
26822 | (LD_ELEMREV_V4SF): New. | |
26823 | (LD_ELEMREV_V4SI): New. | |
26824 | (LD_ELEMREV_V8HI): New. | |
26825 | (LD_ELEMREV_V16QI): New. | |
26826 | (ST_ELEMREV_V2DF): New. | |
26827 | (ST_ELEMREV_V2DI): New. | |
26828 | (ST_ELEMREV_V4SF): New. | |
26829 | (ST_ELEMREV_V4SI): New. | |
26830 | (ST_ELEMREV_V8HI): New. | |
26831 | (ST_ELEMREV_V16QI): New. | |
26832 | (XL): New. | |
26833 | (XST): New. | |
26834 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
26835 | descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST. | |
26836 | * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from | |
26837 | TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR. | |
26838 | (altivec_expand_builtin): Add handling for | |
26839 | VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>. | |
26840 | (rs6000_invalid_builtin): Add error-checking for | |
26841 | RS6000_BTM_P9_VECTOR. | |
26842 | (altivec_init_builtins): Define builtins used to implement vec_xl | |
26843 | and vec_xst. | |
26844 | (rs6000_builtin_mask_names): Define power9-vector. | |
26845 | * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define. | |
26846 | (RS6000_BTM_P9_VECTOR): Define. | |
26847 | (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR. | |
26848 | * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn. | |
26849 | (vsx_ld_elemrev_v2df): Likewise. | |
26850 | (vsx_ld_elemrev_v4sf): Likewise. | |
26851 | (vsx_ld_elemrev_v4si): Likewise. | |
26852 | (vsx_ld_elemrev_v8hi): Likewise. | |
26853 | (vsx_ld_elemrev_v16qi): Likewise. | |
26854 | (vsx_st_elemrev_v2df): Likewise. | |
26855 | (vsx_st_elemrev_v2di): Likewise. | |
26856 | (vsx_st_elemrev_v4sf): Likewise. | |
26857 | (vsx_st_elemrev_v4si): Likewise. | |
26858 | (vsx_st_elemrev_v8hi): Likewise. | |
26859 | (vsx_st_elemrev_v16qi): Likewise. | |
26860 | * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct | |
26861 | grammar. | |
26862 | ||
26863 | 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org> | |
26864 | ||
26865 | * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split | |
26866 | out into ... | |
26867 | (simplify_control_stmt_condition_1): ... here. Recurse into | |
26868 | BIT_AND_EXPRs and BIT_IOR_EXPRs. | |
26869 | ||
26870 | 2016-04-29 David Edelsohn <dje.gcc@gmail.com> | |
26871 | ||
26872 | PR target/69810 | |
26873 | * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode. | |
26874 | (zero_extendqi<mode>2_dot): Revert earlier conversion from | |
26875 | define_insn_and_split to define_insn. | |
26876 | (zero_extendqi<mode>2_dot2): Same. | |
26877 | (extendqi<mode>2_dot): Same. | |
26878 | (extendqi<mode>2_dot2): Same. | |
26879 | ||
26880 | 2016-04-29 Uros Bizjak <ubizjak@gmail.com> | |
26881 | ||
26882 | * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK. | |
26883 | (probe_stack): New expander. | |
26884 | (probe_stack_<mode>): New insn pattern. | |
26885 | ||
26886 | 2016-04-29 Uros Bizjak <ubizjak@gmail.com> | |
26887 | ||
26888 | * config/i386/i386.md | |
26889 | (operations with memory inputs setting flags peephole2): | |
26890 | Remove uneeded REG_P checks. Cleanup pattern generation. | |
26891 | ||
26892 | 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com> | |
26893 | ||
26894 | * tree-vect-loop.c (vect_transform_loop): Fix | |
26895 | nb_iterations_upper_bound computation for vectorized loop. | |
26896 | ||
26897 | 2016-04-29 Marek Polacek <polacek@redhat.com> | |
26898 | Jakub Jelinek <jakub@redhat.com> | |
26899 | ||
26900 | PR sanitizer/70342 | |
26901 | * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use | |
26902 | TARGET_EXPR_SLOT as a base. | |
26903 | ||
26904 | 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com> | |
26905 | ||
26906 | * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint | |
26907 | with 'rCm2' constraints to limit possible immediate size. | |
26908 | (*load_zeroextendqisi_update): Likewise. | |
26909 | (*load_signextendqisi_update): Likewise. | |
26910 | (*loadhi_update): Likewise. | |
26911 | (*load_zeroextendhisi_update): Likewise. | |
26912 | (*load_signextendhisi_update): Likewise. | |
26913 | (*loadsi_update): Likewise. | |
26914 | (*loadsf_update): Likewise. | |
26915 | ||
26916 | 2016-04-29 Uros Bizjak <ubizjak@gmail.com> | |
26917 | ||
26918 | * config/i386/predicates.md (constm1_operand): Fix comparison. | |
26919 | ||
26920 | 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com> | |
26921 | ||
26922 | * testsuite/gcc.target/arc/ieee_eq.c: New test. | |
26923 | ||
26924 | 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org> | |
26925 | ||
26926 | * common/config/sh/sh-common.c (sh_option_optimization_table): Remove | |
26927 | remaining SH5 related settings. | |
26928 | * config/sh/sh-protos.h (shmedia_cleanup_truncate, | |
26929 | shmedia_prepare_call_address): Delete. | |
26930 | * config/sh/sh.c (sh_print_operand, output_stack_adjust, | |
26931 | DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments. | |
26932 | * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC, | |
26933 | UNSUPPORTED_SH2A): Remove m5 checks. | |
26934 | (sh_divide_strategy_e): Remove SH5 division strategies. | |
26935 | (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default. | |
26936 | * config/sh/sh.md (divsf3): Reinstate define_expand pattern. | |
26937 | ||
26938 | 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
26939 | ||
26940 | * config/s390/s390.c (s390_rtx_costs): Update documentation. | |
26941 | ||
26942 | 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
26943 | ||
26944 | * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder. | |
26945 | * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"): | |
26946 | Change lder to ldr. | |
26947 | * config/s390/vector.md ("mov<mode>"): Likewise. | |
26948 | ||
26949 | 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com> | |
26950 | ||
26951 | * config/s390/constraints.md ("U", "W"): Invoke | |
26952 | s390_mem_constraint with "ZR" and "ZT". | |
26953 | * config/s390/s390.c (s390_check_qrst_address): Reject invalid | |
26954 | addresses when using LRA. Accept also short displacements for S | |
26955 | and T constraints. Do not check for long displacement target for | |
26956 | S and T constraints. | |
26957 | (s390_mem_constraint): Remove handling of U and W constraints. | |
26958 | * config/s390/s390.md (various patterns): Remove the short | |
26959 | displacement constraints (Q and R) if a long displacement | |
26960 | constraint is present. Add longdisp as required CPU capability. | |
26961 | * config/s390/vector.md: Likewise. | |
26962 | * config/s390/vx-builtins.md: Likewise. | |
26963 | ||
26964 | 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> | |
26965 | ||
26966 | PR target/60040 | |
26967 | * reload1.c (reload): Call finish_spills before | |
26968 | restarting reload loop. Skip select_reload_regs | |
26969 | if update_eliminables_and_spill returns true. | |
26970 | ||
26971 | 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com> | |
26972 | ||
26973 | * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define. | |
26974 | * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate. | |
26975 | (umulhisi3_imm): Update predicates and constraint letters. | |
26976 | (umulhisi3_reg): Declare instruction as commutative. | |
26977 | * config/arc/constraints.md (J12, J16): New constraints. | |
26978 | * config/arc/predicates.md (short_unsigned_const_operand): New | |
26979 | predicate. | |
26980 | (arc_short_operand): Likewise. | |
26981 | * testsuite/gcc.target/arc/umulsihi3_z.c: New file. | |
26982 | ||
26983 | 2016-04-29 Richard Biener <rguenther@suse.de> | |
26984 | ||
26985 | PR tree-optimization/13962 | |
26986 | PR tree-optimization/65686 | |
26987 | * tree-ssa-alias.h (ptrs_compare_unequal): Declare. | |
26988 | * tree-ssa-alias.c (ptrs_compare_unequal): New function | |
26989 | using PTA to compare pointers. | |
26990 | * match.pd: Add pattern for pointer equality compare simplification | |
26991 | using ptrs_compare_unequal. | |
26992 | ||
26993 | 2016-04-29 Richard Biener <rguenther@suse.de> | |
26994 | ||
26995 | * stor-layout.c (layout_type): Do not build a pointer-to-element | |
26996 | type for arrays. | |
26997 | ||
26998 | 2016-04-29 Uros Bizjak <ubizjak@gmail.com> | |
26999 | ||
27000 | * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2): | |
27001 | Use SWI mode iterator. Use general_reg_operand predicate. | |
27002 | (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split | |
27003 | peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand | |
27004 | predicates. | |
27005 | ||
27006 | 2016-04-29 Jakub Jelinek <jakub@redhat.com> | |
27007 | ||
27008 | PR middle-end/70843 | |
27009 | * fold-const.c (operand_equal_p): Don't verify hash value equality | |
27010 | if arg0 == arg1. | |
27011 | * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK | |
27012 | and OMP_CLAUSE. | |
27013 | ||
27014 | 2016-04-28 Jakub Jelinek <jakub@redhat.com> | |
27015 | ||
27016 | PR target/70858 | |
27017 | * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT | |
27018 | to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64. | |
27019 | (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64, | |
27020 | __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di, | |
27021 | __builtin_ia32_pdep_di and __builtin_ia32_pext_di. | |
27022 | ||
27023 | 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org> | |
27024 | ||
27025 | * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr | |
27026 | to info. Don't initialize separate fields to 0. Clean up | |
27027 | formatting a bit. | |
27028 | ||
27029 | 2016-04-28 Uros Bizjak <ubizjak@gmail.com> | |
27030 | ||
27031 | * config/i386/i386.md (peephole2s for operations with memory inputs): | |
27032 | Use SWI mode iterator. | |
27033 | (peephole2s for operations with memory outputs): Ditto. | |
27034 | Do not check for stack checking probe. | |
27035 | ||
27036 | (probe_stack): Remove expander. | |
27037 | ||
27038 | 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com> | |
27039 | Andrew Burgess <andrew.burgess@embecosm.com> | |
27040 | ||
27041 | * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L' | |
27042 | operands as 32-bits. | |
27043 | ||
27044 | 2016-04-28 Jason Merrill <jason@redhat.com> | |
27045 | ||
27046 | * gdbinit.in: Skip line-map.h. | |
27047 | ||
27048 | 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com> | |
27049 | Andrew Burgess <andrew.burgess@embecosm.com> | |
27050 | ||
27051 | * config/arc/arc.c (arc_conditional_register_usage): Take | |
27052 | TARGET_RRQ_CLASS into account. | |
27053 | (arc_print_operand): Support printing 'p' and 's' operands. | |
27054 | * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default | |
27055 | as 0. | |
27056 | (TARGET_RRQ_CLASS): Define. | |
27057 | (IS_POWEROF2_OR_0_P): Define. | |
27058 | * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi | |
27059 | alternatives. | |
27060 | (*tst_movb): New define_insn. | |
27061 | (*tst): Avoid recognition if it could prevent '*tst_movb' | |
27062 | combination; replace c/CnL with c/Chs alternative. | |
27063 | (*tst_bitfield_tst): New define_insn. | |
27064 | (*tst_bitfield_asr): New define_insn. | |
27065 | (*tst_bitfield): New define_insn. | |
27066 | (andsi3_i): Add Rrq variant. | |
27067 | (extzv): New define_expand. | |
27068 | (insv): New define_expand. | |
27069 | (*insv_i): New define_insn. | |
27070 | (*movb): New define_insn. | |
27071 | (*movb_signed): New define_insn. | |
27072 | (*movb_high): New define_insn. | |
27073 | (*movb_high_signed): New define_insn. | |
27074 | (*movb_high_signed + 1): New define_split pattern. | |
27075 | (*mrgb): New define_insn. | |
27076 | (*mrgb + 1): New define_peephole2 pattern. | |
27077 | (*mrgb + 2): New define_peephole2 pattern. | |
27078 | * config/arc/arc.opt (mbitops): New option for nps400, uses | |
27079 | TARGET_NPS_BITOPS_DEFAULT. | |
27080 | * config/arc/constraints.md (q): Make register class conditional. | |
27081 | (Rrq): New register constraint. | |
27082 | (Chs): New constraint. | |
27083 | (Clo): New constraint. | |
27084 | (Chi): New constraint. | |
27085 | (Cbf): New constraint. | |
27086 | (Cbn): New constraint. | |
27087 | (C18): New constraint. | |
27088 | (Cbi): New constraint. | |
27089 | ||
27090 | 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org> | |
27091 | ||
27092 | * cfganal.c (bitmap_intersection_of_succs): Delete assert checking | |
27093 | dst->popcount. | |
27094 | (bitmap_intersection_of_preds): Ditto. | |
27095 | (bitmap_union_of_succs): Ditto. | |
27096 | (bitmap_union_of_preds): Ditto. | |
27097 | * sbitmap.c (do_popcount): Delete. | |
27098 | (BITMAP_DEBUGGING): Delete. | |
27099 | (sbitmap_verify_popcount): Delete. | |
27100 | (sbitmap_alloc): Don't initialize the popcount field. | |
27101 | (sbitmap_alloc_with_popcount): Delete. | |
27102 | (sbitmap_resize): Don't resize the popcount array. | |
27103 | (sbitmap_vector_alloc): Don't initialize the popcount field. | |
27104 | (bitmap_copy): Don't copy the popcount array. | |
27105 | (bitmap_clear): Don't clear the popcount array. | |
27106 | (bitmap_clear): Delete the popcount array handling. | |
27107 | (bitmap_ior_and_compl): Delete the popcount assert. | |
27108 | (bitmap_not): Ditto. | |
27109 | (bitmap_and_compl): Ditto. | |
27110 | (bitmap_and): Delete the popcount array handling. | |
27111 | (bitmap_xor): Ditto. | |
27112 | (bitmap_ior): Ditto. | |
27113 | (bitmap_or_and): Delete the popcount assert. | |
27114 | (bitmap_and_or): Ditto. | |
27115 | (popcount_table): Delete. | |
27116 | (sbitmap_elt_popcount): Delete. | |
27117 | * sbitmap.h (simple_bitmap_def): Delete the popcount field. | |
27118 | (bitmap_set_bit): Delete the popcount assert. | |
27119 | (bitmap_clear_bit): Ditto. | |
27120 | (sbitmap_free): Don't free the popcount array. | |
27121 | (sbitmap_alloc_with_popcount): Delete declaration. | |
27122 | (sbitmap_popcount): Ditto. | |
27123 | ||
27124 | 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com> | |
27125 | Andrew Burgess <andrew.burgess@embecosm.com> | |
27126 | ||
27127 | * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define. | |
27128 | (TARGET_NPS_CMEM_DEFAULT): Provide default definition. | |
27129 | * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address. | |
27130 | (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated. | |
27131 | * config/arc/arc.opt (mcmem): New option. | |
27132 | * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative, | |
27133 | supply length for r/m alternative. | |
27134 | (*extendqisi2_ac): Likewise. | |
27135 | (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and | |
27136 | r/Uex alternative. | |
27137 | (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives. | |
27138 | (movhi_insn): Likewise. | |
27139 | (movsi_insn): Add r/Ucm,Ucm/w alternatives. | |
27140 | (*zero_extendqihi2_i): Add r/Ucm alternative. | |
27141 | (*zero_extendqisi2_ac): Likewise. | |
27142 | (*zero_extendhisi2_i): Likewise. | |
27143 | * config/arc/constraints.md (Uex): New memory constraint. | |
27144 | (Ucm): New define_constraint. | |
27145 | * config/arc/predicates.md (long_immediate_loadstore_operand): | |
27146 | Return 0 for MEM with cmem_address address. | |
27147 | (cmem_address_0): New predicates. | |
27148 | (cmem_address_1): Likewise. | |
27149 | (cmem_address_2): Likewise. | |
27150 | (cmem_address): Likewise. | |
27151 | ||
27152 | 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org> | |
27153 | ||
27154 | * config/rs6000/rs6000.c (machine_function): Rename | |
27155 | insn_chain_scanned_p to spe_insn_chain_scanned_p. | |
27156 | (rs6000_stack_info): Adjust. | |
27157 | ||
27158 | 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com> | |
27159 | Andrew Burgess <andrew.burgess@embecosm.com> | |
27160 | ||
27161 | * config/arc/constraints.md (Usd): Convert to define_constraint. | |
27162 | (Us<): Likewise. | |
27163 | (Us>): Likewise. | |
27164 | ||
27165 | 2016-04-28 Jakub Jelinek <jakub@redhat.com> | |
27166 | ||
27167 | PR target/70821 | |
27168 | * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>): | |
27169 | Add new peephole2 where the first insn is *mov<mode>_or instead of | |
27170 | *mov<mode>_internal. | |
27171 | ||
27172 | 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org> | |
27173 | ||
27174 | * tracer.c (bb_seen): Make static. | |
27175 | ||
27176 | 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com> | |
27177 | ||
27178 | * common/config/arc/arc-common.c (arc_handle_option): Add NPS400 | |
27179 | support, setup defaults. | |
27180 | * config/arc/arc-opts.h (enum processor_type): Add NPS400. | |
27181 | * config/arc/arc.c (arc_init): Add NPS400 support. | |
27182 | * config/arc/arc.h (CPP_SPEC): Add NPS400 defines. | |
27183 | (TARGET_ARC700): NPS400 is also an ARC700. | |
27184 | * config/arc/arc.opt: Add NPS400 options to -mcpu=. | |
27185 | ||
27186 | 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org> | |
27187 | ||
27188 | PR target/70668 | |
27189 | * config/nds32/nds32.md (casesi): Don't access the operands array | |
27190 | out of bounds. | |
27191 | ||
27192 | 2016-04-28 Uros Bizjak <ubizjak@gmail.com> | |
27193 | ||
27194 | * config/i386/i386.md (zeroing peephole2): Use general_reg_operand. | |
27195 | (or $-1,reg peephole2): Ditto. | |
27196 | (strict_low_part zeroing peephole2): Use SWI12 mode iterator. | |
27197 | ||
27198 | 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de> | |
27199 | ||
27200 | * doc/extend.texi (Common Function Attributes) [optimize]: | |
27201 | Discourage use of the optimize attribute. | |
27202 | ||
27203 | 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com> | |
27204 | ||
27205 | * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a | |
27206 | special case builtin. | |
27207 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove | |
27208 | ALTIVEC_BUILTIN_VEC_ADDE. | |
27209 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add | |
27210 | support for ALTIVEC_BUILTIN_VEC_ADDE. | |
27211 | * config/rs6000/rs6000.c (altivec_init_builtins): Add definition | |
27212 | for __builtin_vec_adde. | |
27213 | ||
27214 | 2016-04-28 Jakub Jelinek <jakub@redhat.com> | |
27215 | ||
27216 | * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative. | |
27217 | * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise. | |
27218 | ||
27219 | 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
27220 | ||
27221 | PR testsuite/70595 | |
27222 | * doc/sourcebuild.texi (Effective-Target Keywords, Other | |
27223 | attributes): Document cilkplus_runtime. | |
27224 | ||
27225 | 2016-04-28 Martin Jambor <mjambor@suse.cz> | |
27226 | ||
27227 | * tree-cfg.c (verify_expr): Verify that local declarations belong to | |
27228 | this function. Call verify_expr on MEM_REFs and bases of other | |
27229 | handled_components. | |
27230 | ||
27231 | 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
27232 | ||
27233 | * internal-fn.c (expand_arith_overflow): Convert preprocessor check | |
27234 | for WORD_REGISTER_OPERATIONS to runtime check. | |
27235 | ||
27236 | 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com> | |
27237 | ||
27238 | * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler. | |
27239 | ||
27240 | 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com> | |
27241 | ||
27242 | * config/arc/arc.c (arc_process_double_reg_moves): Fix for | |
27243 | big-endian compilation. | |
27244 | * config/arc/arc.md (addf3): Likewise. | |
27245 | (subdf3): Likewise. | |
27246 | (muldf3): Likewise. | |
27247 | ||
27248 | 2016-04-28 Richard Biener <rguenther@suse.de> | |
27249 | ||
27250 | PR tree-optimization/70840 | |
27251 | * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even; | |
27252 | Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant; | |
27253 | Mark x * pow(x,c) -> pow(x,c+1) commutative. | |
27254 | Add powi(x,y) * powi(z,y) -> powi(x*z,y). | |
27255 | ||
27256 | 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
27257 | ||
27258 | * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0 | |
27259 | and explain why in a comment. | |
27260 | ||
27261 | 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com> | |
27262 | ||
27263 | * config/arc/arc.md (cpu_facility): Add fpx variant. | |
27264 | (subdf3): Prohibit use reverse sub when assist operations option | |
27265 | is enabled. | |
27266 | * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub | |
27267 | instructions only when FPX is enabled. | |
27268 | * testsuite/gcc.target/arc/trsub.c: New test. | |
27269 | ||
27270 | 2016-04-28 Uros Bizjak <ubizjak@gmail.com> | |
27271 | ||
27272 | * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for | |
27273 | mult_operator when calculating "type" attribute. | |
27274 | (*fop_<mode>_1_i387): Ditto. | |
27275 | (*fop_xf_1_i387): Ditto. | |
27276 | (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2. | |
27277 | Use std::swap to swap operands. Use RTL expressions to generate | |
27278 | converted pattern. | |
27279 | ||
27280 | 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com> | |
27281 | Joern Rennecke <joern.rennecke@embecosm.com> | |
27282 | ||
27283 | * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove | |
27284 | declaration. | |
27285 | (emit_pic_move): Remove. | |
27286 | (arc_eh_uses, insn_is_tls_gd_dispatch): Declare. | |
27287 | * config/arc/arc.c (emit_pic_move): Removed. | |
27288 | (TARGET_HAVE_TLS): Define. | |
27289 | (arc_conditional_register_usage): Test for arc_tp_regno. | |
27290 | (arc_print_operand, arc_print_operand_address): Handle TLS | |
27291 | unspecs. | |
27292 | (arc_needs_pcl_p): New function. | |
27293 | (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p. | |
27294 | (arc_legitimate_pic_addr_p): Handle TLS unspecs. | |
27295 | (arc_raw_symbolic_reference_mentioned_p): Likewise. | |
27296 | (arc_get_tp, arc_emit_call_tls_get_addr): New function. | |
27297 | (arc_legitimize_tls_address): Likewise. | |
27298 | (DTPOFF_ZERO_SYM): Define. | |
27299 | (arc_legitimize_pic_address): Make it static, handle TLS cases. | |
27300 | (arc_output_pic_addr_const): Print TLS unspecs. | |
27301 | (prepare_pic_move): New function, replaces emit_pic_move. | |
27302 | (arc_legitimate_constant_p): Handle TLS unspecs. | |
27303 | (arc_legitimate_address_p): Likewise. | |
27304 | (arc_rewrite_small_data_p): Use assert for TLS constants. | |
27305 | (prepare_move_operands): Use prepare_pic_move. | |
27306 | (arc_legitimize_address): Legitimize tls addresses. | |
27307 | (arc_epilogue_uses): Check for arc_tp_regno. | |
27308 | (arc_eh_uses, insn_is_tls_gd_dispatch): New function. | |
27309 | * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS): | |
27310 | Define. | |
27311 | [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC): | |
27312 | Likewise. | |
27313 | [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add | |
27314 | %(arc_tls_extra_start_spec). | |
27315 | (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__. | |
27316 | (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno. | |
27317 | (EH_USES): Define. | |
27318 | (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch. | |
27319 | * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE) | |
27320 | (UNSPEC_TLS_OFF): Add. | |
27321 | (R10_REG): Define. | |
27322 | (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch) | |
27323 | (get_thread_pointersi): New patterns. | |
27324 | * config/arc/arc.opt (mtp-regno): New option. | |
27325 | * config/arc/predicates.md (move_src_operand): Handle TLS symbols. | |
27326 | (move_dest_operand): Likewise. | |
27327 | * configure: Regenerate. | |
27328 | * configure.ac: Add arc*-*-* case to test for tls. | |
27329 | * doc/invoke.texi (ARC options): Document mtp-regno. | |
27330 | ||
27331 | 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com> | |
27332 | ||
27333 | * config/arc/arc.c (arc_vector_mode_supported_p): Add support for | |
27334 | the new ARC HS SIMD instructions. | |
27335 | (arc_preferred_simd_mode): New function. | |
27336 | (arc_autovectorize_vector_sizes): Likewise. | |
27337 | (TARGET_VECTORIZE_PREFERRED_SIMD_MODE) | |
27338 | (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define. | |
27339 | (arc_init_reg_tables): Accept new ARC HS SIMD modes. | |
27340 | (arc_init_builtins): Add new SIMD builtin types. | |
27341 | (arc_split_move): Handle 64 bit vector moves. | |
27342 | * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD) | |
27343 | (TARGET_PLUS_QMACW): Define. | |
27344 | * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH) | |
27345 | (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H) | |
27346 | (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H) | |
27347 | (VSUBADD4H): New builtins. | |
27348 | * config/arc/simdext.md: Add new ARC HS SIMD instructions. | |
27349 | * testsuite/gcc.target/arc/builtin_simdarc.c: New file. | |
27350 | ||
27351 | 2016-04-28 Eduard Sanou <dhole@openmailbox.org> | |
27352 | Matthias Klose <doko@debian.org> | |
27353 | ||
27354 | * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable. | |
27355 | ||
27356 | 2016-04-28 Richard Biener <rguenther@suse.de> | |
27357 | ||
27358 | PR middle-end/70777 | |
27359 | * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0) | |
27360 | canonicalization. | |
27361 | ||
27362 | 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org> | |
27363 | ||
27364 | * common/config/sh/sh-common.c: Remove SH5 support. | |
27365 | * config/sh/constraints.md: Likewise. | |
27366 | * config/sh/config/sh/elf.h: Likewise. | |
27367 | * config/sh/linux.h: Likewise. | |
27368 | * config/sh/netbsd-elf.h: Likewise. | |
27369 | * config/sh/predicates.md: Likewise. | |
27370 | * config/sh/sh-c.c: Likewise. | |
27371 | * config/sh/sh-protos.h: Likewise. | |
27372 | * config/sh/sh.c: Likewise. | |
27373 | * config/sh/sh.h: Likewise. | |
27374 | * config/sh/sh.md: Likewise. | |
27375 | * config/sh/sh.opt: Likewise. | |
27376 | * config/sh/sync.md: Likewise. | |
27377 | * config/sh/sh64.h: Delete. | |
27378 | * config/sh/shmedia.h: Likewise. | |
27379 | * config/sh/shmedia.md: Likewise. | |
27380 | * config/sh/sshmedia.h: Likewise. | |
27381 | * config/sh/t-netbsd-sh5-64: Likewise. | |
27382 | * config/sh/t-sh64: Likewise. | |
27383 | * config/sh/ushmedia.h: Likewise. | |
27384 | ||
27385 | 2016-04-28 Uros Bizjak <ubizjak@gmail.com> | |
27386 | ||
27387 | * config/i386/i386.md (sign_extend to memory peephole2s): Use | |
27388 | general_reg_operand instead of register_operand predicate. | |
27389 | ||
27390 | 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
27391 | ||
27392 | * params.def (MIN_PARTITION_SIZE): Set default value to 10000. | |
27393 | ||
27394 | 2016-04-27 Marc Glisse <marc.glisse@inria.fr> | |
27395 | ||
27396 | * match.pd (A - B > A, A + B < A): New transformations. | |
27397 | ||
27398 | 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org> | |
27399 | ||
27400 | * genattrtab.c (write_test_expr): New parameter EMIT_PARENS | |
27401 | which defaults to true. Emit an outer pair of parentheses only if | |
27402 | EMIT_PARENS. When continuing a chain of && or || (or & or |), | |
27403 | don't emit parentheses for the right-hand operand. | |
27404 | ||
27405 | 2016-04-27 Jeff Law <law@redhat.com> | |
27406 | ||
27407 | * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment. | |
27408 | ||
27409 | 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
27410 | ||
27411 | * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove. | |
27412 | (altivec_lvx_<mode>_internal): Document. | |
27413 | (altivec_lvx_<mode>_2op): New define_insn. | |
27414 | (altivec_lvx_<mode>_1op): Likewise. | |
27415 | (altivec_lvx_<mode>_2op_si): Likewise. | |
27416 | (altivec_lvx_<mode>_1op_si): Likewise. | |
27417 | (altivec_stvx_<mode>): Remove. | |
27418 | (altivec_stvx_<mode>_internal): Document. | |
27419 | (altivec_stvx_<mode>_2op): New define_insn. | |
27420 | (altivec_stvx_<mode>_1op): Likewise. | |
27421 | (altivec_stvx_<mode>_2op_si): Likewise. | |
27422 | (altivec_stvx_<mode>_1op_si): Likewise. | |
27423 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
27424 | Expand vec_ld and vec_st during parsing. | |
27425 | * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary | |
27426 | changes. | |
27427 | (altivec_expand_stvx_be): Likewise. | |
27428 | (altivec_expand_lv_builtin): Expand lvx built-ins to expose the | |
27429 | address-masking behavior in RTL. | |
27430 | (altivec_expand_stv_builtin): Expand stvx built-ins to expose the | |
27431 | address-masking behavior in RTL. | |
27432 | (altivec_expand_builtin): Change builtin code arguments for calls | |
27433 | to altivec_expand_stv_builtin and altivec_expand_lv_builtin. | |
27434 | (insn_is_swappable_p): Avoid incorrect swap optimization in the | |
27435 | presence of lvx/stvx patterns. | |
27436 | (alignment_with_canonical_addr): New function. | |
27437 | (alignment_mask): Likewise. | |
27438 | (find_alignment_op): Likewise. | |
27439 | (recombine_lvx_pattern): Likewise. | |
27440 | (recombine_stvx_pattern): Likewise. | |
27441 | (recombine_lvx_stvx_patterns): Likewise. | |
27442 | (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and | |
27443 | stvx patterns from expand. | |
27444 | * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new | |
27445 | expansions. | |
27446 | (vector_altivec_store_<mode>): Likewise. | |
27447 | ||
27448 | 2016-04-26 Evandro Menezes <e.menezes@samsung.com> | |
27449 | ||
27450 | * config/aarch64/aarch64.md | |
27451 | (*movhf_aarch64): Add "movi %0, #0" to zero up register and | |
27452 | remove the "fp" attributes. | |
27453 | (*movsf_aarch64): Add "movi %0, #0" to zero up register and | |
27454 | add the "simd" attributes. | |
27455 | (*movdf_aarch64): Likewise. | |
27456 | (*movtf_aarch64): Remove the "fp" attributes. | |
27457 | * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly. | |
27458 | * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise. | |
27459 | ||
27460 | 2016-04-27 David Malcolm <dmalcolm@redhat.com> | |
27461 | ||
27462 | * emit-rtl.c (maybe_set_first_label_num): Strengthen param from | |
27463 | rtx to rtx_code_label *. | |
27464 | * rtl.h (maybe_set_first_label_num): Likewise. | |
27465 | ||
27466 | 2016-04-27 David Malcolm <dmalcolm@redhat.com> | |
27467 | ||
27468 | * df-core.c (df_add_problem): Make the problem param be const. | |
27469 | (df_remove_problem): Make local "problem" be const. | |
27470 | * df-problems.c (problem_RD): Make const. | |
27471 | (problem_LR): Likewise. | |
27472 | (problem_LIVE): Likewise. | |
27473 | (problem_MIR): Likewise. | |
27474 | (problem_CHAIN): Likewise. | |
27475 | (problem_WORD_LR): Likewise. | |
27476 | (problem_NOTE): Likewise. | |
27477 | (problem_MD): Likewise. | |
27478 | * df-scan.c (problem_SCAN): Likewise. | |
27479 | * df.h (struct df_problem): Make field "dependent_problem" be | |
27480 | const. | |
27481 | (struct dataflow): Likewise for field "problem". | |
27482 | (df_add_problem): Make param const. | |
27483 | ||
27484 | 2016-04-27 Uros Bizjak <ubizjak@gmail.com> | |
27485 | ||
27486 | * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when | |
27487 | inter-unit moves to/from vector registers are enabled. Do not disable | |
27488 | for TARGET_MMX. | |
27489 | ||
27490 | 2016-04-27 David Malcolm <dmalcolm@redhat.com> | |
27491 | ||
27492 | * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR, | |
27493 | DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from | |
27494 | #define to... | |
27495 | (enum df_problem_id): ...this new enum. | |
27496 | (struct df_problem): Convert field "id" from "int" to | |
27497 | enum df_problem_id. | |
27498 | ||
27499 | 2016-04-27 David Malcolm <dmalcolm@redhat.com> | |
27500 | ||
27501 | * rtl.def: Update comment for "things in the instruction chain" to | |
27502 | reflect the removal of the leading "i" field for INSN_UID in | |
27503 | r210360. Fix bogus apostrophe. | |
27504 | ||
27505 | 2016-04-27 Uros Bizjak <ubizjak@gmail.com> | |
27506 | ||
27507 | * config/i386/i386.md | |
27508 | (lea arith with mem operand + setcc peephole2): Set operator mode. | |
27509 | ||
27510 | 2016-04-27 H.J. Lu <hongjiu.lu@intel.com> | |
27511 | ||
27512 | PR target/70155 | |
27513 | * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ... | |
27514 | (dimode_scalar_to_vector_candidate_p): This. | |
27515 | (timode_scalar_to_vector_candidate_p): New function. | |
27516 | (scalar_to_vector_candidate_p): Likewise. | |
27517 | (timode_check_non_convertible_regs): Likewise. | |
27518 | (timode_remove_non_convertible_regs): Likewise. | |
27519 | (remove_non_convertible_regs): Likewise. | |
27520 | (remove_non_convertible_regs): Renamed to ... | |
27521 | (dimode_remove_non_convertible_regs): This. | |
27522 | (scalar_chain::~scalar_chain): Make it virtual. | |
27523 | (scalar_chain::compute_convert_gain): Make it pure virtual. | |
27524 | (scalar_chain::mark_dual_mode_def): Likewise. | |
27525 | (scalar_chain::convert_insn): Likewise. | |
27526 | (scalar_chain::convert_registers): Likewise. | |
27527 | (scalar_chain::add_to_queue): Make it protected. | |
27528 | (scalar_chain::emit_conversion_insns): Likewise. | |
27529 | (scalar_chain::replace_with_subreg): Likewise. | |
27530 | (scalar_chain::replace_with_subreg_in_insn): Likewise. | |
27531 | (scalar_chain::convert_op): Likewise. | |
27532 | (scalar_chain::convert_reg): Likewise. | |
27533 | (scalar_chain::make_vector_copies): Likewise. | |
27534 | (scalar_chain::convert_registers): New pure virtual function. | |
27535 | (class dimode_scalar_chain): New class. | |
27536 | (class timode_scalar_chain): Likewise. | |
27537 | (scalar_chain::mark_dual_mode_def): Renamed to ... | |
27538 | (dimode_scalar_chain::mark_dual_mode_def): This. | |
27539 | (timode_scalar_chain::mark_dual_mode_def): New function. | |
27540 | (timode_scalar_chain::convert_insn): Likewise. | |
27541 | (dimode_scalar_chain::convert_registers): Likewise. | |
27542 | (scalar_chain::compute_convert_gain): Renamed to ... | |
27543 | (dimode_scalar_chain::compute_convert_gain): This. | |
27544 | (scalar_chain::replace_with_subreg): Renamed to ... | |
27545 | (dimode_scalar_chain::replace_with_subreg): This. | |
27546 | (scalar_chain::replace_with_subreg_in_insn): Renamed to ... | |
27547 | (dimode_scalar_chain::replace_with_subreg_in_insn): This. | |
27548 | (scalar_chain::make_vector_copies): Renamed to ... | |
27549 | (dimode_scalar_chain::make_vector_copies): This. | |
27550 | (scalar_chain::convert_reg): Renamed to ... | |
27551 | (dimode_scalar_chain::convert_reg ): This. | |
27552 | (scalar_chain::convert_op): Renamed to ... | |
27553 | (dimode_scalar_chain::convert_op): This. | |
27554 | (scalar_chain::convert_insn): Renamed to ... | |
27555 | (dimode_scalar_chain::convert_insn): This. | |
27556 | (scalar_chain::convert): Call convert_registers. | |
27557 | (convert_scalars_to_vector): Change to scalar_chain pointer to | |
27558 | use timode_scalar_chain in 64-bit mode and dimode_scalar_chain | |
27559 | in 32-bit mode. Delete scalar_chain pointer. Call | |
27560 | free_dominance_info in 64-bit mode. | |
27561 | (pass_stv::gate): Remove TARGET_64BIT check. | |
27562 | (ix86_option_override): Put the 64-bit STV pass before the CSE | |
27563 | pass. | |
27564 | ||
27565 | 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com> | |
27566 | ||
27567 | * dwarf2out.h (struct dw_loc_descr_node): Remove the | |
27568 | dw_loc_frame_offset field. | |
27569 | * dwarf2out.c (new_loc_descr): Likewise. | |
27570 | (resolve_args_picking_1): Turn the VISITED hash set into a | |
27571 | FRAME_OFFSET hash map. Use it to associate a frame offset to | |
27572 | visited nodes. Remove uses of the CHECKING_P macro. | |
27573 | (resolve_args_picking): Update call to resolve_args_picking_1. | |
27574 | ||
27575 | 2016-04-27 Martin Liska <mliska@suse.cz> | |
27576 | ||
27577 | * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation. | |
27578 | (free_loop_data): Release vuses of groups. | |
27579 | ||
27580 | 2016-04-27 Bin Cheng <bin.cheng@arm.com> | |
27581 | ||
27582 | * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use | |
27583 | instead of redundant use_id and boolean have_use_for. | |
27584 | (struct iv_use): Change sub_id into group_id. Remove field next. | |
27585 | Move fields: related_cands, n_map_members, cost_map and selected | |
27586 | to ... | |
27587 | (struct iv_group): ... here. New structure. | |
27588 | (struct iv_common_cand): Use structure declaration directly. | |
27589 | (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields. | |
27590 | (MAX_CONSIDERED_USES): Rename macro to ... | |
27591 | (MAX_CONSIDERED_GROUPS): ... here. | |
27592 | (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete. | |
27593 | (dump_iv, dump_use, dump_cand): Refactor format of dump information. | |
27594 | (dump_uses): Rename to ... | |
27595 | (dump_groups): ... here. Update all uses. | |
27596 | (tree_ssa_iv_optimize_init, alloc_iv): Update all uses. | |
27597 | (find_induction_variables): Refactor format of dump information. | |
27598 | (record_sub_use): Delete. | |
27599 | (record_use): Update all uses. | |
27600 | (record_group): New function. | |
27601 | (record_group_use, find_interesting_uses_op): Call above functions. | |
27602 | Update all uses. | |
27603 | (find_interesting_uses_cond): Ditto. | |
27604 | (group_compare_offset): New function. | |
27605 | (split_all_small_groups): Rename to ... | |
27606 | (split_small_address_groups_p): ... here. Update all uses. | |
27607 | (split_address_groups): Update all uses. | |
27608 | (find_interesting_uses): Refactor format of dump information. | |
27609 | (add_candidate_1): Update all uses. Remove redundant check on iv, | |
27610 | base and step. | |
27611 | (add_candidate, record_common_cand): Remove redundant assert. | |
27612 | (add_iv_candidate_for_biv): Update use. | |
27613 | (add_iv_candidate_derived_from_uses): Update all uses. | |
27614 | (add_iv_candidate_for_groups, record_important_candidates): Ditto. | |
27615 | (alloc_use_cost_map): Ditto. | |
27616 | (set_use_iv_cost, get_use_iv_cost): Rename to ... | |
27617 | (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses. | |
27618 | (determine_use_iv_cost_generic): Ditto. | |
27619 | (determine_group_iv_cost_generic): Ditto. | |
27620 | (determine_use_iv_cost_address): Ditto. | |
27621 | (determine_group_iv_cost_address): Ditto. | |
27622 | (determine_use_iv_cost_condition): Ditto. | |
27623 | (determine_group_iv_cost_cond): Ditto. | |
27624 | (determine_use_iv_cost): Ditto. | |
27625 | (determine_group_iv_cost): Ditto. | |
27626 | (set_autoinc_for_original_candidates): Update all uses. | |
27627 | (find_iv_candidates): Update all uses. Refactor dump information. | |
27628 | (determine_use_iv_costs): Ditto. | |
27629 | (determine_iv_costs): Ditto. | |
27630 | (iv_ca_cand_for_use): Rename to ... | |
27631 | (iv_ca_cand_for_group): ... here. Update all uses. | |
27632 | (iv_ca_add_use, iv_ca_add_group): Ditto. | |
27633 | (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses. | |
27634 | (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto. | |
27635 | (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto. | |
27636 | (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto. | |
27637 | (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto. | |
27638 | (create_new_iv, adjust_iv_update_pos): Ditto. | |
27639 | (rewrite_use_address): Delete. | |
27640 | (rewrite_use_address_1): Rename to ... | |
27641 | (rewrite_use_address): ... here. | |
27642 | (rewrite_use_compare): Update all uses. | |
27643 | (rewrite_use): Delete. | |
27644 | (rewrite_uses): Rename to ... | |
27645 | (rewrite_groups): ... here. Update all uses. | |
27646 | (remove_unused_ivs, free_loop_data): Update all uses. | |
27647 | (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto. | |
27648 | ||
27649 | 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
27650 | ||
27651 | * rtlanal.c (nonzero_bits1): Convert preprocessor check | |
27652 | for WORD_REGISTER_OPERATIONS to runtime check. | |
27653 | ||
27654 | 2016-04-27 Richard Biener <rguenther@suse.de> | |
27655 | ||
27656 | PR ipa/70760 | |
27657 | * tree-ssa-structalias.c (find_func_aliases_for_call): Use | |
27658 | aggregate_value_p to determine if a function result is | |
27659 | returned by reference. | |
27660 | (ipa_pta_execute): Functions having their address taken are | |
27661 | not automatically nonlocal. | |
27662 | ||
27663 | 2016-04-27 Jakub Jelinek <jakub@redhat.com> | |
27664 | ||
27665 | PR sanitizer/70683 | |
27666 | * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK. | |
27667 | * fold-const.c (operand_equal_p): If flag_checking and | |
27668 | OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK | |
27669 | and if it returns non-zero, assert iterative_hash_expr on both | |
27670 | args is the same. | |
27671 | ||
27672 | 2016-04-27 Bernd Schmidt <bschmidt@redhat.com> | |
27673 | ||
27674 | * doc/invoke.texi (-frename-registers): Also enabled at -Os. | |
27675 | ||
27676 | 2016-04-27 Nick Clifton <nickc@redhat.com> | |
27677 | ||
27678 | PR middle-end/49889 | |
27679 | * varasm.c (merge_weak): Generate an error if an attempt is made | |
27680 | to convert a non-weak static function into a weak, public function. | |
27681 | ||
27682 | 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
27683 | ||
27684 | * params.def (MAX_PARTITION_SIZE): New param. | |
27685 | * doc/invoke.texi: Document lto-max-partition. | |
27686 | ||
27687 | 2016-04-27 Richard Biener <rguenther@suse.de> | |
27688 | ||
27689 | PR ipa/70785 | |
27690 | * tree-ssa-structalias.c (refered_from_nonlocal_fn): New | |
27691 | function cummulating used_from_other_partition, externally_visible | |
27692 | and force_output from aliases. | |
27693 | (refered_from_nonlocal_var): Likewise. | |
27694 | (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate | |
27695 | node flags properly. | |
27696 | ||
27697 | 2016-04-27 Bernd Schmidt <bschmidt@redhat.com> | |
27698 | ||
27699 | * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size. | |
27700 | (-Wmemset-elt-size): New item. | |
27701 | ||
27702 | 2016-04-27 Eric Botcazou <ebotcazou@adacore.com> | |
27703 | ||
27704 | PR ada/70759 | |
27705 | * stor-layout.h (internal_reference_types): Delete. | |
27706 | * stor-layout.c (reference_types_internal): Likewise. | |
27707 | (internal_reference_types): Likewise. | |
27708 | (layout_type) <REFERENCE_TYPE>: Adjust. | |
27709 | ||
27710 | 2016-04-27 Jakub Jelinek <jakub@redhat.com> | |
27711 | ||
27712 | PR sanitizer/70683 | |
27713 | * tree.h (inchash::add_expr): Add FLAGS argument. | |
27714 | * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF, | |
27715 | use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF. | |
27716 | For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same. | |
27717 | Formatting fix. Adjust recursive calls. For tcc_comparison, | |
27718 | if swap_tree_comparison (code) is smaller than code, hash that | |
27719 | and arguments in the other order. Hash CONVERT_EXPR the same | |
27720 | as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset | |
27721 | of ADDR_EXPR of decl as the decl itself. Add or remove | |
27722 | OEP_ADDRESS_OF from recursive flags as needed. For | |
27723 | FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two | |
27724 | operands commutatively and only the third one normally. | |
27725 | For internal CALL_EXPR hash in CALL_EXPR_IFN. | |
27726 | ||
27727 | 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
27728 | ||
27729 | * config/rtems.h (LIB_SPEC): Add -latomic. | |
27730 | ||
27731 | 2016-04-27 Joel Sherrill <joel@rtems.org> | |
27732 | ||
27733 | * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid | |
27734 | xilink.ld and flags not relevant to RTEMS. | |
27735 | ||
27736 | 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn> | |
27737 | ||
27738 | * toplev.c (backend_init_target): Avoid calling init_reload when using | |
27739 | LRA. | |
27740 | ||
27741 | 2016-04-26 Jakub Jelinek <jakub@redhat.com> | |
27742 | ||
27743 | * reorg.c (try_merge_delay_insns): Declare i and j inside the | |
27744 | for loops rather than one for the whole function. | |
27745 | ||
27746 | 2016-04-26 Marc Glisse <marc.glisse@inria.fr> | |
27747 | ||
27748 | * match.pd (X + CST CMP X): New transformation. | |
27749 | ||
27750 | 2016-04-26 Marc Glisse <marc.glisse@inria.fr> | |
27751 | ||
27752 | * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED. | |
27753 | * fold-const.c (fold_binary_loc): Remove 2 transformations | |
27754 | superseded by match.pd. | |
27755 | * match.pd (x+x -> x*2): Generalize to integers. | |
27756 | ||
27757 | 2016-04-26 Bernd Schmidt <bschmidt@redhat.com> | |
27758 | ||
27759 | * config/i386/i386.md (operation on memory peephole): Duplicate an | |
27760 | existing peephole and adapt it to match lea rather than an operation | |
27761 | that clobbers CC. | |
27762 | ||
27763 | PR rtl-optimization/57193 | |
27764 | * opts.c (default_options_table): Add OPT_frename_registers at -O2 | |
27765 | and above. | |
27766 | * doc/invoke.texi (-frename-registers, -O2): Update documentation. | |
27767 | ||
27768 | 2016-04-26 Bin Cheng <bin.cheng@arm.com> | |
27769 | ||
27770 | * tree-if-conv.c (any_pred_load_store): New static variable. | |
27771 | (if_convertible_gimple_assign_stmt_p): Remove parameter. Use | |
27772 | any_pred_load_store instead of and_mask_load_store. | |
27773 | (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto. | |
27774 | (if_convertible_loop_p, insert_gimplified_predicates): Ditto. | |
27775 | (combine_blocks, tree_if_conversion): Ditto. | |
27776 | ||
27777 | 2016-04-26 Bin Cheng <bin.cheng@arm.com> | |
27778 | ||
27779 | PR tree-optimization/70771 | |
27780 | PR tree-optimization/70775 | |
27781 | * tree-if-conv.c (if_convertible_phi_p): Remove check on special | |
27782 | virtual PHI nodes. Delete parameter. | |
27783 | (if_convertible_loop_p_1): Delete argument to above function. | |
27784 | (predicate_all_scalar_phis): Delete code handling single-argument | |
27785 | PHIs. | |
27786 | (tree_if_conversion): Mark and update virtual SSA. | |
27787 | ||
27788 | 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
27789 | ||
27790 | PR target/61821 | |
27791 | * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default. | |
27792 | (x86_elf_aligned_common): Rename to ... | |
27793 | (x86_elf_aligned_decl_common): ... this. | |
27794 | Add decl arg. Switch to .lbss for largecomm object. Use | |
27795 | LARGECOMM_SECTION_ASM_OP. | |
27796 | * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect | |
27797 | renaming. | |
27798 | * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ... | |
27799 | (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this. | |
27800 | Pass new decl arg. | |
27801 | * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. | |
27802 | [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define. | |
27803 | ||
27804 | 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
27805 | ||
27806 | PR target/59407 | |
27807 | * config/i386/i386.c (SECTION_LARGE): Define. | |
27808 | (x86_64_elf_select_section): Set it for large data/bss sections. | |
27809 | Only clear SECTION_WRITE for .lrodata. | |
27810 | (x86_64_elf_section_type_flags): Set SECTION_LARGE for large | |
27811 | data/bss sections. | |
27812 | * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define. | |
27813 | * varasm.c (default_elf_asm_named_section): Grow flagchars. | |
27814 | [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for | |
27815 | SECTION_MACH_DEP. | |
27816 | * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe. | |
27817 | * doc/tm.texi: Regenerate. | |
27818 | ||
27819 | 2016-04-26 Jakub Jelinek <jakub@redhat.com> | |
27820 | ||
27821 | PR bootstrap/70704 | |
27822 | * configure.ac (--enable-checking): Document extra flag, for | |
27823 | non-release builds default to --enable-checking=yes,extra. | |
27824 | If misc checking and extra checking, define CHECKING_P to 2 instead | |
27825 | of 1. | |
27826 | * common.opt (fchecking=): Add. | |
27827 | * doc/invoke.texi (-fchecking=): Document. | |
27828 | * doc/install.texi: Document --enable-checking changes. | |
27829 | * configure: Regenerated. | |
27830 | * config.in: Regenerated. | |
27831 | ||
27832 | 2016-04-25 Uros Bizjak <ubizjak@gmail.com> | |
27833 | ||
27834 | * config/i386/i386.md (*movxi_internal_avx512f): Use insn type | |
27835 | attribute instead of which_alternative. | |
27836 | * config/i386/sse.md (*mov<mode>_internal): Ditto. | |
27837 | Use EXT_REX_SSE_REG_P where appropriate. | |
27838 | ||
27839 | 2016-04-25 Uros Bizjak <ubizjak@gmail.com> | |
27840 | ||
27841 | * config/i386/predicates.md (const0_operand): Do not match | |
27842 | const_wide_int code. | |
27843 | (const1_operand): Ditto. | |
27844 | ||
27845 | 2016-04-25 Uros Bizjak <ubizjak@gmail.com> | |
27846 | ||
27847 | * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI | |
27848 | for SSE constm1 operands and TARGET_AVX512VL. | |
27849 | (*movti_internal): Ditto. | |
27850 | (*mov<mode>_or): Use constm1_operand predicate. | |
27851 | * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI | |
27852 | for SSE vector_all_ones operands and TARGET_AVX512VL. | |
27853 | * config/i386/predicates.md (constm1_operand): New predicate. | |
27854 | * config/i386/i386.c (standard_sse_constant_opcode): Simplify | |
27855 | emission of constant -1 load. | |
27856 | ||
27857 | 2016-04-25 Jason Merrill <jason@redhat.com> | |
27858 | ||
27859 | * gdbinit.in: Skip is-a.h. | |
27860 | ||
27861 | * attribs.c (register_scoped_attributes): Fix logic. | |
27862 | * attribs.h: Declare register_scoped_attributes. | |
27863 | ||
27864 | 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
27865 | ||
27866 | * config/rs6000/rs6000-builtin.def: Correct pasto error for | |
27867 | stxvd2x and stxvw4x built-in functions. | |
27868 | ||
27869 | 2016-04-25 DJ Delorie <dj@redhat.com> | |
27870 | ||
27871 | * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts. | |
27872 | (ashrhi3): Likewise. | |
27873 | (lshrhi3): Likewise. | |
27874 | ||
27875 | 2016-04-25 Richard Biener <rguenther@suse.de> | |
27876 | ||
27877 | PR tree-optimization/70780 | |
27878 | * tree-ssa-pre.c (compute_antic_aux): Also return true if the block | |
27879 | wasn't visited yet. | |
27880 | (compute_antic): Mark blocks with abnormal preds as visited as | |
27881 | they have a final empty antic-in solution already. | |
27882 | ||
27883 | 2016-04-25 Michael Collison <michael.collison@linaro.org> | |
27884 | ||
27885 | * ChangeLog(2016-04-25): Fix ChangeLog formatting. | |
27886 | ||
27887 | 2016-04-25 Michael Collison <michael.collison@linaro.org> | |
27888 | ||
27889 | * config/arm/neon.md (widen_<us>sum<mode>): New patterns where | |
27890 | mode is VQI to improve mixed mode vectorization. | |
27891 | * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New | |
27892 | define_insn to match low half of signed vaddw. | |
27893 | * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New | |
27894 | define_insn to match high half of signed vaddw. | |
27895 | * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New | |
27896 | define_insn to match low half of unsigned vaddw. | |
27897 | * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New | |
27898 | define_insn to match high half of unsigned vaddw. | |
27899 | * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function. | |
27900 | (arm_simd_check_vect_par_cnst_half_p): Likewise. | |
27901 | * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype | |
27902 | for new function. | |
27903 | (arm_simd_check_vect_par_cnst_half_p): Likewise. | |
27904 | * config/arm/predicates.md (vect_par_constant_high): Support | |
27905 | big endian and simplify by calling | |
27906 | arm_simd_check_vect_par_cnst_half | |
27907 | (vect_par_constant_low): Likewise. | |
27908 | ||
27909 | 2016-04-25 Uros Bizjak <ubizjak@gmail.com> | |
27910 | ||
27911 | * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand | |
27912 | predicate for operand 2. | |
27913 | ||
27914 | 2016-04-24 Uros Bizjak <ubizjak@gmail.com> | |
27915 | H.J. Lu <hongjiu.lu@intel.com> | |
27916 | ||
27917 | * config/i386/i386-protos.h (standard_sse_constant_p): Add | |
27918 | machine_mode argument. | |
27919 | * config/i386/i386.c (standard_sse_constant_p): Return 2 for | |
27920 | constm1_rtx operands. For VOIDmode constants, get mode from | |
27921 | pred_mode. Check mode size if the mode is supported by ABI. | |
27922 | (standard_sse_constant_opcode): Do not use standard_constant_p. | |
27923 | Strictly check ABI support for all-ones operands. | |
27924 | (ix86_legitimate_constant_p): Handle TImode, OImode and XImode | |
27925 | immediates. Update calls to standard_sse_constant_p. | |
27926 | (ix86_expand_vector_move): Update calls to standard_sse_constant_p. | |
27927 | (ix86_rtx_costs): Ditto. | |
27928 | * config/i386/i386.md (*movxi_internal_avx512f): Use | |
27929 | nonimmediate_or_sse_const_operand instead of vector_move_operand. | |
27930 | Use (v,BC) alternative instead of (v,C). Use register_operand | |
27931 | checks instead of MEM_P. | |
27932 | (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead | |
27933 | of vector_move_operand. Add (v,BC) alternative and corresponding avx2 | |
27934 | isa attribute. Use register_operand checks instead of MEM_P. | |
27935 | (*movti_internal): Use nonimmediate_or_sse_const_operand for | |
27936 | TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC) | |
27937 | alternative and corresponding sse2 isa attribute. | |
27938 | (*movtf_internal, *movdf_internal, *movsf_interal): Update calls | |
27939 | to standard_sse_constant_p. | |
27940 | (FP constant splitters): Ditto. | |
27941 | * config/i386/constraints.md (BC): Do not use standard_sse_constant_p. | |
27942 | (C): Ditto. | |
27943 | * config/i386/predicates.md (constm1_operand): Remove. | |
27944 | (nonimmediate_or_sse_const_operand): Rewrite using RTX. | |
27945 | * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use | |
27946 | vector_all_ones_operand instead of constm1_operand. | |
27947 | ||
27948 | 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
27949 | ||
27950 | * print-rtl.c (print_rtx_insn_vec): New function. | |
27951 | * print-rtl.h: New prototype. | |
27952 | * store-motion.c (struct st_expr): Make avail_stores a vector. | |
27953 | (st_expr_entry): Adjust. | |
27954 | (free_st_expr_entry): Likewise. | |
27955 | (print_store_motion_mems): Likewise. | |
27956 | (find_moveable_store): Likewise. | |
27957 | (compute_store_table): Likewise. | |
27958 | (delete_store): Likewise. | |
27959 | (build_store_vectors): Likewise. | |
27960 | ||
27961 | 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
27962 | ||
27963 | * reorg.c (try_merge_delay_insns): Make merged_insns a vector. | |
27964 | ||
27965 | 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
27966 | ||
27967 | * vec.h (vec_safe_contains): New function. | |
27968 | (vec::contains): Likewise. | |
27969 | (vec::begin): Likewise. | |
27970 | (vec::end): Likewise. | |
27971 | ||
27972 | 2016-04-23 Jakub Jelinek <jakub@redhat.com> | |
27973 | ||
27974 | PR sanitizer/70712 | |
27975 | * cfgexpand.c (expand_stack_vars): Fix typo. | |
27976 | ||
27977 | 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
27978 | ||
27979 | * system.h (list, map, set, vector): Include conditionally. | |
27980 | * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define. | |
27981 | * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define. | |
27982 | * ipa-icf.c (INCLUDE_LIST): Define. | |
27983 | * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define. | |
27984 | * config/sh/sh.c (INCLUDE_VECTOR): Define. | |
27985 | * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define. | |
27986 | (INCLUDE_LIST, INCLUDE_VECTOR): Define. | |
27987 | * cp/logic.cc (INCLUDE_LIST): Define. | |
27988 | * fortran/trans-common.c (INCLUDE_MAP): Define. | |
27989 | ||
27990 | 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
27991 | ||
27992 | * auto-profile.c: Remove <string.h> include. | |
27993 | * ipa-icf-gimple.c: Remove <list> include. | |
27994 | * diagnostic.c: Remove <new> include. | |
27995 | * genmatch.c: Likewise. | |
27996 | * pretty-print.c: Likewise. | |
27997 | * toplev.c: Likewise | |
27998 | * c/c-objc-common.c: Likewise. | |
27999 | * cp/error.c: Likewise. | |
28000 | * fortran/error.c: Likewise. | |
28001 | ||
28002 | 2016-04-22 Richard Biener <rguenther@suse.de> | |
28003 | ||
28004 | * lto-streamer-in.c (input_ssa_names): Do not allocate | |
28005 | GIMPLE_NOP for all SSA names. | |
28006 | * lto-streamer-out.c (output_ssa_names): Do not output | |
28007 | SSA names that should have been released. | |
28008 | ||
28009 | 2016-04-22 Richard Biener <rguenther@suse.de> | |
28010 | ||
28011 | PR tree-optimization/70740 | |
28012 | * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted | |
28013 | VDEF. | |
28014 | ||
28015 | 2016-04-21 H.J. Lu <hongjiu.lu@intel.com> | |
28016 | ||
28017 | PR target/70750 | |
28018 | * config/i386/predicates.md (call_insn_operand): Replace | |
28019 | sibcall_memory_operand with memory_operand. | |
28020 | ||
28021 | 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org> | |
28022 | ||
28023 | * tree-vrp.c (register_edge_assert_for_2): Remove redundant | |
28024 | has_single_use() tests. | |
28025 | (register_edge_assert_for_1): Likewise. | |
28026 | (find_assert_locations_1): Check the liveness bitmap instead of | |
28027 | checking has_single_use(). | |
28028 | ||
28029 | 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com> | |
28030 | ||
28031 | PR target/70728 | |
28032 | * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"): | |
28033 | Extract AVX-512BW constraint from AVX. | |
28034 | ||
28035 | 2016-04-21 Richard Biener <rguenther@suse.de> | |
28036 | ||
28037 | PR tree-optimization/70725 | |
28038 | * tree-if-conv.c (if_convertible_phi_p): Adjust guard | |
28039 | for phi_convertible_by_degenerating_args. | |
28040 | (predicate_all_scalar_phis): Handle single-argument PHIs. | |
28041 | ||
28042 | 2016-04-21 Richard Biener <rguenther@suse.de> | |
28043 | ||
28044 | PR middle-end/70747 | |
28045 | * fold-const.c (fold_comparison): Return properly typed | |
28046 | constant boolean. | |
28047 | ||
28048 | 2016-04-21 Bin Cheng <bin.cheng@arm.com> | |
28049 | ||
28050 | PR tree-optimization/70715 | |
28051 | * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality | |
28052 | after expanding BASE using expand_simple_operations. | |
28053 | ||
28054 | 2016-04-21 Marc Glisse <marc.glisse@inria.fr> | |
28055 | ||
28056 | * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)): | |
28057 | New transformations. | |
28058 | ||
28059 | 2016-04-21 Marc Glisse <marc.glisse@inria.fr> | |
28060 | ||
28061 | * match.pd (min(int_max, x), max(int_min, x)): New transformations. | |
28062 | ||
28063 | 2016-04-20 Jan Hubicka <jh@suse.cz> | |
28064 | ||
28065 | * ipa-inline.c (can_inline_edge_p): Pass caller info to | |
28066 | ultiimate_alias_target. | |
28067 | (update_callee_keys): Likewise. | |
28068 | (lookup_recursive_calls): Likewise. | |
28069 | (speculation_useful_p): Likewise. | |
28070 | ||
28071 | 2016-04-20 Jan Hubicka <jh@suse.cz> | |
28072 | ||
28073 | PR ipa/70018 | |
28074 | * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ... | |
28075 | (set_nothrow_flag_1): ... this; handle interposition correctly; | |
28076 | recurse on aliases and thunks. | |
28077 | (cgraph_node::set_nothrow_flag): New. | |
28078 | * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to | |
28079 | functions compiled with non-call exceptions that binds to current | |
28080 | def. | |
28081 | (propagate_nothrow): Be safe WRT interposition. | |
28082 | * cgraph.h (set_nothrow_flag): Update prototype. | |
28083 | ||
28084 | 2016-04-18 Jan Hubicka <jh@suse.cz> | |
28085 | ||
28086 | * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also | |
28087 | max_loop_iterations_int. | |
28088 | (tree_unswitch_outer_loop): Likewise. | |
28089 | ||
28090 | 2016-04-20 Bin Cheng <bin.cheng@arm.com> | |
28091 | ||
28092 | PR tree-optimization/69489 | |
28093 | * tree-if-conv.c (phi_convertible_by_degenerating_args): New. | |
28094 | (if_convertible_phi_p): Call phi_convertible_by_degenerating_args. | |
28095 | Revise dump message. | |
28096 | (if_convertible_bb_p): Remove check on edge count of basic block's | |
28097 | predecessors. | |
28098 | ||
28099 | 2016-04-20 Bin Cheng <bin.cheng@arm.com> | |
28100 | ||
28101 | PR tree-optimization/56625 | |
28102 | PR tree-optimization/69489 | |
28103 | * tree-data-ref.h (DR_INNERMOST): New macro. | |
28104 | * tree-if-conv.c (innermost_loop_behavior_hash): New class for | |
28105 | hashing struct innermost_loop_behavior. | |
28106 | (ref_DR_map): Remove. | |
28107 | (innermost_DR_map): New map. | |
28108 | (baseref_DR_map): Revise comment. | |
28109 | (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR | |
28110 | to innermost_DR_map accroding to its innermost loop behavior. | |
28111 | (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according | |
28112 | to its innermost loop behavior. | |
28113 | (if_convertible_loop_p_1): Remove intialization for ref_DR_map. | |
28114 | Add initialization for innermost_DR_map. Record memory reference | |
28115 | in DR_BASE_ADDRESS if the reference is compound one or it doesn't | |
28116 | have innermost loop behavior. | |
28117 | (if_convertible_loop_p): Remove release for ref_DR_map. Release | |
28118 | innermost_DR_map. | |
28119 | ||
28120 | 2016-04-20 Uros Bizjak <ubizjak@gmail.com> | |
28121 | ||
28122 | * config/i386/i386.md (*lea<mode>_general_1): Rename from | |
28123 | *lea_general_1. Use explicit SWI12 mode interator. | |
28124 | (*lea<mode>_general_2): Rename from *lea_general_2. | |
28125 | Use explicit SWI12 mode interator. | |
28126 | (*lea<mode>_general_3): Rename from *lea_general_3. | |
28127 | Use explicit SWI12 mode interator. | |
28128 | (*lea<SWI12:mode>_general_4): Split from *lea_general_4. | |
28129 | Use explicit SWI12 mode interator. | |
28130 | (*lea<SWI48:mode>_general_4): Split from *lea_general_4. | |
28131 | Use explicit SWI48 mode interator. | |
28132 | ||
28133 | 2016-04-20 H.J. Lu <hongjiu.lu@intel.com> | |
28134 | ||
28135 | * config/i386/i386.c (ix86_avx256_split_vector_move_misalign): | |
28136 | Short-cut unaligned load and store cases. Handle all integer | |
28137 | vector modes. | |
28138 | (ix86_expand_vector_move_misalign): Short-cut unaligned load | |
28139 | and store cases. Call ix86_avx256_split_vector_move_misalign | |
28140 | directly without checking mode class. | |
28141 | ||
28142 | 2016-04-20 Andrew Pinski <apinski@cavium.com> | |
28143 | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
28144 | ||
28145 | PR target/64971 | |
28146 | * config/aarch64/aarch64.md (sibcall): Force call | |
28147 | address to be DImode for ILP32. | |
28148 | (sibcall_value): Likewise. | |
28149 | ||
28150 | 2016-04-20 H.J. Lu <hongjiu.lu@intel.com> | |
28151 | ||
28152 | * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup. | |
28153 | ||
28154 | 2016-04-20 Richard Biener <rguenther@suse.de> | |
28155 | ||
28156 | * gimple-match.h (maybe_build_generic_op): Adjust prototype. | |
28157 | * gimple-match-head.c (maybe_build_generic_op): Pass all ops | |
28158 | by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF. | |
28159 | (maybe_push_res_to_seq): Adjust. | |
28160 | * gimple-fold.c (maybe_build_generic_op): Likewise. | |
28161 | ||
28162 | 2016-04-20 Marek Polacek <polacek@redhat.com> | |
28163 | ||
28164 | * tree-if-conv.c (is_false_predicate): For NULL_TREE return false | |
28165 | rather than true. | |
28166 | ||
28167 | 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com> | |
28168 | ||
28169 | * config/i386/sse.md (vec_unpacks_lo_hi): Always | |
28170 | use kmovw to support AVX512F target. | |
28171 | ||
28172 | 2016-04-20 Bin Cheng <bin.cheng@arm.com> | |
28173 | ||
28174 | * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR. | |
28175 | ||
28176 | 2016-04-20 Marek Polacek <polacek@redhat.com> | |
28177 | ||
28178 | PR tree-optimization/70725 | |
28179 | * tree-if-conv.c (is_false_predicate): New function. | |
28180 | (predicate_mem_writes): Use it. | |
28181 | ||
28182 | 2016-04-20 Richard Biener <rguenther@suse.de> | |
28183 | ||
28184 | PR tree-optimization/70726 | |
28185 | * tree-vect-stmts.c (vectorizable_shift): Do not use scalar | |
28186 | shift amounts from a pattern stmt operand. | |
28187 | ||
28188 | 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
28189 | ||
28190 | PR target/70674 | |
28191 | * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new | |
28192 | stack_restore_from_fpr pattern when restoring r15. | |
28193 | (s390_optimize_prologue): Strip away the memory barrier in the | |
28194 | parallel when trying to get rid of restore insns. | |
28195 | * config/s390/s390.md ("stack_restore_from_fpr"): New insn | |
28196 | definition for loading the stack pointer from an FPR. Compared to | |
28197 | the normal move insn this pattern includes a full memory barrier. | |
28198 | ||
28199 | 2016-04-19 Jakub Jelinek <jakub@redhat.com> | |
28200 | ||
28201 | PR middle-end/70680 | |
28202 | * gimplify.c (gimplify_omp_for): Call omp_notice_variable for | |
28203 | implicitly linear or lastprivate iterator on the outer context. | |
28204 | ||
28205 | 2016-04-19 H.J. Lu <hongjiu.lu@intel.com> | |
28206 | ||
28207 | * config/i386/i386.c (ix86_legitimate_combined_insn): Remove | |
28208 | alignment check. | |
28209 | * config/i386/i386.md (ssememalign): Removed. | |
28210 | * config/i386/sse.md: Remove ssememalign attribute from patterns. | |
28211 | ||
28212 | 2016-04-19 H.J. Lu <hongjiu.lu@intel.com> | |
28213 | ||
28214 | PR target/69201 | |
28215 | * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass | |
28216 | const short * to __builtin_ia32_loaddquhi512_mask. | |
28217 | (_mm512_maskz_loadu_epi16): Likewise. | |
28218 | (_mm512_mask_storeu_epi16): Pass short * to | |
28219 | __builtin_ia32_storedquhi512_mask. | |
28220 | (_mm512_mask_loadu_epi8): Pass const char * to | |
28221 | __builtin_ia32_loaddquqi512_mask. | |
28222 | (_mm512_maskz_loadu_epi8): Likewise. | |
28223 | (_mm512_mask_storeu_epi8): Pass char * to | |
28224 | __builtin_ia32_storedquqi512_mask. | |
28225 | * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass | |
28226 | const double * to __builtin_ia32_loadupd512_mask. | |
28227 | (_mm512_mask_loadu_pd): Likewise. | |
28228 | (_mm512_maskz_loadu_pd): Likewise. | |
28229 | (_mm512_storeu_pd): Pass double * to | |
28230 | __builtin_ia32_storeupd512_mask. | |
28231 | (_mm512_mask_storeu_pd): Likewise. | |
28232 | (_mm512_loadu_ps): Pass const float * to | |
28233 | __builtin_ia32_loadups512_mask. | |
28234 | (_mm512_mask_loadu_ps): Likewise. | |
28235 | (_mm512_maskz_loadu_ps): Likewise. | |
28236 | (_mm512_storeu_ps): Pass float * to | |
28237 | __builtin_ia32_storeups512_mask. | |
28238 | (_mm512_mask_storeu_ps): Likewise. | |
28239 | (_mm512_mask_loadu_epi64): Pass const long long * to | |
28240 | __builtin_ia32_loaddqudi512_mask. | |
28241 | (_mm512_maskz_loadu_epi64): Likewise. | |
28242 | (_mm512_mask_storeu_epi64): Pass long long * | |
28243 | to __builtin_ia32_storedqudi512_mask. | |
28244 | (_mm512_loadu_si512): Pass const int * to | |
28245 | __builtin_ia32_loaddqusi512_mask. | |
28246 | (_mm512_mask_loadu_epi32): Likewise. | |
28247 | (_mm512_maskz_loadu_epi32): Likewise. | |
28248 | (_mm512_storeu_si512): Pass int * to | |
28249 | __builtin_ia32_storedqusi512_mask. | |
28250 | (_mm512_mask_storeu_epi32): Likewise. | |
28251 | * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass | |
28252 | char * to __builtin_ia32_storedquqi256_mask. | |
28253 | (_mm_mask_storeu_epi8): Likewise. | |
28254 | (_mm256_mask_loadu_epi16): Pass const short * to | |
28255 | __builtin_ia32_loaddquhi256_mask. | |
28256 | (_mm256_maskz_loadu_epi16): Likewise. | |
28257 | (_mm_mask_loadu_epi16): Pass const short * to | |
28258 | __builtin_ia32_loaddquhi128_mask. | |
28259 | (_mm_maskz_loadu_epi16): Likewise. | |
28260 | (_mm256_mask_loadu_epi8): Pass const char * to | |
28261 | __builtin_ia32_loaddquqi256_mask. | |
28262 | (_mm256_maskz_loadu_epi8): Likewise. | |
28263 | (_mm_mask_loadu_epi8): Pass const char * to | |
28264 | __builtin_ia32_loaddquqi128_mask. | |
28265 | (_mm_maskz_loadu_epi8): Likewise. | |
28266 | (_mm256_mask_storeu_epi16): Pass short * to. | |
28267 | __builtin_ia32_storedquhi256_mask. | |
28268 | (_mm_mask_storeu_epi16): Pass short * to. | |
28269 | __builtin_ia32_storedquhi128_mask. | |
28270 | * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass | |
28271 | const double * to __builtin_ia32_loadupd256_mask. | |
28272 | (_mm256_maskz_loadu_pd): Likewise. | |
28273 | (_mm_mask_loadu_pd): Pass onst double * to | |
28274 | __builtin_ia32_loadupd128_mask. | |
28275 | (_mm_maskz_loadu_pd): Likewise. | |
28276 | (_mm256_mask_storeu_pd): Pass double * to | |
28277 | __builtin_ia32_storeupd256_mask. | |
28278 | (_mm_mask_storeu_pd): Pass double * to | |
28279 | __builtin_ia32_storeupd128_mask. | |
28280 | (_mm256_mask_loadu_ps): Pass const float * to | |
28281 | __builtin_ia32_loadups256_mask. | |
28282 | (_mm256_maskz_loadu_ps): Likewise. | |
28283 | (_mm_mask_loadu_ps): Pass const float * to | |
28284 | __builtin_ia32_loadups128_mask. | |
28285 | (_mm_maskz_loadu_ps): Likewise. | |
28286 | (_mm256_mask_storeu_ps): Pass float * to | |
28287 | __builtin_ia32_storeups256_mask. | |
28288 | (_mm_mask_storeu_ps): ass float * to | |
28289 | __builtin_ia32_storeups128_mask. | |
28290 | (_mm256_mask_loadu_epi64): Pass const long long * to | |
28291 | __builtin_ia32_loaddqudi256_mask. | |
28292 | (_mm256_maskz_loadu_epi64): Likewise. | |
28293 | (_mm_mask_loadu_epi64): Pass const long long * to | |
28294 | __builtin_ia32_loaddqudi128_mask. | |
28295 | (_mm_maskz_loadu_epi64): Likewise. | |
28296 | (_mm256_mask_storeu_epi64): Pass long long * to | |
28297 | __builtin_ia32_storedqudi256_mask. | |
28298 | (_mm_mask_storeu_epi64): Pass long long * to | |
28299 | __builtin_ia32_storedqudi128_mask. | |
28300 | (_mm256_mask_loadu_epi32): Pass const int * to | |
28301 | __builtin_ia32_loaddqusi256_mask. | |
28302 | (_mm256_maskz_loadu_epi32): Likewise. | |
28303 | (_mm_mask_loadu_epi32): Pass const int * to | |
28304 | __builtin_ia32_loaddqusi128_mask. | |
28305 | (_mm_maskz_loadu_epi32): Likewise. | |
28306 | (_mm256_mask_storeu_epi32): Pass int * to | |
28307 | __builtin_ia32_storedqusi256_mask. | |
28308 | (_mm_mask_storeu_epi32): Pass int * to | |
28309 | __builtin_ia32_storedqusi128_mask. | |
28310 | * config/i386/i386-builtin-types.def (PCSHORT): New. | |
28311 | (PINT64): Likewise. | |
28312 | (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise. | |
28313 | (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise. | |
28314 | (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise. | |
28315 | (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise. | |
28316 | (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise. | |
28317 | (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise. | |
28318 | (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise. | |
28319 | (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise. | |
28320 | (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise. | |
28321 | (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise. | |
28322 | (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise. | |
28323 | (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise. | |
28324 | (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise. | |
28325 | (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise. | |
28326 | (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise. | |
28327 | (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise. | |
28328 | (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise. | |
28329 | (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise. | |
28330 | (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise. | |
28331 | (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise. | |
28332 | (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise. | |
28333 | (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise. | |
28334 | (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise. | |
28335 | (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise. | |
28336 | (VOID_FTYPE_PINT64_V8DI_UQI): Likewise. | |
28337 | (VOID_FTYPE_PINT64_V4DI_UQI): Likewise. | |
28338 | (VOID_FTYPE_PINT64_V2DI_UQI): Likewise. | |
28339 | (VOID_FTYPE_PINT_V16SI_UHI): Likewise. | |
28340 | (VOID_FTYPE_PINT_V8SI_UHI): Likewise. | |
28341 | (VOID_FTYPE_PINT_V4SI_UHI): Likewise. | |
28342 | (VOID_FTYPE_PSHORT_V32HI_USI): Likewise. | |
28343 | (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise. | |
28344 | (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise. | |
28345 | (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise. | |
28346 | (VOID_FTYPE_PCHAR_V32QI_USI): Likewise. | |
28347 | (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise. | |
28348 | (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed. | |
28349 | (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise. | |
28350 | (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise. | |
28351 | (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise. | |
28352 | (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise. | |
28353 | (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise. | |
28354 | (VOID_FTYPE_PV32HI_V32HI_USI): Likewise. | |
28355 | (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise. | |
28356 | (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise. | |
28357 | (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise. | |
28358 | (VOID_FTYPE_PV32QI_V32QI_USI): Likewise. | |
28359 | (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise. | |
28360 | * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't | |
28361 | use UNSPEC_STOREU. | |
28362 | (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU. | |
28363 | (ix86_avx256_split_vector_move_misalign): Don't use unaligned | |
28364 | load nor store. | |
28365 | (ix86_expand_vector_move_misalign): Likewise. | |
28366 | (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer | |
28367 | to scalar function prototype for unaligned load/store builtins. | |
28368 | (ix86_expand_special_args_builtin): Updated. | |
28369 | * config/i386/sse.md (UNSPEC_LOADU): Removed. | |
28370 | (UNSPEC_STOREU): Likewise. | |
28371 | (VI_ULOADSTORE_BW_AVX512VL): Likewise. | |
28372 | (VI_ULOADSTORE_F_AVX512VL): Likewise. | |
28373 | (ssescalarsize): Handle V4TI, V2TI and V1TI. | |
28374 | (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise. | |
28375 | (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise. | |
28376 | (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise. | |
28377 | (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise. | |
28378 | (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise. | |
28379 | (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise. | |
28380 | (sse2_avx_avx512f>_storedqu<mode>): Likewise. | |
28381 | (<avx512>_storedqu<mode>_mask): Likewise. | |
28382 | (*sse4_2_pcmpestr_unaligned): Likewise. | |
28383 | (*sse4_2_pcmpistr_unaligned): Likewise. | |
28384 | (*mov<mode>_internal): Renamed to ... | |
28385 | (mov<mode>_internal): This. Remove check of AVX and IAMCU on | |
28386 | misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>. | |
28387 | (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU. | |
28388 | (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU. | |
28389 | ||
28390 | 2016-04-19 Richard Biener <rguenther@suse.de> | |
28391 | ||
28392 | PR tree-optimization/70171 | |
28393 | * tree-ssa-phiprop.c: Include stor-layout.h. | |
28394 | (phiprop_insert_phi): Handle the aggregate copy case. | |
28395 | (propagate_with_phi): Likewise. | |
28396 | ||
28397 | 2016-04-19 Uros Bizjak <ubizjak@gmail.com> | |
28398 | ||
28399 | * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg | |
28400 | instead of simplify_gen_subreg (... , 0). | |
28401 | (ix86_delegitimize_address): Ditto. | |
28402 | (ix86_split_divmod): Ditto. | |
28403 | (ix86_split_copysign_const): Ditto. | |
28404 | (ix86_split_copysign_var): Ditto. | |
28405 | (ix86_expand_args_builtin): Ditto. | |
28406 | (ix86_expand_round_builtin): Ditto. | |
28407 | (ix86_expand_special_args_builtin): Ditto. | |
28408 | * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto. | |
28409 | (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto. | |
28410 | (udivmodqi4): Ditto. | |
28411 | (absneg splitters): Ditto. | |
28412 | (*jcc_bt<mode>_1): Ditto. | |
28413 | ||
28414 | 2016-04-19 Richard Biener <rguenther@suse.de> | |
28415 | ||
28416 | PR tree-optimization/70724 | |
28417 | * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info | |
28418 | restoring out from ... | |
28419 | (free_scc_vn): ... here. | |
28420 | * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare. | |
28421 | * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before | |
28422 | tail merging. | |
28423 | (pass_fre::execute): Restore SSA info. | |
28424 | ||
28425 | 2016-04-19 Richard Biener <rguenther@suse.de> | |
28426 | ||
28427 | * gimple-walk.h (struct walk_stmt_info): Add stmt member. | |
28428 | * gimple-walk.c (walk_gimple_op): Initialize it. | |
28429 | (walk_gimple_asm): Set wi->is_lhs before each callback invocation. | |
28430 | * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when | |
28431 | remapping SSA names of defs. | |
28432 | (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT | |
28433 | adjustment. | |
28434 | ||
28435 | 2016-04-18 Vladimir Makarov <vmakarov@redhat.com> | |
28436 | ||
28437 | PR middle-end/70689 | |
28438 | * lra-constraints.c (equiv_substition_p): New. | |
28439 | (process_alt_operands): Use it. | |
28440 | (swap_operands): Swap it. | |
28441 | (curr_insn_transform): Update it. | |
28442 | ||
28443 | 2016-04-18 Michael Matz <matz@suse.de> | |
28444 | ||
28445 | * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount. | |
28446 | (SET_TYPE_ALIGN, SET_DECL_ALIGN): New. | |
28447 | * tree-core.h (tree_type_common.align): Use bit-field. | |
28448 | (tree_type_common.spare): New. | |
28449 | (tree_decl_common.off_align): Make smaller. | |
28450 | (tree_decl_common.align): Use bit-field. | |
28451 | ||
28452 | * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN. | |
28453 | * omp-low.c (install_var_field): Use SET_DECL_ALIGN. | |
28454 | (scan_sharing_clauses): Ditto. | |
28455 | (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN. | |
28456 | (omp_finish_file): Ditto. | |
28457 | * stor-layout.c (do_type_align): Use SET_DECL_ALIGN. | |
28458 | (layout_decl): Ditto. | |
28459 | (relayout_decl): Ditto. | |
28460 | (finalize_record_size): Use SET_TYPE_ALIGN. | |
28461 | (finalize_type_size): Ditto. | |
28462 | (finish_builtin_struct): Ditto. | |
28463 | (layout_type): Ditto. | |
28464 | (initialize_sizetypes): Ditto. | |
28465 | * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN. | |
28466 | * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN. | |
28467 | (lookup_field_for_decl): Use SET_DECL_ALIGN. | |
28468 | (get_chain_field): Ditto. | |
28469 | (get_trampoline_type): Ditto. | |
28470 | (get_nl_goto_field): Ditto. | |
28471 | * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use | |
28472 | SET_DECL_ALIGN. | |
28473 | (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN. | |
28474 | * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN. | |
28475 | * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN. | |
28476 | (build_qualified_type): Use SET_TYPE_ALIGN. | |
28477 | (build_aligned_type, build_range_type_1): Ditto. | |
28478 | (build_atomic_base): Ditto. | |
28479 | (build_common_tree_nodes): Ditto. | |
28480 | * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN. | |
28481 | (expand_one_stack_var_at): Ditto. | |
28482 | * coverage.c (build_var): Use SET_DECL_ALIGN. | |
28483 | * except.c (init_eh): Ditto. | |
28484 | * function.c (assign_parm_setup_block): Ditto. | |
28485 | * symtab.c (increase_alignment_1): Ditto. | |
28486 | * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto. | |
28487 | * tree-vect-stmts.c (ensure_base_align): Ditto. | |
28488 | * varasm.c (align_variable): Ditto. | |
28489 | (assemble_variable): Ditto. | |
28490 | (build_constant_desc): Ditto. | |
28491 | (output_constant_def_contents): Ditto. | |
28492 | ||
28493 | * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN. | |
28494 | * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN. | |
28495 | * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto. | |
28496 | * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto. | |
28497 | * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN. | |
28498 | ||
28499 | 2016-04-18 H.J. Lu <hongjiu.lu@intel.com> | |
28500 | ||
28501 | PR target/70708 | |
28502 | * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and | |
28503 | replace %vmovsd with "%vmovq". | |
28504 | (vec_concatv2df): Likewise. | |
28505 | ||
28506 | 2016-04-18 Uros Bizjak <ubizjak@gmail.com> | |
28507 | ||
28508 | * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart. | |
28509 | (*vec_extractv2si_0): Ditto. | |
28510 | * config/i386/sse.md (*vec_extractv4sf_0): Ditto. | |
28511 | (zero_extended_scalar_load_operand splitters): Ditto. | |
28512 | (vec_extract splitters): Ditto. | |
28513 | (*vec_extractv4si_0_zext): Ditto. | |
28514 | (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart | |
28515 | and lowpart_subreg. | |
28516 | (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto. | |
28517 | (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto. | |
28518 | (*sse4_1_extractps): Use lowpart_subreg. | |
28519 | * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart. | |
28520 | ||
28521 | 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
28522 | ||
28523 | * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and | |
28524 | gld requirements. | |
28525 | (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions. | |
28526 | Mention Solaris 11 packaging changes. | |
28527 | Update gas and gld requirements. | |
28528 | Remove reference to pre-Solaris 10 bug. | |
28529 | (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10 | |
28530 | systems and bugs. | |
28531 | (Specific, sparc64-*-solaris2*): Remove reference to bootstrap | |
28532 | with cc. | |
28533 | ||
28534 | 2016-04-17 Jan Hubicka <jh@suse.cz> | |
28535 | ||
28536 | * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also | |
28537 | max_loop_iterations_int. | |
28538 | ||
28539 | 2016-04-18 Richard Biener <rguenther@suse.de> | |
28540 | ||
28541 | PR tree-optimization/43434 | |
28542 | * tree-ssa-structalias.c (struct vls_data): New. | |
28543 | (visit_loadstore): Handle all pointer-based accesses. | |
28544 | (compute_dependence_clique): Compute a bitmap of restrict tags | |
28545 | assigned bases and pass it to visit_loadstore. | |
28546 | ||
28547 | 2016-04-18 Matthew Wahab <matthew.wahab@arm.com> | |
28548 | ||
28549 | PR target/70711 | |
28550 | * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc, | |
28551 | armv8.1-a and armv8.1-a+crc. | |
28552 | ||
28553 | 2016-04-18 Richard Biener <rguenther@suse.de> | |
28554 | ||
28555 | PR tree-optimization/70701 | |
28556 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant | |
28557 | references after translating through a memcpy. | |
28558 | ||
28559 | 2016-04-18 Richard Biener <rguenther@suse.de> | |
28560 | ||
28561 | * tree-ssa-pre.c (postorder, postorder_num): Make locals ... | |
28562 | (compute_antic): ... here. For partial antic use regular | |
28563 | postorder and scrap iteration. | |
28564 | (compute_partial_antic_aux): Remove unused return value. | |
28565 | (init_pre): Do not allocate postorder. | |
28566 | (fini_pre): Do not free postorder. | |
28567 | ||
28568 | 2016-04-18 Richard Biener <rguenther@suse.de> | |
28569 | ||
28570 | PR middle-end/37870 | |
28571 | * expmed.c (extract_bit_field_1): Remove broken case | |
28572 | using a wider MODE_INT mode. | |
28573 | ||
28574 | 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org> | |
28575 | ||
28576 | * has-brig.c (lendian16): Don't try to use __builtin_bswap16 | |
28577 | unless compiling with at least GCC-4.8. | |
28578 | ||
28579 | 2016-04-17 Jan Hubicka <jh@suse.cz> | |
28580 | ||
28581 | PR bootstrap/70706 | |
28582 | * graphite.c (graphite_finalize): Update call to | |
28583 | tree_estimate_probability. | |
28584 | * predict.h (tree_estimate_probability): Update prototype. | |
28585 | ||
28586 | 2016-04-17 Jan Hubicka <jh@suse.cz> | |
28587 | ||
28588 | * predict.c (combine_predictions_for_bb): Add dry_run parmaeter. | |
28589 | (tree_estimate_probability): Likewise. | |
28590 | (pass_profile::execute): Update. | |
28591 | (report_predictor_hitrates): New function. | |
28592 | * profile.c (compute_branch_probabilities): Use it. | |
28593 | * predict.h (report_predictor_hitrates): Declare. | |
28594 | ||
28595 | 2016-04-17 Jan Hubicka <jh@suse.cz> | |
28596 | ||
28597 | PR ipa/70018 | |
28598 | * cgraph.h (cgraph_node::set_const_flag, | |
28599 | cgraph_node::set_pure_flag): Update prototype to return bool; | |
28600 | update comment. | |
28601 | * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks | |
28602 | of interposable symbol are interposable, too. | |
28603 | (cgraph_set_const_flag_1): Rename to ... | |
28604 | (set_const_flag_1): ... this one; change to self recursive function | |
28605 | instead of call_for_symbol_thunks_and_aliases. Handle correctly | |
28606 | clearnig the flag in all variants and also virtual thunks of const | |
28607 | functions are pure; track if any change was done. | |
28608 | (cgraph_node::set_const_flag): Update. | |
28609 | (struct set_pure_flag_info): New struct. | |
28610 | (cgraph_set_pure_flag_1): Rename to ... | |
28611 | (set_pure_flag_1): ... this one; take set_pure_flag_info parameter | |
28612 | rather than pointer encoded flags; track if any changes was done; | |
28613 | handle correctly clearning flag and setting flag of aliases already | |
28614 | declared const. | |
28615 | (cgraph_node::set_pure_flag): Update. | |
28616 | (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag. | |
28617 | ||
28618 | 2016-04-17 Tom de Vries <tom@codesourcery.com> | |
28619 | ||
28620 | PR other/70433 | |
28621 | * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape | |
28622 | backslash in label. | |
28623 | ||
28624 | 2016-04-17 Tom de Vries <tom@codesourcery.com> | |
28625 | ||
28626 | * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars | |
28627 | '{}<> ' as escape-for-record. | |
28628 | ||
28629 | 2016-04-17 Tom de Vries <tom@codesourcery.com> | |
28630 | ||
28631 | * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop | |
28632 | structure. | |
28633 | ||
28634 | 2016-04-17 Tom de Vries <tom@codesourcery.com> | |
28635 | ||
28636 | PR other/70185 | |
28637 | * tree-pass.h (class opt_pass): Remove graph_dump_initialized member. | |
28638 | * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field. | |
28639 | * dumpfile.c (dump_files): Initialize graph_dump_initialized field. | |
28640 | * passes.c (finish_optimization_passes): Only call | |
28641 | finish_graph_dump_file if dfi->graph_dump_initialized. | |
28642 | (execute_function_dump, pass_init_dump_file): Use | |
28643 | dfi->graph_dump_initialized instead of pass->graph_dump_initialized. | |
28644 | ||
28645 | 2016-04-17 Tom de Vries <tom@codesourcery.com> | |
28646 | ||
28647 | PR tree-optimization/70256 | |
28648 | * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap) | |
28649 | (debug_varmap): New function. | |
28650 | ||
28651 | 2016-04-17 Tom de Vries <tom@codesourcery.com> | |
28652 | ||
28653 | PR other/70183 | |
28654 | * passes.c (pass_manager::register_pass): Propagate pflags. | |
28655 | ||
28656 | 2016-04-17 Tom de Vries <tom@codesourcery.com> | |
28657 | ||
28658 | PR other/68875 | |
28659 | * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument. | |
28660 | * passes.c (pass_manager::pass_manager): Declare and init p_start in | |
28661 | INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and | |
28662 | check if it's equal to p_start. | |
28663 | * passes.def: Add arguments to TERMINATE_PASS_LISTs. | |
28664 | ||
28665 | 2016-04-15 Jan Hubicka <jh@suse.cz> | |
28666 | ||
28667 | PR ipa/70018 | |
28668 | * cgraph.c (cgraph_set_const_flag_1): Only set as pure if | |
28669 | function does not bind to current def. | |
28670 | * ipa-pure-const.c (worse_state): Add FROM and TO parameters; | |
28671 | handle conservatively calls to functions that does not need to bind | |
28672 | to current def. | |
28673 | (check_call): Update call of worse_state. | |
28674 | (ignore_edge_for_nothrow): Update. | |
28675 | (ignore_edge_for_pure_const): Likewise. | |
28676 | (propagate_pure_const): Update calls to worse_state. | |
28677 | (skip_function_for_local_pure_const): Reformat comments. | |
28678 | ||
28679 | 2016-04-15 Jan Hubicka <jh@suse.cz> | |
28680 | ||
28681 | PR ipa/70018 | |
28682 | * cgraph.c (cgraph_node::get_availability): Add REF parameter. | |
28683 | (cgraph_node::function_symbol): Likewise. | |
28684 | (cgraph_node::function_or_virtual_thunk_symbol): Likewise. | |
28685 | * cgraph.h (symtab_node::get_availabbility): Add REF parameter. | |
28686 | (symtab_node::ultimate_alias_target): Add REF parameter. | |
28687 | (symtab_node::binds_to_current_def_p): Declare. | |
28688 | (symtab_node;:ultimate_alias_target_1): Add REF parameter. | |
28689 | (cgraph_node::function_symbol): Likewise. | |
28690 | (cgraph_node::function_or_virtual_thunk_symbol): Likewise. | |
28691 | (cgraph_node::get_availability): Likewise. | |
28692 | (cgraph_edge::binds_to_current_def_p): New inline function. | |
28693 | (varpool_node::get_availability): Add REF parameter. | |
28694 | (varpool_node::ultimate_alias_target): Likewise. | |
28695 | * symtab.c (symtab_node::ultimate_alias_target_1): Likewise. | |
28696 | (symtab_node::binds_to_current_def_p): Likewise. | |
28697 | * varpool.c (varpool_node::get_availability): Likewise. | |
28698 | ||
28699 | 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com> | |
28700 | ||
28701 | PR target/70662 | |
28702 | * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"): | |
28703 | Fix mode size check. | |
28704 | ||
28705 | 2016-04-15 Jakub Jelinek <jakub@redhat.com> | |
28706 | ||
28707 | * BASE-VER: Set to 7.0.0. | |
28708 | ||
28709 | 2016-04-15 Alexander Monakov <amonakov@ispras.ru> | |
28710 | ||
28711 | * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text. | |
28712 | ||
28713 | 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
28714 | ||
28715 | * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T | |
28716 | architecture revisions. | |
28717 | ||
28718 | 2016-04-15 Bernd Schmidt <bschmidt@redhat.com> | |
28719 | ||
28720 | * config/i386/i386-protos.h (ix86_using_red_zone): Declare. | |
28721 | * config/i386/i386.c (ix86_using_red_zone): No longer static. | |
28722 | * config/i386/i386.md (stack decrement to push peepholes): Guard | |
28723 | with !x86_using_red_zone (). | |
28724 | ||
28725 | 2016-04-15 Jakub Jelinek <jakub@redhat.com> | |
28726 | ||
28727 | PR c++/70675 | |
28728 | * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down | |
28729 | to dump_generic_node. | |
28730 | (NIY): Pass also flags to do_niy. | |
28731 | ||
28732 | 2016-04-15 Thomas Schwinge <thomas@codesourcery.com> | |
28733 | ||
28734 | * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy) | |
28735 | (simd_clone_vector_of_formal_parm_types) | |
28736 | (simd_clone_clauses_extract, simd_clone_compute_base_data_type) | |
28737 | (simd_clone_mangle, simd_clone_create) | |
28738 | (simd_clone_adjust_return_type, create_tmp_simd_array) | |
28739 | (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays) | |
28740 | (struct modify_stmt_info, ipa_simd_modify_stmt_ops) | |
28741 | (ipa_simd_modify_function_body, simd_clone_linear_addend) | |
28742 | (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone) | |
28743 | (pass_data_omp_simd_clone, class pass_omp_simd_clone) | |
28744 | (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into... | |
28745 | * omp-simd-clone.c: ... this new file. | |
28746 | (simd_clone_vector_of_formal_parm_types): Make it static. | |
28747 | * Makefile.in (OBJS): Add omp-simd-clone.o. | |
28748 | ||
28749 | 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com> | |
28750 | ||
28751 | PR target/70662 | |
28752 | * config/i386/sse.md: Use proper memory operand modifiers. | |
28753 | ||
28754 | ||
28755 | 2016-04-15 Richard Biener <rguenther@suse.de> | |
28756 | Alan Modra <amodra@gmail.com> | |
28757 | ||
28758 | PR tree-optimization/70130 | |
28759 | * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect | |
28760 | when alignment stays not the same and no not use the realign | |
28761 | scheme then. | |
28762 | ||
28763 | 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com> | |
28764 | ||
28765 | PR target/70669 | |
28766 | * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add | |
28767 | direct move handlers for KFmode. Change TFmode handlers test from | |
28768 | FLOAT128_IEEE_P to FLOAT128_VECTOR_P. | |
28769 | ||
28770 | 2016-04-14 Jakub Jelinek <jakub@redhat.com> | |
28771 | ||
28772 | PR c++/70594 | |
28773 | * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype. | |
28774 | * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function. | |
28775 | (inlined_polymorphic_ctor_dtor_block_p): Use it. | |
28776 | * tree-ssa-live.c (remove_unused_scope_block_p): When | |
28777 | in_ctor_dtor_block, avoid discarding not just BLOCKs with | |
28778 | BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when | |
28779 | block_ultimate_origin is FUNCTION_DECL. | |
28780 | (remove_unused_locals): If current_function_decl is | |
28781 | polymorphic_ctor_dtor_p, pass initial true to | |
28782 | remove_unused_scope_block_p' is_ctor_dtor_block. | |
28783 | ||
28784 | 2016-04-14 Martin Sebor <msebor@redhat.com> | |
28785 | ||
28786 | PR c++/69517 | |
28787 | PR c++/70019 | |
28788 | PR c++/70588 | |
28789 | * doc/extend.texi (Variable Length): Revert. | |
28790 | ||
28791 | 2016-04-14 Marek Polacek <polacek@redhat.com> | |
28792 | Jan Hubicka <hubicka@ucw.cz> | |
28793 | ||
28794 | PR c++/70029 | |
28795 | * tree.c (verify_type): Disable the canonical type of main variant | |
28796 | check. | |
28797 | ||
28798 | 2016-04-14 Jason Merrill <jason@redhat.com> | |
28799 | ||
28800 | * cfgexpand.c, expr.c: Revert previous change. | |
28801 | ||
28802 | 2016-04-14 Cesar Philippidis <cesar@codesourcery.com> | |
28803 | ||
28804 | PR middle-end/70643 | |
28805 | * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT | |
28806 | when building a mem ref for the incoming reduction variable. | |
28807 | ||
28808 | 2016-04-14 Richard Biener <rguenther@suse.de> | |
28809 | ||
28810 | PR tree-optimization/70614 | |
28811 | * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate | |
28812 | loop if the evolution dropped to chrec_dont_know. | |
28813 | (interpret_condition_phi): Likewise. | |
28814 | ||
28815 | 2016-04-14 Richard Biener <rguenther@suse.de> | |
28816 | ||
28817 | PR tree-optimization/70623 | |
28818 | * tree-ssa-pre.c (changed_blocks): Make global ... | |
28819 | (compute_antic): ... local here. Move and fix worklist | |
28820 | handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges. | |
28821 | (compute_antic_aux): Add dumping for MAX assumed succs. Remove | |
28822 | worklist handling, dump when ANTIC_IN changed. | |
28823 | (compute_partial_antic_aux): Remove worklist handling. | |
28824 | (init_pre): Do not compute post dominators. Add a comment about | |
28825 | the CFG order chosen. | |
28826 | (fini_pre): Do not free post dominators. | |
28827 | ||
28828 | 2016-04-13 Martin Sebor <msebor@redhat.com> | |
28829 | ||
28830 | PR c++/69517 | |
28831 | PR c++/70019 | |
28832 | PR c++/70588 | |
28833 | * doc/extend.texi (Variable Length): Document C++ specifics. | |
28834 | ||
28835 | 2016-04-13 Jakub Jelinek <jakub@redhat.com> | |
28836 | ||
28837 | PR c++/70641 | |
28838 | * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt | |
28839 | on all recursive call stmts. Return TODO_cleanup_cfg if any dead | |
28840 | eh edges have been purged. | |
28841 | ||
28842 | PR c++/70594 | |
28843 | * tree-sra.c (create_access_replacement, | |
28844 | get_replaced_param_substitute): Set DECL_NAMELESS on repl if it | |
28845 | gets fancy name. | |
28846 | * tree-pretty-print.c (dump_fancy_name): New function. | |
28847 | (dump_decl_name, dump_generic_node): Use it. | |
28848 | ||
28849 | 2016-04-13 Jason Merrill <jason@redhat.com> | |
28850 | ||
28851 | * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning". | |
28852 | * expr.c (expand_expr_real_1): Likewise. | |
28853 | ||
28854 | 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com> | |
28855 | ||
28856 | * config/i386/i386.md (kunpckhi): Swap operands. | |
28857 | (kunpcksi): Likewise. | |
28858 | (kunpckdi): Likewise. | |
28859 | * config/i386/sse.md (vec_pack_trunc_qi): Likewise. | |
28860 | (vec_pack_trunc_<mode>): Likewise. | |
28861 | ||
28862 | 2016-04-13 Jakub Jelinek <jakub@redhat.com> | |
28863 | ||
28864 | PR debug/70628 | |
28865 | * explow.c (convert_memory_address_addr_space_1): Formatting fix. | |
28866 | ||
28867 | PR middle-end/70633 | |
28868 | * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if | |
28869 | gimplification turns some element into non-constant. | |
28870 | ||
28871 | PR debug/70628 | |
28872 | * rtl.h (convert_memory_address_addr_space_1): New prototype. | |
28873 | * explow.c (convert_memory_address_addr_space_1): No longer static, | |
28874 | add NO_EMIT argument and don't call convert_modes if true, pass | |
28875 | it down recursively, remove break after return. | |
28876 | (convert_memory_address_addr_space): Adjust caller. | |
28877 | * simplify-rtx.c (simplify_unary_operation_1): Call | |
28878 | convert_memory_address_addr_space_1 instead of convert_memory_address, | |
28879 | if it returns NULL, don't simplify. | |
28880 | ||
28881 | 2016-04-12 Eric Botcazou <ebotcazou@adacore.com> | |
28882 | ||
28883 | PR target/70630 | |
28884 | * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses. | |
28885 | ||
28886 | 2016-04-12 Jakub Jelinek <jakub@redhat.com> | |
28887 | ||
28888 | * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): | |
28889 | Bump the upper SIMDLEN limits, so that if the return type or | |
28890 | characteristic type if the return type is void can be passed in | |
28891 | all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is | |
28892 | allowed. | |
28893 | ||
28894 | 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com> | |
28895 | ||
28896 | PR target/70640 | |
28897 | * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal): | |
28898 | Do not use "=" constraint on an input constraint. | |
28899 | (ieee_128bit_vsx_abs<mode>2_internal): Likewise. | |
28900 | (ieee_128bit_vsx_nabs<mode>2_internal): Likewise. | |
28901 | (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it | |
28902 | generates (neg (abs ...)) instead of (abs ...). | |
28903 | ||
28904 | 2016-04-12 Jakub Jelinek <jakub@redhat.com> | |
28905 | ||
28906 | PR rtl-optimization/70596 | |
28907 | * lra-spills.c (spill_pseudos): Don't delete debug insns, instead | |
28908 | just invalidate LRA data and reset them. Adjust dump wording. | |
28909 | ||
28910 | 2016-04-12 Martin Liska <mliska@suse.cz> | |
28911 | ||
28912 | Revert | |
28913 | 2016-03-30 Jan Hubicka <hubicka@ucw.cz> | |
28914 | ||
28915 | * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic | |
28916 | estimates here. | |
28917 | * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also | |
28918 | max_loop_iterations_int. | |
28919 | (tree_unswitch_outer_loop): Likewise. | |
28920 | * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise. | |
28921 | * tree-vect-loop.c (vect_analyze_loop_2): Likewise. | |
28922 | ||
28923 | 2016-04-12 Tom de Vries <tom@codesourcery.com> | |
28924 | ||
28925 | PR tree-optimization/68756 | |
28926 | * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr | |
28927 | instead of new_name. | |
28928 | ||
28929 | 2016-04-12 Jakub Jelinek <jakub@redhat.com> | |
28930 | ||
28931 | PR tree-optimization/70602 | |
28932 | * tree-sra.c (generate_subtree_copies): Don't write anything into | |
28933 | constant pool decls. | |
28934 | ||
28935 | * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT | |
28936 | regardless whether there are depend clauses or not. | |
28937 | ||
28938 | 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com> | |
28939 | ||
28940 | PR target/70381 | |
28941 | * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the | |
28942 | target attribute and pragma from changing the -mfloat128 | |
28943 | and -mfloat128-hardware options. | |
28944 | ||
28945 | * doc/extend.texi (Additional Floating Types): Document PowerPC | |
28946 | __float128 restrictions. | |
28947 | ||
28948 | 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com> | |
28949 | ||
28950 | PR target/70133 | |
28951 | * config/aarch64/driver-aarch64.c | |
28952 | (aarch64_get_extension_string_for_isa_flags): New. | |
28953 | (arch_extension): Rename to... | |
28954 | (aarch64_arch_extension): ...This. | |
28955 | (ext_to_feat_string): Rename to... | |
28956 | (aarch64_extensions): ...This. | |
28957 | (aarch64_core_data): Keep track of architecture extension flags. | |
28958 | (cpu_data): Rename to... | |
28959 | (aarch64_cpu_data): ...This. | |
28960 | (aarch64_arch_driver_info): Keep track of architecture extension | |
28961 | flags. | |
28962 | (get_arch_name_from_id): Rename to... | |
28963 | (get_arch_from_id): ...This, change return type. | |
28964 | (host_detect_local_cpu): Update and reformat for renames, handle | |
28965 | extensions through common infrastructure. | |
28966 | ||
28967 | 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com> | |
28968 | ||
28969 | PR target/70133 | |
28970 | * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep | |
28971 | track of a canonical flag name. | |
28972 | (all_extensions): Likewise. | |
28973 | (arch_to_arch_name): Also track extension flags enabled by the arch. | |
28974 | (all_architectures): Likewise. | |
28975 | (aarch64_parse_extension): Move to here. | |
28976 | (aarch64_get_extension_string_for_isa_flags): Take a new argument, | |
28977 | rework. | |
28978 | (aarch64_rewrite_selected_cpu): Update for above change. | |
28979 | * config/aarch64/aarch64-option-extensions.def: Rework the way flags | |
28980 | are handled, such that the single explicit value enabled by an | |
28981 | extension is kept seperate from the implicit values it also enables. | |
28982 | * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move | |
28983 | to here. | |
28984 | (aarch64_parse_extension): New. | |
28985 | * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from | |
28986 | here to config/aarch64/aarch64-protos.h. | |
28987 | (aarch64_parse_extension): Move from here to | |
28988 | common/config/aarch64/aarch64-common.c. | |
28989 | (aarch64_option_print): Update. | |
28990 | (aarch64_declare_function_name): Likewise. | |
28991 | (aarch64_start_file): Likewise. | |
28992 | * config/aarch64/driver-aarch64.c (arch_extension): Keep track of | |
28993 | the canonical flag for extensions. | |
28994 | * config.gcc (aarch64*-*-*): Extend regex for capturing extension | |
28995 | flags. | |
28996 | ||
28997 | 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com> | |
28998 | ||
28999 | * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add | |
29000 | AARCH64_FL_CRC. | |
29001 | ||
29002 | 2016-04-09 Tom de Vries <tom@codesourcery.com> | |
29003 | ||
29004 | PR tree-optimization/68953 | |
29005 | * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from | |
29006 | first to last subscript. | |
29007 | ||
29008 | 2016-04-09 Jakub Jelinek <jakub@redhat.com> | |
29009 | ||
29010 | PR tree-optimization/70586 | |
29011 | * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false | |
29012 | for any calls. | |
29013 | ||
29014 | 2016-04-08 Cesar Philippidis <cesar@codesourcery.com> | |
29015 | ||
29016 | PR lto/70289 | |
29017 | PR ipa/70348 | |
29018 | PR tree-optimization/70373 | |
29019 | PR middle-end/70533 | |
29020 | PR middle-end/70534 | |
29021 | PR middle-end/70535 | |
29022 | * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data | |
29023 | clauses for acc parallel reductions as necessary. Error on those | |
29024 | that are private. | |
29025 | * omp-low.c (scan_sharing_clauses): Don't install variables which | |
29026 | are used in acc parallel reductions. | |
29027 | (lower_rec_input_clauses): Remove dead code. | |
29028 | (lower_oacc_reductions): Add support for reference reductions. | |
29029 | (lower_reduction_clauses): Remove dead code. | |
29030 | (lower_omp_target): Don't remap variables appearing in acc parallel | |
29031 | reductions. | |
29032 | * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro. | |
29033 | ||
29034 | 2016-04-08 Jakub Jelinek <jakub@redhat.com> | |
29035 | ||
29036 | PR middle-end/70593 | |
29037 | * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt | |
29038 | with multiple SSA_NAME defs, force the outputs other than first | |
29039 | to be live before calling live_track_process_def on each output. | |
29040 | ||
29041 | PR rtl-optimization/70574 | |
29042 | * fwprop.c (forward_propagate_and_simplify): Don't add | |
29043 | REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg. | |
29044 | (try_fwprop_subst): Don't add REG_EQUAL note if there are any | |
29045 | paradoxical subregs within *loc. | |
29046 | ||
29047 | 2016-04-08 Thomas Schwinge <thomas@codesourcery.com> | |
29048 | ||
29049 | * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore | |
29050 | -ftree-parallelize-loops={0,1}. | |
29051 | * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise. | |
29052 | * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise. | |
29053 | * config/ia64/hpux.h (LIB_SPEC): Likewise. | |
29054 | * config/pa/pa-hpux11.h (LIB_SPEC): Likewise. | |
29055 | * config/pa/pa64-hpux.h (LIB_SPEC): Likewise. | |
29056 | ||
29057 | 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com> | |
29058 | ||
29059 | PR sanitizer/70541 | |
29060 | * asan.c (instrument_derefs): If we get unknown location, extract it | |
29061 | with EXPR_LOCATION. | |
29062 | (maybe_instrument_call): Instrument gimple_call's arguments if needed. | |
29063 | ||
29064 | 2016-04-08 Tom de Vries <tom@codesourcery.com> | |
29065 | ||
29066 | * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc | |
29067 | implicit firstprivate clause. | |
29068 | ||
29069 | 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
29070 | ||
29071 | PR target/70566 | |
29072 | * config/arm/thumb2.md (tst + branch-> lsls + branch | |
29073 | peephole below *orsi_not_shiftsi_si): Require that condition | |
29074 | register is dead after the peephole. | |
29075 | (second peephole after the above): Likewise. | |
29076 | ||
29077 | 2016-04-08 Alan Modra <amodra@gmail.com> | |
29078 | ||
29079 | PR target/70117 | |
29080 | * builtins.c (fold_builtin_classify): For IBM extended precision, | |
29081 | look at just the high-order double to test for NaN. | |
29082 | (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal | |
29083 | test just the high double for Inf but both doubles for subnormal | |
29084 | limit. | |
29085 | ||
29086 | 2016-04-07 Jakub Jelinek <jakub@redhat.com> | |
29087 | ||
29088 | * cgraph.h (struct cgraph_simd_clone): Add mask_mode field. | |
29089 | * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle | |
29090 | node->simdclone->mask_mode != VOIDmode masks. | |
29091 | (simd_clone_adjust_argument_types): Likewise. Move sc var definition | |
29092 | earlier, use it instead of node->simdclone. | |
29093 | * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): | |
29094 | Set clonei->mask_mode. | |
29095 | ||
29096 | 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org> | |
29097 | ||
29098 | PR c/70436 | |
29099 | * parser.c (cp_parser_iteration_statement): New parameter IF_P. | |
29100 | Pass it through to cp_parser_already_scoped_statement. | |
29101 | (cp_parser_already_scoped_statement): New parameter IF_P. Pass | |
29102 | it through to cp_parser_statement. | |
29103 | (cp_parser_statement): Pass IF_P through to | |
29104 | cp_parser_iteration_statement. | |
29105 | (cp_parser_pragma): Adjust call to | |
29106 | cp_parser_iteration_statement. | |
29107 | ||
29108 | 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org> | |
29109 | ||
29110 | PR c/70436 | |
29111 | * gimplify.c (gimplify_omp_ordered): Add explicit braces to | |
29112 | resolve a future -Wparentheses warning. | |
29113 | * omp-low.c (scan_sharing_clauses): Likewise. | |
29114 | * tree-parloops.c (eliminate_local_variables): Likewise. | |
29115 | ||
29116 | 2016-04-06 Vladimir Makarov <vmakarov@redhat.com> | |
29117 | ||
29118 | PR rtl-optimization/70398 | |
29119 | * lra-constraints.c (process_address_1): Check zero scale and code | |
29120 | for reloading with zero scale. | |
29121 | ||
29122 | 2016-04-06 Uros Bizjak <ubizjak@gmail.com> | |
29123 | ||
29124 | * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes. | |
29125 | (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes. | |
29126 | ||
29127 | 2016-04-06 Jakub Jelinek <jakub@redhat.com> | |
29128 | ||
29129 | * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): | |
29130 | Add support for AVX512F clones, include them by default for | |
29131 | exported OpenMP declare simd functions. For AVX2 allow simdlen 32 | |
29132 | and use it if charasteric type is 8-bit, for AVX512F allow simdlen | |
29133 | up to 128. | |
29134 | ||
29135 | PR middle-end/70550 | |
29136 | * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define. | |
29137 | * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit | |
29138 | firstprivate clauses. | |
29139 | * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for | |
29140 | OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts. | |
29141 | (lower_omp_target): Set TREE_NO_WARNING for | |
29142 | non-addressable possibly uninitialized vars which are copied into | |
29143 | addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT. | |
29144 | ||
29145 | 2016-04-05 John David Anglin <danglin@gcc.gnu.org> | |
29146 | ||
29147 | * config/pa/predicates.md (integer_store_memory_operand): Accept | |
29148 | REG+D operands with a large offset when reload_in_progress is true. | |
29149 | (floating_point_store_memory_operand): Likewise. | |
29150 | ||
29151 | 2016-04-05 Jakub Jelinek <jakub@redhat.com> | |
29152 | ||
29153 | PR c++/70336 | |
29154 | * match.pd (nested int casts): Limit to GIMPLE. | |
29155 | ||
29156 | 2016-04-05 Jan Hubicka <hubicka@ucw.cz> | |
29157 | ||
29158 | PR ipa/66223 | |
29159 | * ipa-devirt.c (maybe_record_node): Fix comment; use | |
29160 | SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED. | |
29161 | ||
29162 | 2016-04-05 Jakub Jelinek <jakub@redhat.com> | |
29163 | ||
29164 | PR rtl-optimization/70542 | |
29165 | * ree.c (add_removable_extension): For VECTOR_MODE_P punt | |
29166 | if there are any uses other than insn or debug insns. | |
29167 | ||
29168 | 2016-04-05 Marc Glisse <marc.glisse@inria.fr> | |
29169 | Jakub Jelinek <jakub@redhat.com> | |
29170 | ||
29171 | PR tree-optimization/70509 | |
29172 | * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>: | |
29173 | Shift HOST_WIDE_INT_1U instead of 1. | |
29174 | ||
29175 | 2016-04-05 Zdenek Sojka <zsojka@seznam.cz> | |
29176 | ||
29177 | PR tree-optimization/70509 | |
29178 | * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead | |
29179 | of the vector base type for index. | |
29180 | ||
29181 | 2016-04-05 Uros Bizjak <ubizjak@gmail.com> | |
29182 | ||
29183 | PR target/70510 | |
29184 | * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes. | |
29185 | ||
29186 | 2016-04-05 Richard Biener <rguenther@suse.de> | |
29187 | ||
29188 | PR tree-optimization/70526 | |
29189 | * tree-sra.c (build_ref_for_offset): Use prev_base to | |
29190 | extract the alias pointer type. | |
29191 | ||
29192 | 2016-04-05 Richard Biener <rguenther@suse.de> | |
29193 | ||
29194 | * dse.c (struct store_info): Remove alias_set member. | |
29195 | (struct read_info_type): Likewise. | |
29196 | (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder, | |
29197 | spill_deleted, clear_alias_set_lookup): Remove. | |
29198 | (get_group_info): Remove dead base == NULL_RTX case. | |
29199 | (dse_step0): Remove initialization of removed variables. | |
29200 | (delete_dead_store_insn): Reomve alias set dumping. | |
29201 | (free_read_records): Remove alias_set handling. | |
29202 | (canon_address): Remove alias_set_out parameter. | |
29203 | (record_store): Remove spill_alias_set, it's always zero. | |
29204 | (check_mem_read_rtx): Likewise. | |
29205 | (dse_step2): Rename from ... | |
29206 | (dse_step2_nospill): ... this. Adjust. | |
29207 | (scan_stores): Rename from ... | |
29208 | (scan_stores_nospill): ... this. | |
29209 | (scan_reads): Rename from ... | |
29210 | (scan_reads_nospill): ... this. | |
29211 | (scan_stores_spill, scan_reads_spill): Remove. | |
29212 | (dse_step3_scan): Remove for_spills argument which is always false. | |
29213 | (dse_step3): Likewise. | |
29214 | (dse_step5): Rename from ... | |
29215 | (dse_step5_nospill): ... this. Remove alias_set handling. | |
29216 | (rest_of_handle_dse): Adjust. | |
29217 | ||
29218 | 2016-04-05 Jakub Jelinek <jakub@redhat.com> | |
29219 | ||
29220 | PR target/70525 | |
29221 | * config/i386/sse.md (*andnot<mode>3): Simplify assertions. | |
29222 | Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for | |
29223 | V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting. | |
29224 | (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator. | |
29225 | ||
29226 | 2016-04-05 Richard Biener <rguenther@suse.de> | |
29227 | ||
29228 | PR middle-end/70499 | |
29229 | * gimplify-me.c (gimple_regimplify_operands): Do not rewrite | |
29230 | non-register type temporaries into SSA. | |
29231 | ||
29232 | 2016-04-04 Jan Hubicka <hubicka@ucw.cz> | |
29233 | ||
29234 | PR ipa/66223 | |
29235 | * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual | |
29236 | calls when sanitizing. | |
29237 | (possible_polymorphic_call_target_p): Fix formatting. | |
29238 | ||
29239 | 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
29240 | Jakub Jelinek <jakub@redhat.com> | |
29241 | ||
29242 | PR middle-end/70457 | |
29243 | * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p | |
29244 | to ensure a call statement is compatible with a built-in's | |
29245 | prototype. | |
29246 | * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute): | |
29247 | Likewise. | |
29248 | ||
29249 | 2016-04-04 Richard Biener <rguenther@suse.de> | |
29250 | ||
29251 | PR rtl-optimization/70484 | |
29252 | * rtl.h (canon_output_dependence): Declare. | |
29253 | * alias.c (canon_output_dependence): New function. | |
29254 | * dse.c (record_store): Use canon_output_dependence rather | |
29255 | than canon_true_dependence. | |
29256 | ||
29257 | 2016-03-30 Jan Hubicka <hubicka@ucw.cz> | |
29258 | ||
29259 | PR ipa/68881 | |
29260 | * cgraph.h (symtab_node::copy_visibility_from): New function. | |
29261 | * symtab.c (symtab_node::copy_visibility_from): New function. | |
29262 | * ipa-visibility.c (optimize_weakref): New function. | |
29263 | (function_and_variable_visibility): Use it. | |
29264 | ||
29265 | 2016-04-04 Martin Liska <mliska@suse.cz> | |
29266 | ||
29267 | PR hsa/70402 | |
29268 | * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index | |
29269 | value that is really in range handled by SBR instruction. | |
29270 | * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump. | |
29271 | * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB. | |
29272 | * hsa.h (hsa_insn_sbr::m_default_bb): Remove field. | |
29273 | ||
29274 | 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org> | |
29275 | ||
29276 | PR target/70416 | |
29277 | PR target/67391 | |
29278 | * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is | |
29279 | set, but not for SP_REG operands. | |
29280 | ||
29281 | 2016-04-02 Martin Sebor <msebor@redhat.com> | |
29282 | ||
29283 | PR c++/67376 | |
29284 | * fold-const.c (maybe_nonzero_address): New function. | |
29285 | (fold_comparison): Call it. Fold equality and relational | |
29286 | expressions involving null pointers. | |
29287 | (tree_single_nonzero_warnv_p): Call maybe_nonzero_address. | |
29288 | ||
29289 | 2016-03-31 Evandro Menezes <e.menezes@samsung.com> | |
29290 | ||
29291 | Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate | |
29292 | the "Y" constraint (scalar FP 0.0 immediate). | |
29293 | ||
29294 | * config/aarch64/predicates.md (aarch64_simd_reg_or_zero): | |
29295 | Add the "const_double" to the list of operand constraints. | |
29296 | ||
29297 | 2016-04-01 Jakub Jelinek <jakub@redhat.com> | |
29298 | ||
29299 | PR rtl-optimization/70467 | |
29300 | * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): | |
29301 | If low word of the last operand is 0, just emit addition/subtraction | |
29302 | for the high word. | |
29303 | ||
29304 | 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
29305 | ||
29306 | PR target/70404 | |
29307 | * config/s390/s390.c (s390_expand_insv): Check for everything | |
29308 | constant instead of just VOIDmode stuff. | |
29309 | ||
29310 | 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
29311 | ||
29312 | PR target/70496 | |
29313 | * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB. | |
29314 | ||
29315 | 2016-04-01 Nathan Sidwell <nathan@acm.org> | |
29316 | ||
29317 | * tree.def (TRY_CATCH_EXPR): Correct documentation. | |
29318 | ||
29319 | 2016-03-31 Vladimir Makarov <vmakarov@redhat.com> | |
29320 | ||
29321 | PR rtl-optimization/70461 | |
29322 | * ira-color.c (allocno_copy_cost_saving): Use allocno class if it | |
29323 | is necessary. | |
29324 | ||
29325 | 2016-03-31 Martin Liska <mliska@suse.cz> | |
29326 | ||
29327 | PR hsa/70399 | |
29328 | * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either | |
29329 | a tree value or an immediate integer value to a buffer | |
29330 | that is eventually copied to a BRIG section. | |
29331 | (emit_immediate_operand): Call the function here. | |
29332 | * hsa-dump.c (dump_hsa_immed): Remove checking assert. | |
29333 | * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization | |
29334 | of class' fields that are removed. | |
29335 | (hsa_op_immed::~hsa_op_immed): Remove deinitialization. | |
29336 | * hsa.h (class hsa_op_immed): Remove m_brig_repr and | |
29337 | m_brig_repr_size fields. | |
29338 | ||
29339 | 2016-03-31 Martin Liska <mliska@suse.cz> | |
29340 | ||
29341 | PR hsa/70391 | |
29342 | * hsa-gen.c (hsa_function_representation::update_dominance): New | |
29343 | function. | |
29344 | (convert_addr_to_flat_segment): Likewise. | |
29345 | (gen_hsa_memory_set): New alignment argument. | |
29346 | (gen_hsa_ctor_assignment): Likewise. | |
29347 | (gen_hsa_insns_for_single_assignment): Provide alignment | |
29348 | to gen_hsa_ctor_assignment. | |
29349 | (gen_hsa_insns_for_direct_call): Add new argument. | |
29350 | (expand_lhs_of_string_op): New function. | |
29351 | (expand_string_operation_builtin): Likewise. | |
29352 | (expand_memory_copy): New function. | |
29353 | (expand_memory_set): New function. | |
29354 | (gen_hsa_insns_for_call): Use HOST_WIDE_INT. | |
29355 | (convert_switch_statements): Change signature. | |
29356 | (generate_hsa): Use a return value of the function. | |
29357 | (pass_gen_hsail::execute): Do not call | |
29358 | convert_switch_statements here. | |
29359 | * hsa-regalloc.c (hsa_regalloc): Call update_dominance. | |
29360 | * hsa.h (hsa_function_representation::m_modified_cfg): New flag. | |
29361 | (hsa_function_representation::update_dominance): New function. | |
29362 | ||
29363 | 2016-03-31 Martin Liska <mliska@suse.cz> | |
29364 | ||
29365 | PR hsa/70391 | |
29366 | * hsa-brig.c (emit_directive_variable): Emit alignment | |
29367 | according to hsa_symbol::m_align. | |
29368 | * hsa-dump.c (hsa_byte_alignment): Move the function to another file. | |
29369 | (dump_hsa_symbol): Dump alignment of HSA symbols. | |
29370 | * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol. | |
29371 | (gen_hsa_addr_with_align): New function. | |
29372 | (hsa_bitmemref_alignment): Use newly added function. | |
29373 | (gen_hsa_insns_for_load): Likewise. | |
29374 | (gen_hsa_insns_for_store): Likewise. | |
29375 | (gen_hsa_memory_copy): New argument added. | |
29376 | (gen_hsa_insns_for_single_assignment): Respect | |
29377 | alignment for assignments processed via gen_hsa_memory_copy. | |
29378 | (gen_hsa_insns_for_direct_call): Likewise. | |
29379 | (gen_hsa_insns_for_return): Likewise. | |
29380 | (gen_function_def_parameters): Set default alignment. | |
29381 | * hsa.c (hsa_object_alignment): New function. | |
29382 | (hsa_byte_alignment): Pasted function. | |
29383 | * hsa.h (hsa_symbol::m_align): New field. | |
29384 | ||
29385 | 2016-03-31 Bin Cheng <bin.cheng@arm.com> | |
29386 | ||
29387 | * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize | |
29388 | scratch field for goto case. | |
29389 | ||
29390 | 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com> | |
29391 | ||
29392 | * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete. | |
29393 | ||
29394 | 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com> | |
29395 | ||
29396 | PR target/70442 | |
29397 | * config/i386/i386.c (scalar_chain::convert_op): Fix description. | |
29398 | (scalar_chain::convert_insn): Call convert_op for reg | |
29399 | moves to handle undefined registers. | |
29400 | ||
29401 | 2016-03-31 Nathan Sidwell <nathan@acm.org> | |
29402 | ||
29403 | PR c++/70393 | |
29404 | * varasm.c (output_constructor_regular_field): Flush bitfield earlier. | |
29405 | Assert we don't want to move backwards. | |
29406 | ||
29407 | 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com> | |
29408 | ||
29409 | PR target/70453 | |
29410 | * config/i386/sse.md (define_mode_attr shuffletype): Fix typo. | |
29411 | ||
29412 | 2016-03-31 Jakub Jelinek <jakub@redhat.com> | |
29413 | ||
29414 | PR rtl-optimization/70460 | |
29415 | * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF | |
29416 | with operand from REG_LABEL_OPERAND, instead substitute | |
29417 | SET_SRC or REG_EQUAL note content if it is a LABEL_REF. | |
29418 | Don't do anything for REG_NON_LOCAL_GOTO jumps. | |
29419 | ||
29420 | 2016-03-31 Martin Liska <mliska@suse.cz> | |
29421 | ||
29422 | * passes.c (execute_one_pass): Do not call | |
29423 | todo_after for a discarded function. | |
29424 | ||
29425 | 2016-03-31 Bin Cheng <bin.cheng@arm.com> | |
29426 | ||
29427 | * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field. | |
29428 | (no_cost, infinite_cost): Initialize the new field. | |
29429 | (get_computation_cost_at): Record setup cost. | |
29430 | (determine_use_iv_cost_address): Skip cost computation for sub | |
29431 | uses if we can estimate it without losing accuracy. | |
29432 | ||
29433 | 2016-03-30 Jan Hubicka <hubicka@ucw.cz> | |
29434 | ||
29435 | * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic | |
29436 | estimates here. | |
29437 | * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also | |
29438 | max_loop_iterations_int. | |
29439 | (tree_unswitch_outer_loop): Likewise. | |
29440 | * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise. | |
29441 | * tree-vect-loop.c (vect_analyze_loop_2): Likewise. | |
29442 | ||
29443 | 2016-03-30 Richard Biener <rguenther@suse.de> | |
29444 | ||
29445 | PR middle-end/70450 | |
29446 | * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage. | |
29447 | ||
29448 | 2016-03-30 Jakub Jelinek <jakub@redhat.com> | |
29449 | ||
29450 | PR target/70421 | |
29451 | * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order | |
29452 | in gen_blendm expander. | |
29453 | ||
29454 | 2016-03-30 Nick Clifton <nickc@redhat.com> | |
29455 | ||
29456 | PR target/62254 | |
29457 | * config/arm/arm.c (arm_reload_out_hi): Add code to handle the | |
29458 | case where we are already provided with an SImode SUBREG. | |
29459 | ||
29460 | 2016-03-30 H.J. Lu <hongjiu.lu@intel.com> | |
29461 | ||
29462 | PR target/70439 | |
29463 | * config/i386/i386.c (ix86_expand_epilogue): Properly check | |
29464 | conflict between DRAP register and __builtin_eh_return. | |
29465 | ||
29466 | 2016-03-30 Michael Matz <matz@suse.de> | |
29467 | Richard Biener <rguenther@suse.de> | |
29468 | ||
29469 | PR ipa/12392 | |
29470 | * ipa-polymorphic-call.c (struct type_change_info): Change | |
29471 | speculative to an unsigned allowing to limit the work we do. | |
29472 | (csftc_abort_walking_p): New inline function.. | |
29473 | (check_stmt_for_type_change): Limit the number of may-defs | |
29474 | skipped for speculative devirtualization to | |
29475 | max-speculative-devirt-maydefs. | |
29476 | * params.def (max-speculative-devirt-maydefs): New param. | |
29477 | * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document. | |
29478 | ||
29479 | 2016-03-30 Mike Stump <mrs@gcc.gnu.org> | |
29480 | ||
29481 | PR target/63890 | |
29482 | * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling | |
29483 | and TARGET_MACHO. | |
29484 | ||
29485 | 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org> | |
29486 | ||
29487 | PR tree-optimization/59124 | |
29488 | * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1 | |
29489 | where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2). | |
29490 | ||
29491 | 2016-03-29 Jeff Law <law@redhat.com> | |
29492 | ||
29493 | * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment. | |
29494 | ||
29495 | 2016-03-10 Jan Hubicka <hubicka@ucw.cz> | |
29496 | ||
29497 | * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel | |
29498 | to HOST_WIDE_INT. | |
29499 | ||
29500 | 2016-03-29 Thomas Schwinge <thomas@codesourcery.com> | |
29501 | ||
29502 | * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override. | |
29503 | * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of | |
29504 | gcrt0.o if linking dynamically. | |
29505 | ||
29506 | 2016-03-10 Jan Hubicka <hubicka@ucw.cz> | |
29507 | ||
29508 | PR ipa/70283 | |
29509 | * ipa-devirt.c (methods_equal_p): New function. | |
29510 | (compare_virtual_tables): Use it. | |
29511 | * cgraph.h (symbol_table::symbol_suffix_separator): Declare. | |
29512 | * cgraphclones.c (clone_function_name_1): Use | |
29513 | symbol_table::symbol_suffix_separator. | |
29514 | * coverage.c (build_var): Likewise. | |
29515 | * symtab.c (symbol_table::symbol_suffix_separator): New. | |
29516 | ||
29517 | 2016-03-29 Jakub Jelinek <jakub@redhat.com> | |
29518 | ||
29519 | PR rtl-optimization/70429 | |
29520 | * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize | |
29521 | (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if | |
29522 | mode != result_mode. | |
29523 | ||
29524 | PR c++/70353 | |
29525 | * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null. | |
29526 | ||
29527 | PR tree-optimization/70405 | |
29528 | * ssa-iterators.h (num_imm_uses): Add missing braces. | |
29529 | ||
29530 | 2016-03-29 Vladimir Makarov <vmakarov@redhat.com> | |
29531 | ||
29532 | PR rtl-optimization/68695 | |
29533 | * ira-color.c (allocno_copy_cost_saving): New. | |
29534 | (improve_allocation): Use it. | |
29535 | ||
29536 | 2016-03-29 Richard Henderson <rth@redhat.com> | |
29537 | ||
29538 | PR middle-end/70355 | |
29539 | * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs. | |
29540 | ||
29541 | 2016-03-29 Richard Biener <rguenther@suse.de> | |
29542 | ||
29543 | PR middle-end/70424 | |
29544 | * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always | |
29545 | use alignment returned by get_pointer_alignment_1 if it is | |
29546 | bigger than BITS_PER_UNIT. | |
29547 | * builtins.c (get_pointer_alignment_1): Do not return true | |
29548 | for alignment extracted from SSA info. | |
29549 | ||
29550 | 2016-03-28 James Bowman <james.bowman@ftdichip.com> | |
29551 | ||
29552 | * config/ft32/ft32.opt (mnodiv): New. | |
29553 | * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV. | |
29554 | * doc/invoke.texi (FT32 Options -mnodiv): New. | |
29555 | ||
29556 | 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com> | |
29557 | ||
29558 | PR target/70406 | |
29559 | * config/i386/i386.md (define_split, andn): Fix modes. | |
29560 | ||
29561 | 2016-03-26 Richard Biener <rguenther@suse.de> | |
29562 | Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
29563 | ||
29564 | PR ipa/70366 | |
29565 | * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl) | |
29566 | instead of | |
29567 | TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl)) | |
29568 | as 2nd argument to cl_optimization_restore(). | |
29569 | ||
29570 | 2016-03-25 Richard Henderson <rth@redhat.com> | |
29571 | ||
29572 | PR target/70120 | |
29573 | * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New. | |
29574 | * config/aarch64/aarch64-protos.h: Declare it. | |
29575 | * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New. | |
29576 | ||
29577 | 2016-03-25 Alan Modra <amodra@gmail.com> | |
29578 | ||
29579 | PR target/70052 | |
29580 | * config/rs6000/constraints.md (j): Simplify. | |
29581 | * config/rs6000/predicates.md (easy_fp_constant): Exclude | |
29582 | decimal float 0.D. | |
29583 | * config/rs6000/rs6000.md (zero_fp): New mode_attr. | |
29584 | (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64, | |
29585 | mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j | |
29586 | in all constraint alternatives. | |
29587 | (movtd_64bit_nodm): Delete "j" constraint alternative. | |
29588 | ||
29589 | 2016-03-24 Aldy Hernandez <aldyh@redhat.com> | |
29590 | ||
29591 | * tree-ssa-propagate.c: Enhance docs for | |
29592 | SSA_PROP_NOT_INTERESTING. | |
29593 | ||
29594 | 2016-03-24 Aldy Hernandez <aldyh@redhat.com> | |
29595 | ||
29596 | * doc/extend.texi: Fix typo in documentation to pure attribute. | |
29597 | ||
29598 | 2016-03-24 John David Anglin <danglin@gcc.gnu.org> | |
29599 | ||
29600 | PR target/70319 | |
29601 | * config/pa/pa.md (bswapdi2): Use a scratch register. | |
29602 | ||
29603 | 2016-03-24 Richard Henderson <rth@redhat.com> | |
29604 | ||
29605 | PR middle-end/69845 | |
29606 | * fold-const.c (extract_muldiv_1): Correct test for multiplication | |
29607 | overflow. | |
29608 | ||
29609 | 2016-03-24 Uros Bizjak <ubizjak@gmail.com> | |
29610 | ||
29611 | * config/i386/i386.md (*anddi3_doubleword): Generate AND insn | |
29612 | using ix86_expand_binary_operator instead of gen_andsi3. | |
29613 | ||
29614 | 2016-03-24 Richard Biener <rguenther@suse.de> | |
29615 | ||
29616 | PR tree-optimization/70396 | |
29617 | * tree-vect-stmts.c (vectorizable_comparison): Use | |
29618 | get_vectype_for_scalar_type. | |
29619 | ||
29620 | 2016-03-24 Richard Biener <rguenther@suse.de> | |
29621 | ||
29622 | PR middle-end/70370 | |
29623 | * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs | |
29624 | with register bases. | |
29625 | ||
29626 | 2016-03-24 Richard Biener <rguenther@suse.de> | |
29627 | ||
29628 | PR tree-optimization/70372 | |
29629 | * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use | |
29630 | build_all_ones_cst to also handle vector types correctly. | |
29631 | ||
29632 | 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com> | |
29633 | ||
29634 | PR target/70381 | |
29635 | * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set | |
29636 | -mfloat128 here. | |
29637 | ||
29638 | 2016-03-23 Marek Polacek <polacek@redhat.com> | |
29639 | ||
29640 | PR c++/69884 | |
29641 | * doc/invoke.texi: Document -Wignored-attributes. | |
29642 | ||
29643 | 2016-03-23 Bin Cheng <bin.cheng@arm.com> | |
29644 | ||
29645 | PR tree-optimization/69042 | |
29646 | * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the | |
29647 | parameter from 30 to 40. | |
29648 | ||
29649 | 2016-03-23 Bin Cheng <bin.cheng@arm.com> | |
29650 | ||
29651 | PR tree-optimization/69042 | |
29652 | * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand | |
29653 | for use with constant offset stripped in base. | |
29654 | ||
29655 | 2016-03-23 Richard Biener <rguenther@suse.de> | |
29656 | ||
29657 | PR middle-end/70251 | |
29658 | * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust | |
29659 | mode compatibility check. | |
29660 | (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise. | |
29661 | ||
29662 | 2016-03-23 Jeff Law <law@redhat.com> | |
29663 | ||
29664 | PR tree-optimization/64058 | |
29665 | * tree-ssa-coalesce.c (struct coalesce_pair): Add new field | |
29666 | CONFLICT_COUNT. | |
29667 | (struct ssa_conflicts): Move up earlier in the file. | |
29668 | (conflicts_, var_map_): New static variables. | |
29669 | (initialize_conflict_count): New function to initialize the | |
29670 | CONFLICT_COUNT field for each conflict pair. | |
29671 | (compare_pairs): Lazily initialize the conflict count and use it | |
29672 | as the first tie-breaker. | |
29673 | (sort_coalesce_list): Add new arguments conflicts, map. Initialize | |
29674 | and wipe conflicts_ and map_ around the call to qsort. Remove | |
29675 | special case for 2 coalesce pairs. | |
29676 | * bitmap.c (bitmap_count_unique_bits): New function. | |
29677 | (bitmap_count_bits_in_word): New function, extracted from | |
29678 | bitmap_count_bits. | |
29679 | (bitmap_count_bits): Use bitmap_count_bits_in_word. | |
29680 | * bitmap.h (bitmap_count_unique_bits): Declare it. | |
29681 | ||
29682 | 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com> | |
29683 | ||
29684 | PR target/69917 | |
29685 | * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow | |
29686 | transparent alias chain for decl assembler name. | |
29687 | * config/sol2.c (solaris_assemble_visibility): Likewise. | |
29688 | ||
29689 | 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
29690 | ||
29691 | * config/arm/arm1020e.md (1020call_op): Reduce reservation | |
29692 | duration. | |
29693 | (v10_fdivs): Likewise. | |
29694 | (v10_fdivd): Likewise. | |
29695 | ||
29696 | 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
29697 | ||
29698 | PR driver/70132 | |
29699 | * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic | |
29700 | to not call fclose twice on file. | |
29701 | ||
29702 | 2016-03-23 Jakub Jelinek <jakub@redhat.com> | |
29703 | ||
29704 | PR tree-optimization/70354 | |
29705 | * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If | |
29706 | oprnd0 is wider than oprnd1 and there is a cast from the wider | |
29707 | type to oprnd1, mask it with the mask of the narrower type. | |
29708 | ||
29709 | PR target/70321 | |
29710 | * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword): | |
29711 | Optimize TARGET_STV splitters, if high or low word of last argument | |
29712 | is 0 or -1. | |
29713 | ||
29714 | 2016-03-22 Jeff Law <law@redhat.com> | |
29715 | ||
29716 | PR target/70232 | |
29717 | tree-ssa-threadbackward.c | |
29718 | (fsm_find_control_statement_thread_paths): Correctly distinguish | |
29719 | between old style jump threads vs FSM jump threads. | |
29720 | ||
29721 | 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com> | |
29722 | ||
29723 | PR target/70302 | |
29724 | * config/i386/i386.c (scalar_chain::convert_op): Support | |
29725 | uninitialized register usage case. | |
29726 | ||
29727 | 2016-03-22 Richard Biener <rguenther@suse.de> | |
29728 | ||
29729 | PR middle-end/70251 | |
29730 | * genmatch.c (gen_transform): Adjust last parameter to a three-state | |
29731 | int... | |
29732 | (capture::gen_transform): ... to change behavior when substituting | |
29733 | a condition into cond or not-cond expr context. | |
29734 | (dt_simplify::gen_1): Adjust. | |
29735 | * gimple-match-head.c: Include gimplify.h for unshare_expr. | |
29736 | * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert | |
29737 | last change and instead change to | |
29738 | A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0). | |
29739 | (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise. | |
29740 | ||
29741 | 2016-03-22 Anthony Green <green@moxielogic.com> | |
29742 | ||
29743 | * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness | |
29744 | issue for moxiebox targets. | |
29745 | (CC1PLUS_SPEC): Ditto. | |
29746 | ||
29747 | 2016-03-22 Richard Biener <rguenther@suse.de> | |
29748 | ||
29749 | PR middle-end/70333 | |
29750 | * fold-const.c (extract_muldiv_1): Properly perform multiplication | |
29751 | in the wide type. | |
29752 | ||
29753 | 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com> | |
29754 | ||
29755 | * config/i386/i386.c (def_builtin): Remove duplicated functionality. | |
29756 | ||
29757 | 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com> | |
29758 | ||
29759 | PR target/70325 | |
29760 | * config/i386/i386.c (def_builtin): Handle | |
29761 | OPTION_MASK_ISA_AVX512VL to be and-ed with other | |
29762 | bits. | |
29763 | (const struct builtin_description bdesc_special_args[]): | |
29764 | Remove duplicate ISA bits. | |
29765 | ||
29766 | 2016-03-22 Jakub Jelinek <jakub@redhat.com> | |
29767 | ||
29768 | PR target/70329 | |
29769 | * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing | |
29770 | d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i] | |
29771 | in a way that works also for AVX512BW. | |
29772 | ||
29773 | PR target/70300 | |
29774 | * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination | |
29775 | instead of source if operands[1] is xmm16 and above and | |
29776 | !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of | |
29777 | vec_interleave_lowv4sf if we need to unpack xmm16 and above. | |
29778 | ||
29779 | PR c++/70295 | |
29780 | * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning | |
29781 | on assign if (*from_p) is a comparison, set it to | |
29782 | TREE_NO_WARNING (*from_p). | |
29783 | ||
29784 | 2016-03-21 Jakub Jelinek <jakub@redhat.com> | |
29785 | ||
29786 | PR middle-end/70326 | |
29787 | * lra.c (restore_scratches): Ignore deleted insns. | |
29788 | ||
29789 | 2016-03-21 Marc Glisse <marc.glisse@inria.fr> | |
29790 | Jakub Jelinek <jakub@redhat.com> | |
29791 | ||
29792 | PR tree-optimization/70317 | |
29793 | * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0)) | |
29794 | to HONOR_NANS. | |
29795 | ||
29796 | 2016-03-21 Uros Bizjak <ubizjak@gmail.com> | |
29797 | ||
29798 | PR target/70327 | |
29799 | * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead | |
29800 | of ix86_expand_move. | |
29801 | (movoi): Ditto. | |
29802 | (movti): Use general_operand for operand 1 predicate. | |
29803 | ||
29804 | 2016-03-21 Martin Liska <mliska@suse.cz> | |
29805 | ||
29806 | * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR | |
29807 | insns. | |
29808 | (dump_hsa_symbol): Dump BRIG offset of hsa_symbols. | |
29809 | ||
29810 | 2016-03-21 Martin Liska <mliska@suse.cz> | |
29811 | ||
29812 | PR ipa/70306 | |
29813 | * ipa-icf.c (sem_function::parse): Skip static | |
29814 | constructors and destructors. | |
29815 | ||
29816 | 2016-03-21 Jakub Jelinek <jakub@redhat.com> | |
29817 | ||
29818 | PR target/70296 | |
29819 | * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is | |
29820 | function-like macro, peek following token(s) if it is followed | |
29821 | by CPP_OPEN_PAREN token with optional padding in between, and | |
29822 | if not, don't treat it like a macro. | |
29823 | ||
29824 | 2016-03-21 Thomas Schwinge <thomas@codesourcery.com> | |
29825 | Alexander Monakov <amonakov@ispras.ru> | |
29826 | ||
29827 | * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry | |
29828 | for the stabs debug format. | |
29829 | ||
29830 | 2016-03-21 Richard Biener <rguenther@suse.de> | |
29831 | ||
29832 | PR tree-optimization/70310 | |
29833 | * tree-vect-generic.c (expand_vector_condition): Fold the built | |
29834 | condition. | |
29835 | ||
29836 | 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com> | |
29837 | ||
29838 | PR target/70293 | |
29839 | * config/i386/sse.md (define_insn "*vec_dup<mode>"/AVX2): | |
29840 | Block third alternative for AVX-512VL target, | |
29841 | ||
29842 | 2016-03-21 Martin Liska <mliska@suse.cz> | |
29843 | ||
29844 | PR hsa/70234 | |
29845 | * hsa-brig.c (emit_function_directives): Mark unemitted | |
29846 | global variables for emission. | |
29847 | * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag. | |
29848 | (get_symbol_for_decl): Likewise. | |
29849 | * hsa.h (struct hsa_symbol): New flag. | |
29850 | ||
29851 | 2016-03-21 Richard Biener <rguenther@suse.de> | |
29852 | ||
29853 | PR tree-optimization/70288 | |
29854 | * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure | |
29855 | we do not estimate unsimplified all-constant conditionals or | |
29856 | switches as optimized away. | |
29857 | ||
29858 | 2016-03-21 Andrey Belevantsev <abel@ispras.ru> | |
29859 | ||
29860 | PR rtl-optimization/69102 | |
29861 | * sched-deps.c (sched_analyze_insn): Do not set last_args_size field | |
29862 | when we have a readonly dependency context. | |
29863 | ||
29864 | 2016-03-18 Jeff Law <law@redhat.com> | |
29865 | ||
29866 | PR rtl-optimization/70263 | |
29867 | * ira.c (memref_used_between_p): Assert we found END in the insn chain. | |
29868 | (update_equiv_regs): When trying to move a store to after the insn | |
29869 | that sets the source of the store, make sure the store occurs after | |
29870 | the insn that sets the source of the store. When successful note | |
29871 | the REG_EQUIV note created in the dump file. | |
29872 | ||
29873 | 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com> | |
29874 | Bernd Schmidt <bschmidt@redhat.com> | |
29875 | ||
29876 | * doc/extend.texi: Document more potential problems with basic asms. | |
29877 | ||
29878 | 2016-03-18 Bernd Schmidt <bschmidt@redhat.com> | |
29879 | ||
29880 | PR rtl-optimization/70278 | |
29881 | * lra-constraints.c (split_reg): Handle the case where biggest_mode is | |
29882 | VOIDmode. | |
29883 | ||
29884 | 2016-03-18 Jason Merrill <jason@redhat.com> | |
29885 | ||
29886 | * calls.c (load_register_parameters): Fix zero size sibcall logic. | |
29887 | ||
29888 | 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com> | |
29889 | ||
29890 | * config/i386/sse.md: Use vpbroadcastq for broadcasting DF | |
29891 | values to 128b regs. | |
29892 | ||
29893 | 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com> | |
29894 | ||
29895 | PR tree-optimization/70252 | |
29896 | * tree-vect-stmts.c (supportable_widening_operation): Check resulting | |
29897 | boolean vector has a proper number of elements. | |
29898 | (supportable_narrowing_operation): Likewise. | |
29899 | ||
29900 | 2016-03-18 Tom de Vries <tom@codesourcery.com> | |
29901 | ||
29902 | PR ipa/70269 | |
29903 | * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save. | |
29904 | ||
29905 | 2016-03-18 Jakub Jelinek <jakub@redhat.com> | |
29906 | ||
29907 | * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx | |
29908 | instead of replace_rtx for DEBUG_INSNs. | |
29909 | ||
29910 | 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com> | |
29911 | ||
29912 | * config/i386/znver1.md : Fix latencies of FP/SSE/AVX | |
29913 | load type reservations. | |
29914 | ||
29915 | 2016-03-17 John David Anglin <danglin@gcc.gnu.org> | |
29916 | ||
29917 | PR target/70188 | |
29918 | * config/pa/constraints.md: Revert 2015-02-13 change. Use | |
29919 | define_constraint for "Q" and "T" constraints. | |
29920 | ||
29921 | 2016-03-17 Evandro Menezes <e.menezes@samsung.com> | |
29922 | ||
29923 | Tweak the pipeline model for Exynos M1 | |
29924 | ||
29925 | * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching | |
29926 | model. | |
29927 | ||
29928 | 2016-03-17 David Malcolm <dmalcolm@redhat.com> | |
29929 | ||
29930 | PR c/70264 | |
29931 | * diagnostic-show-locus.c (compatible_locations_p): Handle the case | |
29932 | where one or both locations aren't within a line_map. | |
29933 | ||
29934 | 2016-03-17 H.J. Lu <hongjiu.lu@intel.com> | |
29935 | ||
29936 | PR driver/70192 | |
29937 | * opts.c (finish_options): Don't set flag_pie to the default if | |
29938 | -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0 | |
29939 | if it is -1. | |
29940 | ||
29941 | 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com> | |
29942 | ||
29943 | * config/i386/i386.md (*movv4qicc_insn+1..36): Pass | |
29944 | true as ALL_REGS argument to replace_rtx. | |
29945 | ||
29946 | 2016-03-17 Richard Biener <rguenther@suse.de> | |
29947 | ||
29948 | PR debug/70271 | |
29949 | * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name | |
29950 | last. | |
29951 | ||
29952 | 2016-03-17 Jakub Jelinek <jakub@redhat.com> | |
29953 | ||
29954 | PR target/70245 | |
29955 | * rtl.h (replace_rtx): Add ALL_REGS argument. | |
29956 | * rtlanal.c (replace_rtx): Likewise. If true, use REGNO | |
29957 | equality and assert mode is the same, instead of just rtx pointer | |
29958 | equality. | |
29959 | * config/i386/i386.md (mov + arithmetics with load peephole): Pass | |
29960 | true as ALL_REGS argument to replace_rtx. | |
29961 | ||
29962 | 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com> | |
29963 | ||
29964 | * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply | |
29965 | for boolean vector with vector mode only. | |
29966 | (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise. | |
29967 | ||
29968 | 2016-03-17 Nick Clifton <nickc@redhat.com> | |
29969 | ||
29970 | PR target/70162 | |
29971 | * config/rx/rx.c (rx_print_integer): Print negative constants in | |
29972 | decimal. | |
29973 | ||
29974 | 2016-03-17 Jakub Jelinek <jakub@redhat.com> | |
29975 | ||
29976 | PR target/70261 | |
29977 | * rtlanal.c (replace_rtx): Revert 2016-03-16 change. | |
29978 | ||
29979 | 2016-03-16 Richard Henderson <rth@redhat.com> | |
29980 | Richard Biener <rguenth@suse.de> | |
29981 | ||
29982 | PR middle-end/70240 | |
29983 | PR middle-end/68215 | |
29984 | PR tree-opt/68714 | |
29985 | * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the | |
29986 | first operand as is_gimple_condexpr. | |
29987 | ||
29988 | PR middle-end/70240 | |
29989 | PR middle-end/68215 | |
29990 | Revert r231575 | |
29991 | 2015-12-11 Eric Botcazou <ebotcazou@adacore.com> | |
29992 | * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter. | |
29993 | Do not gimplify the result. | |
29994 | (do_unop): Adjust call to tree_vec_extract. | |
29995 | (do_binop): Likewise. | |
29996 | (do_compare): Likewise. | |
29997 | (do_plus_minus): Likewise. | |
29998 | (do_negate): Likewise. | |
29999 | (expand_vector_condition): Likewise. | |
30000 | (do_cond): Likewise. | |
30001 | ||
30002 | 2016-03-16 Richard Henderson <rth@redhat.com> | |
30003 | ||
30004 | PR target/70048 | |
30005 | * config/aarch64/aarch64.c (virt_or_elim_regno_p): New. | |
30006 | (aarch64_classify_address): Use it. | |
30007 | (aarch64_legitimize_address): Force all subexpressions of PLUS | |
30008 | into registers. Simplify as (sfp+const)+reg or (reg+reg)+const. | |
30009 | ||
30010 | 2016-03-16 Jakub Jelinek <jakub@redhat.com> | |
30011 | Richard Biener <rguenth@suse.de> | |
30012 | ||
30013 | PR target/70245 | |
30014 | * rtlanal.c (replace_rtx): For REG, if from is a REG, | |
30015 | return to even if only REGNO is equal, and assert | |
30016 | mode is the same. | |
30017 | ||
30018 | 2016-03-11 Jeff Law <law@redhat.com> | |
30019 | ||
30020 | PR rtl-optimization/70224 | |
30021 | * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P. | |
30022 | ||
30023 | 2016-03-16 Richard Henderson <rth@redhat.com> | |
30024 | ||
30025 | PR middle-end/70199 | |
30026 | * function.h (struct function): Add has_forced_label_in_static. | |
30027 | * gimplify.c (force_labels_r): Set it. | |
30028 | * lto-streamer-in.c (input_struct_function_base): Read it. | |
30029 | * lto-streamer-out.c (output_struct_function_base): Write it. | |
30030 | * tree-inline.c (has_label_address_in_static_1): Remove. | |
30031 | (copy_forbidden): Remove fndecl parameter; test | |
30032 | has_forced_label_in_static. | |
30033 | (inline_forbidden_p): Update call to copy_forbidden. | |
30034 | (tree_versionable_function_p): Likewise. | |
30035 | * ipa-chkp.c (chkp_instrumentable_p): Likewise. | |
30036 | (chkp_versioning): Likewise. | |
30037 | * tree-inline.h (copy_forbidden): Update decl. | |
30038 | ||
30039 | 2016-03-16 Marek Polacek <polacek@redhat.com> | |
30040 | ||
30041 | PR c/70093 | |
30042 | * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the | |
30043 | function being thunked if the result type doesn't have fixed size. | |
30044 | * gimplify.c (gimplify_modify_expr): Also set LHS if the result type | |
30045 | doesn't have fixed size. | |
30046 | ||
30047 | 2016-03-16 Bin Cheng <bin.cheng@arm.com> | |
30048 | ||
30049 | * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by | |
30050 | reporting malformed loop nest. | |
30051 | ||
30052 | 2016-03-16 Tom de Vries <tom@codesourcery.com> | |
30053 | ||
30054 | PR lto/70187 | |
30055 | * ipa-devirt.c (possible_polymorphic_call_targets): Move | |
30056 | nodes.length () == 1 test to before first nodes[0] access. | |
30057 | ||
30058 | 2016-03-16 Tom de Vries <tom@codesourcery.com> | |
30059 | ||
30060 | PR tree-optimization/68715 | |
30061 | * graphite-scop-detection.c (scop_detection::merge_sese): Add missing | |
30062 | single_pred_p test. | |
30063 | ||
30064 | 2016-03-16 Tom de Vries <tom@codesourcery.com> | |
30065 | ||
30066 | PR tree-optimization/68809 | |
30067 | * graphite-scop-detection.c (same_close_phi_node): Test if result types | |
30068 | are the same. | |
30069 | ||
30070 | 2016-03-16 Carlos O'Donell <carlos@redhat.com> | |
30071 | Sandra Loosemore <sandra@codesourcery.com> | |
30072 | ||
30073 | * doc/extend.texi (Common Function Attributes): Describe ifunc impact | |
30074 | on leaf attribute. Mention ELF interposition problems. | |
30075 | ||
30076 | 2016-03-16 Alan Modra <amodra@gmail.com> | |
30077 | ||
30078 | PR rtl-optimization/69195 | |
30079 | PR rtl-optimization/47992 | |
30080 | * ira.c (indirect_jump_optimize): Ignore artificial defs. | |
30081 | Add comments. | |
30082 | ||
30083 | 2016-03-15 Eric Botcazou <ebotcazou@adacore.com> | |
30084 | ||
30085 | PR bootstrap/69513 | |
30086 | * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list. | |
30087 | ||
30088 | 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> | |
30089 | ||
30090 | * config/avr/avr.md (rotl<mode>3): Set mode for operand 2. | |
30091 | ||
30092 | 2016-03-15 Jakub Jelinek <jakub@redhat.com> | |
30093 | ||
30094 | PR rtl-optimization/70222 | |
30095 | * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT | |
30096 | optimization if mode is different from result_mode, queue up masking | |
30097 | of the result in outer_op. Formatting fix. | |
30098 | ||
30099 | PR middle-end/70239 | |
30100 | * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead | |
30101 | of safe_grow. | |
30102 | ||
30103 | 2016-03-15 Andrey Belevantsev <abel@ispras.ru> | |
30104 | ||
30105 | PR rtl-optimization/69032 | |
30106 | * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when | |
30107 | looping backwards over basic block insns. | |
30108 | ||
30109 | 2016-03-15 Andrey Belevantsev <abel@ispras.ru> | |
30110 | ||
30111 | PR target/66660 | |
30112 | * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern | |
30113 | to non-speculative when propagating trap bits. | |
30114 | ||
30115 | 2016-03-15 Andrey Belevantsev <abel@ispras.ru> | |
30116 | ||
30117 | PR rtl-optimization/63384 | |
30118 | * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on | |
30119 | DEBUG_INSN_P insns. | |
30120 | ||
30121 | 2016-03-15 Andrey Belevantsev <abel@ispras.ru> | |
30122 | ||
30123 | PR target/64411 | |
30124 | * sched-deps.c (get_implicit_reg_pending_clobbers): New function, | |
30125 | factored out from ... | |
30126 | (sched_analyze_insn): ... here. | |
30127 | * sched-int.h (get_implicit_reg_pending_clobbers): Declare it. | |
30128 | * sel-sched-ir.c (setup_id_implicit_regs): New function, use | |
30129 | get_implicit_reg_pending_clobbers in it. | |
30130 | (setup_id_reg_sets): Use setup_id_implicit_regs. | |
30131 | (deps_init_id): Ditto. | |
30132 | ||
30133 | 2016-03-15 Tom de Vries <tom@codesourcery.com> | |
30134 | ||
30135 | PR ipa/70161 | |
30136 | * cgraph.c (cgraph_node::get_body): Save, reset and restore | |
30137 | dump_file_name. | |
30138 | * passes.c (execute_one_ipa_transform_pass): Add missing argument to | |
30139 | execute_function_dump. | |
30140 | (execute_one_pass): Don't dump function if it will be dumped after ipa | |
30141 | transform. | |
30142 | ||
30143 | 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org> | |
30144 | ||
30145 | * genrecog.c (match_pattern_2): If pred is NULL don't call | |
30146 | safe_predicate_mode on it. | |
30147 | ||
30148 | 2016-03-14 Jakub Jelinek <jakub@redhat.com> | |
30149 | ||
30150 | PR middle-end/70219 | |
30151 | * lra-constraints.c (delete_move_and_clobber): Change assertion | |
30152 | to also allow dregno == 0. | |
30153 | ||
30154 | 2016-03-14 Richard Henderson <rth@redhat.com> | |
30155 | ||
30156 | PR tree-opt/68714 | |
30157 | * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New. | |
30158 | (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P. | |
30159 | (reassociate_bb): Use optimize_vec_cond_expr; avoid | |
30160 | optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi | |
30161 | on vectors. | |
30162 | ||
30163 | 2016-03-14 Bernd Schmidt <bschmidt@redhat.com> | |
30164 | ||
30165 | PR target/70083 | |
30166 | * lra-lives.c (process_bb_lives): Also update biggest mode for hard | |
30167 | regs. | |
30168 | (lra_create_live_ranges_1): initialize hard register biggest_mode to | |
30169 | VOIDmode. | |
30170 | * lra-constraints.c (split_reg): For hard regs, try to find the | |
30171 | biggest single-register mode used in the function. | |
30172 | ||
30173 | 2016-03-14 Richard Biener <rguenther@suse.de> | |
30174 | ||
30175 | PR tree-optimization/56365 | |
30176 | * tree-ssa-phiopt.c (minmax_replacement): Handle alternate | |
30177 | constants to compare against. | |
30178 | ||
30179 | 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org> | |
30180 | ||
30181 | PR target/70098 | |
30182 | * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2, | |
30183 | *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output. | |
30184 | (define_split for the GPR case): Use int_reg_operand instead of | |
30185 | gpc_reg_operand for the output. | |
30186 | ||
30187 | 2016-03-14 Tom de Vries <tom@codesourcery.com> | |
30188 | ||
30189 | PR tree-optimization/70045 | |
30190 | * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare | |
30191 | create_empty_if_region_on_edge argument. | |
30192 | ||
30193 | 2016-03-13 Eric Botcazou <ebotcazou@adacore.com> | |
30194 | ||
30195 | * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define. | |
30196 | (STACK_CHECK_PROTECT): Likewise. | |
30197 | * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise | |
30198 | (STACK_CHECK_PROTECT): Likewise. | |
30199 | * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise | |
30200 | (STACK_CHECK_PROTECT): Likewise. | |
30201 | * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise. | |
30202 | * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise. | |
30203 | (STACK_CHECK_PROTECT): Likewise. | |
30204 | ||
30205 | 2016-03-12 Andrey Belevantsev <abel@ispras.ru> | |
30206 | ||
30207 | PR rtl-optimization/69307 | |
30208 | * sel-sched.c (choose_best_pseudo_reg): Properly check for hard | |
30209 | registers in modes that span more than one register. | |
30210 | ||
30211 | 2016-03-12 Vladimir Makarov <vmakarov@redhat.com> | |
30212 | ||
30213 | PR target/69614 | |
30214 | * lra-constraints.c (delete_move_and_clobber): New. | |
30215 | (remove_inheritance_pseudos): Use it. | |
30216 | ||
30217 | 2016-03-12 Eric Botcazou <ebotcazou@adacore.com> | |
30218 | ||
30219 | PR ada/70017 | |
30220 | * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if | |
30221 | the libcall is LCT_THROW. | |
30222 | * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call | |
30223 | for the checking routine. | |
30224 | ||
30225 | 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com> | |
30226 | ||
30227 | PR target/70131 | |
30228 | * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the | |
30229 | optimization if we have direct move. | |
30230 | (roundu32<mode>2_fprs): Likewise. | |
30231 | ||
30232 | 2016-03-11 Bernd Schmidt <bschmidt@redhat.com> | |
30233 | ||
30234 | PR target/70123 | |
30235 | * lra-remat.c (operand_to_remat): Disallow hard regs in the value t | |
30236 | be rematerialized. | |
30237 | (reg_overlap_for_remat_p): Renamed from input_regno_present_p. | |
30238 | Arguments swapped. All callers changed. Take reg_renumber into | |
30239 | account, and Calculate and compare register ranges for hard regs. | |
30240 | ||
30241 | 2016-03-11 Jeff Law <law@redhat.com> | |
30242 | ||
30243 | PR tree-optimization/70190 | |
30244 | * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths): | |
30245 | Handle cases where we can not extract the taken edge, even though we | |
30246 | found a constant value. | |
30247 | ||
30248 | PR tree-optimization/64058 | |
30249 | * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX. | |
30250 | (num_coalesce_pairs): Move up earlier in file. | |
30251 | (find_coalesce_pair): Initialize the INDEX field for each pair | |
30252 | discovered. | |
30253 | (compare_pairs): No longer sort on the elements in each pair. | |
30254 | Instead break ties with the index of the coalesce pair. | |
30255 | ||
30256 | 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
30257 | ||
30258 | PR target/70002 | |
30259 | * config/aarch64/aarch64-protos.h | |
30260 | (aarch64_save_restore_target_globals): New prototype. | |
30261 | * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): | |
30262 | Call the above when popping pragma. | |
30263 | * config/aarch64/aarch64.c (aarch64_save_restore_target_globals): | |
30264 | New function. | |
30265 | (aarch64_set_current_function): Rewrite using the above. | |
30266 | ||
30267 | 2016-03-11 Jakub Jelinek <jakub@redhat.com> | |
30268 | ||
30269 | PR tree-optimization/70177 | |
30270 | * gimple-expr.h (extract_ops_from_tree_1): Renamed to ... | |
30271 | (extract_ops_from_tree): ... this. In the 2 argument | |
30272 | overload remove _1 suffix. | |
30273 | * gimple-expr.c (extract_ops_from_tree_1): Renamed to ... | |
30274 | (extract_ops_from_tree): ... this. | |
30275 | * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree): | |
30276 | Adjust callers. | |
30277 | * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise. | |
30278 | * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand | |
30279 | extract_ops_from_tree instead of 2 operand one. | |
30280 | ||
30281 | 2016-03-11 Alan Lawrence <alan.lawrence@arm.com> | |
30282 | ||
30283 | PR tree-optimization/70013 | |
30284 | * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data | |
30285 | for constant-pool entries. | |
30286 | ||
30287 | 2016-03-11 Jakub Jelinek <jakub@redhat.com> | |
30288 | ||
30289 | PR rtl-optimization/70174 | |
30290 | * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible | |
30291 | followed by gen_lowpart on force_reg instead of just gen_lowpart. | |
30292 | ||
30293 | PR tree-optimization/70169 | |
30294 | * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and | |
30295 | LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable | |
30296 | for unknown codes. | |
30297 | ||
30298 | 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com> | |
30299 | Jakub Jelinek <jakub@redhat.com> | |
30300 | ||
30301 | PR target/70160 | |
30302 | * config/i386/i386.c (scalar_chain::convert_reg): Skip uses | |
30303 | of uninitialized values. | |
30304 | ||
30305 | 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
30306 | ||
30307 | * config/s390/s390.md ("trunctddd2"): Turn former define_insn into | |
30308 | define_expand. | |
30309 | ("*trunctddd2"): New pattern definition. | |
30310 | ("trunctdsd2"): Set prep_for_short_prec rounding mode for the | |
30311 | TD->DD truncation. | |
30312 | ||
30313 | 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
30314 | ||
30315 | * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant | |
30316 | definitions for BFP and DFP rounding modes. | |
30317 | ("fixuns_truncdddi2", "fixuns_trunctddi2") | |
30318 | ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2") | |
30319 | ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2") | |
30320 | ("fix_trunctf<mode>2"): Use the new constants instead of magic | |
30321 | numbers. | |
30322 | ||
30323 | 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
30324 | ||
30325 | * config/s390/constraints.md: Adjust comment. | |
30326 | ("Y"): Adjust comment. Rename s390_decompose_shift_count to | |
30327 | s390_decompose_addrstyle_without_index. | |
30328 | * config/s390/predicates.md (shift_count_or_setmem_operand): | |
30329 | Rename to setmem_operand. | |
30330 | * config/s390/s390-protos.h | |
30331 | (s390_decompose_shift_count): Rename to | |
30332 | s390_decompose_addrstyle_without_index. | |
30333 | * config/s390/s390.c (s390_decompose_shift_count) | |
30334 | (s390_mem_constraint, print_shift_count_operand) | |
30335 | (print_operand_address, print_operand): Rename | |
30336 | s390_decompose_shift_count to | |
30337 | s390_decompose_addrstyle_without_index and rename | |
30338 | print_shift_count_operand to print_addrstyle_operand troughout the | |
30339 | file. | |
30340 | * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long") | |
30341 | ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"): | |
30342 | Rename shift_count_or_setmem_operand to setmem_operand. | |
30343 | * config/s390/vx-builtins.md ("vec_insert<mode>") | |
30344 | ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with | |
30345 | nonmemory_operand. | |
30346 | ||
30347 | 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> | |
30348 | ||
30349 | PR target/70168 | |
30350 | * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): | |
30351 | Handle overlapping retval and newval. | |
30352 | ||
30353 | 2016-03-10 Nick Clifton <nickc@redhat.com> | |
30354 | ||
30355 | PR target/7044 | |
30356 | * config/aarch64/aarch64.c | |
30357 | (aarch64_override_options_after_change_1): When forcing | |
30358 | flag_omit_frame_pointer to be true, use a special value that can | |
30359 | be detected if this function is called again, thus preventing | |
30360 | flag_omit_leaf_frame_pointer from being forced to be false. | |
30361 | ||
30362 | 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
30363 | ||
30364 | * common/config/aarch64/aarch64-common.c (aarch64_handle_option): | |
30365 | Set x_flag_omit_leaf_frame_pointer when handling | |
30366 | -momit-leaf-frame-pointer. | |
30367 | ||
30368 | 2016-03-10 Jan Hubicka <hubicka@ucw.cz> | |
30369 | ||
30370 | PR lto/69589 | |
30371 | * cgraph.c (cgraph_node::dump): Dump split_part and | |
30372 | indirect_call_target. | |
30373 | * cgraph.h (cgraph_node): Add indirect_call_target flag. | |
30374 | * ipa.c (has_addr_references_p): Cleanup. | |
30375 | (is_indirect_call_target_p): New. | |
30376 | (walk_polymorphic_call_targets): Do not mark virtuals that may be | |
30377 | called indirectly as local. | |
30378 | (symbol_table::remove_unreachable_nodes): Compute indirect_call_target. | |
30379 | ||
30380 | 2016-03-10 Jan Hubicka <hubicka@ucw.cz> | |
30381 | ||
30382 | PR ipa/69630 | |
30383 | * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE | |
30384 | on cxa_pure_virtual. | |
30385 | ||
30386 | 2016-03-10 Jan Hubicka <hubicka@ucw.cz> | |
30387 | ||
30388 | PR lto/69589 | |
30389 | * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL. | |
30390 | ||
30391 | 2016-03-10 Jan Hubicka <hubicka@ucw.cz> | |
30392 | ||
30393 | PR lto/69589 | |
30394 | * tree.c (need_assembler_name_p): Only record main variant type names. | |
30395 | ||
30396 | 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org> | |
30397 | ||
30398 | PR target/70113. | |
30399 | * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT): | |
30400 | Always define to 0 or 1. | |
30401 | (TARGET_FIX_ERR_A53_843419): New macro. | |
30402 | * config/aarch64/aarch64-elf-raw.h | |
30403 | (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes. | |
30404 | * config/aarch64/aarch64-linux.h: Likewise. | |
30405 | * config/aarch64/aarch64.c | |
30406 | (aarch64_override_options_after_change_1): Do not default | |
30407 | aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum | |
30408 | 843419 is on. | |
30409 | (aarch64_attributes): Handle fix-cortex-a53-843419. | |
30410 | (aarch64_can_inline_p): Likewise. | |
30411 | * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save. | |
30412 | ||
30413 | 2016-03-10 Alan Lawrence <alan.lawrence@arm.com> | |
30414 | Jakub Jelinek <jakub@redhat.com> | |
30415 | ||
30416 | * common.opt (funconstrained-commons, flag_unconstrained_commons): New. | |
30417 | * tree.c (array_at_struct_end_p): Do not limit to size of decl for | |
30418 | DECL_COMMONS if flag_unconstrained_commons is set. | |
30419 | * tree-dfa.c (get_ref_base_and_extent): Likewise. | |
30420 | * doc/invoke.texi (Optimize Options): Add -funconstrained-commons. | |
30421 | (funconstrained-commons): Document. | |
30422 | ||
30423 | 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org> | |
30424 | ||
30425 | * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add | |
30426 | aarch64-fusion-pairs.def and aarch64-tuning-flags.def | |
30427 | ||
30428 | 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com> | |
30429 | ||
30430 | * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask | |
30431 | has a proper number of elements. | |
30432 | ||
30433 | 2016-03-10 Alan Modra <amodra@gmail.com> | |
30434 | ||
30435 | PR rtl-optimization/69195 | |
30436 | PR rtl-optimization/47992 | |
30437 | * ira.c (recorded_label_ref): Delete. | |
30438 | (update_equiv_regs): Return void. | |
30439 | (indirect_jump_optimize): New function. | |
30440 | (ira): Call indirect_jump_optimize and delete_trivially_dead_insns | |
30441 | before regstat_compute_ri. Don't rebuild_jump_labels here. | |
30442 | Delete update_regstat. | |
30443 | ||
30444 | 2016-03-10 Richard Biener <rguenther@suse.de> | |
30445 | ||
30446 | PR tree-optimization/70128 | |
30447 | * tree-ssa-structalias.c (set_uids_in_ptset): Set | |
30448 | vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL. | |
30449 | ||
30450 | 2016-03-09 Jakub Jelinek <jakub@redhat.com> | |
30451 | ||
30452 | PR tree-optimization/70152 | |
30453 | * tree-sra.c (replace_removed_params_ssa_names): Copy over | |
30454 | SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name. | |
30455 | ||
30456 | PR target/70086 | |
30457 | * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df | |
30458 | instead of gen_sse2_loadlpd. | |
30459 | * config/i386/sse.md (*vec_concatv2df): Rename to... | |
30460 | (vec_concatv2df): ... this. | |
30461 | ||
30462 | PR tree-optimization/70127 | |
30463 | * fold-const.c (operand_equal_p): Revert the 2015-10-28 change. | |
30464 | ||
30465 | 2016-03-09 David Malcolm <dmalcolm@redhat.com> | |
30466 | ||
30467 | PR c/68473 | |
30468 | PR c++/70105 | |
30469 | * diagnostic-show-locus.c (compatible_locations_p): New function. | |
30470 | (layout::layout): Sanitize ranges using compatible_locations_p. | |
30471 | ||
30472 | 2016-03-09 David Malcolm <dmalcolm@redhat.com> | |
30473 | ||
30474 | PR c/68473 | |
30475 | PR c++/70105 | |
30476 | * diagnostic-show-locus.c (layout_range::layout_range): Replace | |
30477 | location_range param with three const expanded_locations * and a | |
30478 | bool. | |
30479 | (layout::layout): Replace call to | |
30480 | rich_location::lazily_expand_location with get_expanded_location. | |
30481 | Extract the range and perform location expansion here, passing | |
30482 | the results to the layout_range ctor. | |
30483 | * diagnostic.c (source_range::debug): Delete. | |
30484 | * diagnostic.h (diagnostic_expand_location): Reimplement in terms | |
30485 | of rich_location::get_expanded_location. | |
30486 | * gcc-rich-location.c (get_range_for_expr): Delete. | |
30487 | (gcc_rich_location::add_expr): Reimplement to avoid the | |
30488 | rich_location::add_range overload that took a location_range, | |
30489 | passing a location_t instead. | |
30490 | ||
30491 | 2016-03-09 Richard Biener <rguenther@suse.de> | |
30492 | Jakub Jelinek <jakub@redhat.com> | |
30493 | ||
30494 | PR tree-optimization/70138 | |
30495 | * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): | |
30496 | Also skip vect_double_reduction_def. | |
30497 | ||
30498 | 2016-03-09 Jakub Jelinek <jakub@redhat.com> | |
30499 | ||
30500 | PR target/70049 | |
30501 | * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0 | |
30502 | if the operand is "m". | |
30503 | ||
30504 | 2016-03-09 Nathan Sidwell <nathan@acm.org> | |
30505 | ||
30506 | * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level. | |
30507 | ||
30508 | 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com> | |
30509 | ||
30510 | * config/i386/i386.c (processor_target_table): Fix cost table | |
30511 | intialization order for znver1. | |
30512 | ||
30513 | 2016-03-08 Jakub Jelinek <jakub@redhat.com> | |
30514 | ||
30515 | * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling | |
30516 | - becuase -> because. | |
30517 | * ipa-reference.c (ignore_module_statics): Likewise. | |
30518 | * cgraph.c (cgraph_node::get_body): Likewise. | |
30519 | * ipa-inline.c (early_inliner): Likewise. | |
30520 | * ipa-devirt.c (types_same_for_odr): Likewise. | |
30521 | * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise. | |
30522 | * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise. | |
30523 | ||
30524 | 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
30525 | ||
30526 | * tree-ssa-math-opts.c: Fix typo in comment. | |
30527 | ||
30528 | 2016-03-08 Jakub Jelinek <jakub@redhat.com> | |
30529 | ||
30530 | PR target/70110 | |
30531 | * config/i386/i386.c (scalar_chain::make_vector_copies, | |
30532 | scalar_chain::convert_reg): Call end_sequence in between | |
30533 | get_insns and emit_conversion_insns rather than after both | |
30534 | calls. | |
30535 | ||
30536 | 2016-03-07 Uros Bizjak <ubizjak@gmail.com> | |
30537 | ||
30538 | PR target/70064 | |
30539 | * config/i386/i386.h (machine_function): Add | |
30540 | pc_thunk_call_expanded flag. | |
30541 | (ix86_pc_thunk_call_expanded): New define. | |
30542 | * config/i386/i386.md (set_got, set_got_labelled): New expanders. | |
30543 | (*set_got): Rename insn pattern from set_got. | |
30544 | (*set_got_labelled): Rename inst pattern from set_got_labelled. | |
30545 | * config/i386/i386.c (ix86_compute_frame_layout): Use | |
30546 | ix86_pc_thunk_call_expanded to prevent red-zone. | |
30547 | ||
30548 | 2016-03-07 Martin Jambor <mjambor@suse.cz> | |
30549 | ||
30550 | * hsa.h (hsa_get_ctor_statements): Declare. | |
30551 | (hsa_get_dtor_statements): Likewise. | |
30552 | (hsa_get_kernel_dispatch_type): Likewise. | |
30553 | * hsa.c (hsa_get_ctor_statements): New function. | |
30554 | (hsa_get_dtor_statements): Likewise. | |
30555 | (hsa_get_kernel_dispatch_type): Likewise. | |
30556 | * hsa-brig.c (hsa_cdtor_statements): Removed. | |
30557 | (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and | |
30558 | hsa_get_dtor_statements. | |
30559 | * hsa-gen.c (hsa_kernel_dispatch_type): Removed. | |
30560 | (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type. | |
30561 | ||
30562 | 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
30563 | ||
30564 | * config/arm/arm-cores.def (cortex-r8): New. | |
30565 | * config/arm/arm-tables.opt (cortex-r8): Regenerate. | |
30566 | * config/arm/arm-tune.md: Likewise. | |
30567 | * doc/invoke.texi: Add cortex-r8 to list of cpu values. | |
30568 | ||
30569 | 2016-03-07 Martin Sebor <msebor@redhat.com> | |
30570 | ||
30571 | PR rtl-optimization/19705 | |
30572 | * doc/invoke.texi (Options That Control Optimization): Clarify | |
30573 | -fno-branch-count-reg. | |
30574 | ||
30575 | 2016-02-26 Richard Biener <rguenther@suse.de> | |
30576 | Jeff Law <law@redhat.com> | |
30577 | ||
30578 | PR tree-optimization/69740 | |
30579 | * cfghooks.c (remove_edge): Request loop fixups if we delete | |
30580 | an edge that might turn an irreducible loop into a natural | |
30581 | loop. | |
30582 | * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP. | |
30583 | Move after definition of loops_state_clear. | |
30584 | ||
30585 | 2016-03-07 Bin Cheng <bin.cheng@arm.com> | |
30586 | ||
30587 | PR rtl-optimization/69052 | |
30588 | * rtlanal.c (commutative_operand_precedence): Set higher precedence | |
30589 | to CONST_WIDE_INT. | |
30590 | ||
30591 | 2016-03-07 Tom de Vries <tom@codesourcery.com> | |
30592 | ||
30593 | PR tree-optimization/70116 | |
30594 | * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling | |
30595 | is_tm_ending stmts and ubsan/asan internal functions. | |
30596 | (find_duplicate): Use it. Don't test is_tm_ending here. | |
30597 | ||
30598 | 2016-03-07 Richard Biener <rguenther@suse.de> | |
30599 | ||
30600 | PR tree-optimization/70115 | |
30601 | * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove. | |
30602 | (propagate_constants_for_unrolling): Use replace_uses_by. | |
30603 | ||
30604 | 2016-03-07 Nathan Sidwell <nathan@codesourcery.com> | |
30605 | ||
30606 | PR middle-end/69916 | |
30607 | * omp-low.c (struct oacc_loop): Add ifns. | |
30608 | (new_oacc_loop_raw): Initialize it. | |
30609 | (finish_oacc_loop): Clear mask & flags if no ifns. | |
30610 | (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls. | |
30611 | (oacc_loop_xform_loop): Add ifns arg & adjust. | |
30612 | (oacc_loop_process): Adjust oacc_loop_xform_loop call. | |
30613 | ||
30614 | 2016-03-07 Richard Henderson <rth@redhat.com> | |
30615 | ||
30616 | PR rtl-opt/70061 | |
30617 | * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust. | |
30618 | (insert_value_copy_on_edge): Likewise. | |
30619 | ||
30620 | 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
30621 | ||
30622 | * config/arm/arm_neon.h: Show error if using with soft-float ABI. | |
30623 | ||
30624 | 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
30625 | ||
30626 | PR target/62281 | |
30627 | * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define. | |
30628 | ||
30629 | 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com> | |
30630 | ||
30631 | * config/i386/i386.c (znver1_cost): Fix Multiply cost. | |
30632 | ||
30633 | 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com> | |
30634 | ||
30635 | Fix sseimul type attribute. | |
30636 | * config/i386/znver1.md | |
30637 | (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load, | |
30638 | znver1_sseimul_avx256_load) : Fix the type attribute. | |
30639 | (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute, | |
30640 | pipe usage and latency. | |
30641 | ||
30642 | 2016-03-05 Jakub Jelinek <jakub@redhat.com> | |
30643 | ||
30644 | PR c++/70084 | |
30645 | * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR | |
30646 | of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it | |
30647 | to the right type. | |
30648 | ||
30649 | 2016-03-04 Bernd Schmidt <bschmidt@redhat.com> | |
30650 | ||
30651 | PR c/69973 | |
30652 | * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT. | |
30653 | ||
30654 | PR rtl-optimization/69941 | |
30655 | * postreload.c (reload_combine_recognize_pattern): Ensure all uses of | |
30656 | the reg share its mode. | |
30657 | ||
30658 | 2016-03-04 Jeff Law <law@redhat.com> | |
30659 | ||
30660 | PR tree-optimization/69196 | |
30661 | * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths): | |
30662 | If the both SSA_NAMEs are anonymous, then consider them unassociated | |
30663 | and include the PHI in the statement count. | |
30664 | ||
30665 | 2016-03-05 Tom de Vries <tom@codesourcery.com> | |
30666 | ||
30667 | * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc | |
30668 | construct in oacc routine. Check for oacc region in oacc routine. | |
30669 | ||
30670 | 2016-03-04 Jakub Jelinek <jakub@redhat.com> | |
30671 | ||
30672 | PR target/70062 | |
30673 | * config/i386/i386.c (decide_alg): Add RECUR argument. Revert | |
30674 | 2016-02-22 changes, instead don't recurse if RECUR is already true. | |
30675 | Don't change *dynamic_check if RECUR. Adjust recursive caller | |
30676 | to pass true to the new argument. | |
30677 | (ix86_expand_set_or_movmem): Adjust decide_alg caller. | |
30678 | ||
30679 | PR target/70059 | |
30680 | * config/i386/sse.md (vec_set_lo_<mode><mask_name>, | |
30681 | <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting | |
30682 | fixes. | |
30683 | (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands. | |
30684 | ||
30685 | 2016-03-04 Bernd Schmidt <bschmidt@redhat.com> | |
30686 | ||
30687 | PR rtl-optimization/57676 | |
30688 | * lra-assigns.c (lra_assign): Guard test for maximum iterations | |
30689 | with flag_checking. | |
30690 | ||
30691 | 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com> | |
30692 | ||
30693 | * tree-vect-patterns.c (search_type_for_mask): Handle | |
30694 | comparison of booleans. | |
30695 | ||
30696 | 2016-03-04 Jakub Jelinek <jakub@redhat.com> | |
30697 | ||
30698 | * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align): | |
30699 | Fix @xref usage. | |
30700 | ||
30701 | PR debug/69947 | |
30702 | * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle | |
30703 | all other ops that have dw_val_class_die_ref operands, | |
30704 | and DW_OP_GNU_entry_value. | |
30705 | ||
30706 | 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
30707 | ||
30708 | PR rtl-optimization/69904 | |
30709 | * config/arm/arm.c (arm_cannot_copy_insn_p): | |
30710 | Return true for load-exclusive instructions. | |
30711 | ||
30712 | 2016-03-03 Jakub Jelinek <jakub@redhat.com> | |
30713 | ||
30714 | PR target/70021 | |
30715 | * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN | |
30716 | argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark | |
30717 | the pattern no matter if it is used just by non-pattern, pattern | |
30718 | or mix thereof. | |
30719 | (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers. | |
30720 | * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If | |
30721 | oprnd1 def_stmt is in pattern, don't look through it. | |
30722 | ||
30723 | 2016-03-03 Marek Polacek <polacek@redhat.com> | |
30724 | ||
30725 | PR middle-end/70050 | |
30726 | * match.pd (X % -Y): Add INTEGRAL_TYPE_P check. | |
30727 | ||
30728 | 2016-03-03 Martin Liska <mliska@suse.cz> | |
30729 | ||
30730 | PR tree-optimization/70043 | |
30731 | * tree-vect-loop.c (optimize_mask_stores): Move iterator to | |
30732 | previous statement if we see a debug statement. | |
30733 | ||
30734 | 2016-03-03 Richard Biener <rguenther@suse.de> | |
30735 | ||
30736 | PR tree-optimization/55936 | |
30737 | * tree-vrp.c (compare_name_with_value): Add use_equiv_p | |
30738 | parameter and guard unsafe equivalence use. | |
30739 | (vrp_evaluate_conditional_warnv_with_ops): Always use | |
30740 | safe equivalences but not via the quadratic compare_names | |
30741 | helper. | |
30742 | ||
30743 | 2016-03-03 Michael Collison <michael.collison@linaro.org> | |
30744 | ||
30745 | PR target/70014 | |
30746 | * config/arm/arm.md (*subsi3_carryin_const): Change predicate | |
30747 | for operand 1 to s_register_operand. Change predicate for operand | |
30748 | 2 to arm_not_immediate_operand. | |
30749 | ||
30750 | 2016-03-02 H.J. Lu <hongjiu.lu@intel.com> | |
30751 | ||
30752 | * doc/tm.texi: Regenerated. | |
30753 | ||
30754 | 2016-03-02 Richard Henderson <rth@redhat.com> | |
30755 | ||
30756 | PR rtl-opt/67145 | |
30757 | * simplify-rtx.c (simplify_plus_minus): Allow reassoc without | |
30758 | simplification when all args are positive non-fixed registers. | |
30759 | ||
30760 | 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
30761 | ||
30762 | * target.def (lra_p): Specify that new ports should use LRA. | |
30763 | ||
30764 | 2016-03-02 Jakub Jelinek <jakub@redhat.com> | |
30765 | ||
30766 | PR libgomp/69555 | |
30767 | * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also | |
30768 | gimplify_type_sizes the type they refer to. | |
30769 | (omp_notice_variable): Handle reference vars to VLAs. | |
30770 | * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE | |
30771 | reference to VLA decls in the second pass instead of first pass. | |
30772 | ||
30773 | 2016-03-02 Tom de Vries <tom@codesourcery.com> | |
30774 | ||
30775 | PR tree-optimization/68659 | |
30776 | * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle | |
30777 | new_expr == NULL_TREE. | |
30778 | (get_new_name): Handle ADDR_EXPR. | |
30779 | ||
30780 | 2016-03-02 Bin Cheng <bin.cheng@arm.com> | |
30781 | ||
30782 | PR rtl-optimization/69052 | |
30783 | * loop-invariant.c (canonicalize_address): New function. | |
30784 | (inv_can_prop_to_addr_use): Check validity of address expression | |
30785 | which is canonicalized by above function. | |
30786 | ||
30787 | 2016-03-02 Alan Modra <amodra@gmail.com> | |
30788 | ||
30789 | PR ipa/69990 | |
30790 | * ipa-icf.c (sem_variable::merge): Do not merge an alias with | |
30791 | larger alignment. | |
30792 | ||
30793 | 2016-03-02 Jakub Jelinek <jakub@redhat.com> | |
30794 | ||
30795 | PR target/70028 | |
30796 | * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative. | |
30797 | (*movhi_internal): Put mask moves from and to memory separately | |
30798 | from moves from/to GPRs. | |
30799 | ||
30800 | 2016-03-02 Richard Biener <rguenther@suse.de> | |
30801 | ||
30802 | * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded | |
30803 | GENERIC expressions in GIMPLE. | |
30804 | ||
30805 | 2016-03-02 Richard Biener <rguenther@suse.de> | |
30806 | ||
30807 | * config/i386/i386.c (type_natural_mode): Fix typo. | |
30808 | ||
30809 | 2016-03-02 Nick Clifton <nickc@redhat.com> | |
30810 | ||
30811 | * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file. | |
30812 | ||
30813 | 2016-03-02 Richard Biener <rguenther@suse.de> | |
30814 | Uros Bizjak <ubizjak@gmail.com> | |
30815 | ||
30816 | PR target/67278 | |
30817 | * config/i386/i386.c (type_natural_mode): Handle XFmode vectors. | |
30818 | ||
30819 | 2016-03-02 Richard Biener <rguenther@suse.de> | |
30820 | ||
30821 | PR middle-end/67278 | |
30822 | * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case. | |
30823 | ||
30824 | 2016-03-02 Marek Polacek <polacek@redhat.com> | |
30825 | ||
30826 | PR c/67854 | |
30827 | * gimplify.c (gimplify_va_arg_expr): Use expanded location for the | |
30828 | "is promoted to" warning. | |
30829 | ||
30830 | 2016-03-01 DJ Delorie <dj@redhat.com> | |
30831 | ||
30832 | * config.gcc: Deprecate mep-*. | |
30833 | ||
30834 | 2016-03-01 Vladimir Makarov <vmakarov@redhat.com> | |
30835 | ||
30836 | PR middle-end/70025 | |
30837 | * lra-constraints.c (regno_val_use_in): New. | |
30838 | (match_reload): Use it instead of regno_use_in. | |
30839 | ||
30840 | 2016-03-01 Eric Botcazou <ebotcazou@adacore.com> | |
30841 | ||
30842 | PR rtl-optimization/70007 | |
30843 | * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory | |
30844 | references present in REG_EQUAL notes attached to non-SET patterns. | |
30845 | ||
30846 | 2016-03-01 Jeff Law <law@redhat.com> | |
30847 | ||
30848 | PR tree-optimization/69196 | |
30849 | * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths): | |
30850 | Appropriately clamp the number of statements to copy when the | |
30851 | thread path does not traverse a loop backedge. | |
30852 | ||
30853 | PR tree-optimization/69196 | |
30854 | * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths): | |
30855 | Do count some PHIs in the thread path against the insn count. Decrease | |
30856 | final statement count by one as the control statement in the last | |
30857 | block will get removed. Remove special cased code for handling PHIs | |
30858 | in the last block. | |
30859 | ||
30860 | 2016-03-01 Uros Bizjak <ubizjak@gmail.com> | |
30861 | ||
30862 | PR target/70027 | |
30863 | * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel | |
30864 | asm dialect alternatives to explicit GOTPCREL calls. | |
30865 | ||
30866 | 2016-03-01 Eric Botcazou <ebotcazou@adacore.com> | |
30867 | ||
30868 | PR ada/70017 | |
30869 | * ira.c (do_reload): Issue warning for generic stack checking here... | |
30870 | * reload1.c (reload): ...instead of here and streamline it. | |
30871 | ||
30872 | 2016-03-01 Nick Clifton <nickc@redhat.com> | |
30873 | ||
30874 | * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file. | |
30875 | ||
30876 | 2016-03-01 Richard Biener <rguenther@suse.de> | |
30877 | ||
30878 | PR tree-optimization/69983 | |
30879 | * tree-chrec.c (eq_evolutions_p): Handle conversions, compare | |
30880 | types and fall back to operand_equal_p. | |
30881 | ||
30882 | 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
30883 | ||
30884 | Revert | |
30885 | 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
30886 | ||
30887 | * config/s390/constraints.md ("jm8"): New constraint. | |
30888 | * config/s390/predicates.md ("const_int_8bitset_operand"): New | |
30889 | predicate. | |
30890 | * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge | |
30891 | into ... | |
30892 | ("*setmem_long<setmem_and>"): New pattern. | |
30893 | ("*setmem_long_31z", "*setmem_long_and_31z"): Merge | |
30894 | into ... | |
30895 | ("*setmem_long_31z<setmem_and>"): New pattern. | |
30896 | * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"): | |
30897 | New substitution rules with the required attributes. | |
30898 | ||
30899 | ||
30900 | 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
30901 | ||
30902 | Revert | |
30903 | 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
30904 | ||
30905 | * gensupport.c (process_substs_on_one_elem): Split loop to | |
30906 | complete mark_operands_used_in_match_dup on all expressions in the | |
30907 | vector first. | |
30908 | (adjust_operands_numbers): Inline into process_substs_on_one_elem | |
30909 | and remove function. | |
30910 | ||
30911 | 2016-03-01 Richard Biener <rguenther@suse.de> | |
30912 | ||
30913 | PR middle-end/70022 | |
30914 | * fold-const.c (fold_indirect_ref_1): Fix range checking for | |
30915 | vector BIT_FIELD_REF extract. | |
30916 | ||
30917 | 2016-03-01 Richard Biener <rguenther@suse.de> | |
30918 | ||
30919 | PR tree-optimization/69994 | |
30920 | * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case. | |
30921 | ||
30922 | 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com> | |
30923 | ||
30924 | PR tree-optimization/69956 | |
30925 | * tree-vect-stmts.c (supportable_widening_operation): Support | |
30926 | multi-step conversion of boolean vectors. | |
30927 | (supportable_narrowing_operation): Likewise. | |
30928 | ||
30929 | 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
30930 | ||
30931 | * config/s390/s390.c (s390_decompose_address): Don't accept SImode | |
30932 | anymore. | |
30933 | ||
30934 | 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
30935 | ||
30936 | * config/s390/subst.md (DSI_VI): New mode iterator. | |
30937 | ("addr_style_op_subst"): Use DSI_VI instead of DSI. | |
30938 | * config/s390/vector.md ("vec_set<mode>"): Move expander before | |
30939 | the insn definition. | |
30940 | ("*vec_set<mode>"): Change predicate and add alternative to | |
30941 | support only either register or const_int operands as element | |
30942 | selector. | |
30943 | ("*vec_set<mode>_plus"): New pattern to support reg + const_int | |
30944 | operands. | |
30945 | ("vec_extract<mode>"): New expander. | |
30946 | ("*vec_extract<mode>"): New insn definition supporting reg and | |
30947 | const_int element selectors. | |
30948 | ("*vec_extract<mode>_plus"): New insn definition supporting | |
30949 | reg+const_int element selectors. | |
30950 | ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the | |
30951 | following expander+insn definition. | |
30952 | ("<vec_shifts_name><mode>3"): New expander. | |
30953 | ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition. | |
30954 | ||
30955 | 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
30956 | ||
30957 | * config/s390/s390.md ("*tabort_1"): Change predicate to | |
30958 | nonmemory_operand. Add a second alternative to cover | |
30959 | register as well as const int operands. | |
30960 | ("*tabort_1_plus"): New pattern definition. | |
30961 | ||
30962 | 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
30963 | ||
30964 | * config/s390/s390.md ("*ashrdi3_cc_31") | |
30965 | ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and") | |
30966 | ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"): | |
30967 | Merge insn definitions into ... | |
30968 | ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"): | |
30969 | New pattern definition. | |
30970 | ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", ) | |
30971 | ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and") | |
30972 | ("*ashr<mode>3_and"): Merge insn definitions into ... | |
30973 | ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"): | |
30974 | New pattern definition. | |
30975 | * config/s390/subst.md ("addr_style_op_cc_subst") | |
30976 | ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New | |
30977 | substitutions patterns plus attributes. | |
30978 | Add ashiftrt to SUBST iterator. | |
30979 | ||
30980 | 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
30981 | ||
30982 | * config/s390/s390.md ("<shift><mode>3"): Change predicate of | |
30983 | op2 to nonmemory_operand. | |
30984 | ("*<shift>di3_31", "*<shift>di3_31_and"): | |
30985 | Merge into single pattern definition ... | |
30986 | ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern. | |
30987 | ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single | |
30988 | pattern definition ... | |
30989 | ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern. | |
30990 | * config/s390/subst.md: Add ashift and lshiftrt to SUBST | |
30991 | iterator. | |
30992 | ||
30993 | 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
30994 | ||
30995 | * config/s390/predicates.md (const_int_6bitset_operand): New | |
30996 | predicate. | |
30997 | * config/s390/s390.md: Include subst.md. | |
30998 | ("rotl<mode>3"): New expander. | |
30999 | ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into | |
31000 | ... | |
31001 | ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition. | |
31002 | * config/s390/subst.md: New file. | |
31003 | ||
31004 | 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
31005 | ||
31006 | * config/s390/s390.md ("op_type", "atype", "length" attributes): | |
31007 | Remove RRR type. It doesn't really exist. | |
31008 | ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode | |
31009 | attributes. | |
31010 | ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes. | |
31011 | ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3") | |
31012 | ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3") | |
31013 | ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3") | |
31014 | ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2") | |
31015 | ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override | |
31016 | `enabled' attribute. | |
31017 | ||
31018 | 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
31019 | ||
31020 | * gensupport.c (process_substs_on_one_elem): Split loop to | |
31021 | complete mark_operands_used_in_match_dup on all expressions in the | |
31022 | vector first. | |
31023 | (adjust_operands_numbers): Inline into process_substs_on_one_elem | |
31024 | and remove function. | |
31025 | ||
31026 | 2016-02-29 Eric Botcazou <ebotcazou@adacore.com> | |
31027 | ||
31028 | PR target/69706 | |
31029 | * config/sparc/sparc.c (NWORDS_UP): Rename to... | |
31030 | (CEIL_NWORDS): ...this. Use CEIL macro. | |
31031 | (compute_fp_layout): Adjust to above renaming. | |
31032 | (function_arg_union_value): Likewise. | |
31033 | (sparc_arg_partial_bytes): Likewise. | |
31034 | (sparc_function_arg_advance): Likewise. | |
31035 | ||
31036 | 2016-02-29 Jeff Law <law@redhat.com> | |
31037 | ||
31038 | PR tree-optimization/70005 | |
31039 | * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case | |
31040 | where an object with a boolean range is compared against a value | |
31041 | outside [0..1]. | |
31042 | ||
31043 | PR tree-optimization/69999 | |
31044 | * gimple-ssa-split-paths.c (split_paths): When duplicating a block | |
31045 | with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule | |
31046 | loop cleanups. | |
31047 | ||
31048 | 2016-02-29 Richard Biener <rguenther@suse.de> | |
31049 | ||
31050 | PR tree-optimization/69994 | |
31051 | * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function. | |
31052 | (get_unary_op): Look through nop conversions. | |
31053 | (ops_equal_values_p): New function, look for equality diregarding | |
31054 | nop conversions. | |
31055 | (eliminate_plus_minus_pair): Use ops_equal_values_p | |
31056 | (repropagate_negates): Do not use get_unary_op here. | |
31057 | ||
31058 | 2016-02-29 Martin Liska <mliska@suse.cz> | |
31059 | ||
31060 | * system.h: Poison ENABLE_CHECKING macro. | |
31061 | ||
31062 | 2016-02-29 Martin Liska <mliska@suse.cz> | |
31063 | ||
31064 | * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS | |
31065 | is presented in dump flags. | |
31066 | * hsa-regalloc.c (linear_scan_regalloc): Likewise. | |
31067 | (hsa_regalloc): Likewise. | |
31068 | ||
31069 | 2016-02-19 Richard Biener <rguenther@suse.de> | |
31070 | ||
31071 | PR tree-optimization/69980 | |
31072 | * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update | |
31073 | permutation of those we need to keep. | |
31074 | ||
31075 | 2016-02-29 Eric Botcazou <ebotcazou@adacore.com> | |
31076 | ||
31077 | PR target/69706 | |
31078 | * config/sparc/sparc.c (ROUND_ADVANCE): Rename to... | |
31079 | (NWORDS_UP): ...this | |
31080 | (init_cumulative_args): Minor tweaks. | |
31081 | (sparc_promote_function_mode): Likewise. | |
31082 | (scan_record_type): Delete. | |
31083 | (traverse_record_type): New function template. | |
31084 | (classify_data_t): New structure type. | |
31085 | (classify_registers): New inline function. | |
31086 | (function_arg_slotno): In 64-bit mode, bail out early if FP slots are | |
31087 | exhausted. Instantiate traverse_record_type on classify_registers and | |
31088 | deal with the case of a structure passed in slot #15 with no FP field | |
31089 | in the first word. | |
31090 | (assign_data_t): New structure type. | |
31091 | (compute_int_layout): New static function. | |
31092 | (compute_fp_layout): Likewise. | |
31093 | (count_registers): New inline function. | |
31094 | (assign_int_registers): New static function. | |
31095 | (assign_fp_registers): Likewise. | |
31096 | (assign_registers): New inline function. | |
31097 | (function_arg_record_value_1): Delete. | |
31098 | (function_arg_record_value_2): Likewise. | |
31099 | (function_arg_record_value_3): Likewise. | |
31100 | (function_arg_record_value): Adjust to above changes. Instantiate | |
31101 | traverse_record_type on count_registers to first count the number of | |
31102 | registers to be used and then on assign_registers to assign them. | |
31103 | (function_arg_union_value): Adjust to above renaming. | |
31104 | (sparc_function_arg_1); Minor tweaks. Remove commented out code. | |
31105 | (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the | |
31106 | case of a structure passed in slot #15 | |
31107 | (sparc_function_arg_advance): Likewise. | |
31108 | (function_arg_padding): Minor tweak. | |
31109 | ||
31110 | 2016-02-29 Richard Biener <rguenther@suse.de> | |
31111 | ||
31112 | PR tree-optimization/69720 | |
31113 | * tree-vect-loop.c (get_initial_def_for_reduction): Avoid | |
31114 | the adjustment_def path for possibly vectorized defs. | |
31115 | (vect_create_epilog_for_reduction): Handle vectorized initial | |
31116 | defs properly. | |
31117 | ||
31118 | 2016-02-28 Eric Botcazou <ebotcazou@adacore.com> | |
31119 | ||
31120 | * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define. | |
31121 | ||
31122 | 2016-02-27 Jeff Law <law@redhat.com> | |
31123 | ||
31124 | Revert | |
31125 | 2016-02-26 Richard Biener <rguenther@suse.de> | |
31126 | Jeff Law <law@redhat.com> | |
31127 | ||
31128 | PR tree-optimization/69740 | |
31129 | * cfghooks.c (remove_edge): Request loop fixups if we delete | |
31130 | an edge that might turn an irreducible loop into a natural | |
31131 | loop. | |
31132 | ||
31133 | 2016-02-27 Jakub Jelinek <jakub@redhat.com> | |
31134 | ||
31135 | PR rtl-optimization/69896 | |
31136 | * tree-vect-generic.c (get_compute_type): Avoid single element | |
31137 | vector types. | |
31138 | ||
31139 | 2016-02-26 Evandro Menezes <e.menezes@samsung.com> | |
31140 | ||
31141 | Rename the AArch64 tuning option and related functions to enable the | |
31142 | Newton series for the reciprocal square root to reflect its | |
31143 | approximative characteristic. | |
31144 | ||
31145 | * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename | |
31146 | function to "aarch64_emit_approx_rsqrt". | |
31147 | * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to | |
31148 | AARCH64_EXTRA_TUNE_APPROX_RSQRT. | |
31149 | * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name. | |
31150 | (xgene1_tunings): Likewise. | |
31151 | (use_rsqrt_p): Likewise. | |
31152 | (aarch64_emit_swrsqrt): Use new function name. | |
31153 | * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise. | |
31154 | * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the | |
31155 | text explaining this option. | |
31156 | * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise. | |
31157 | ||
31158 | 2016-02-26 Jakub Jelinek <jakub@redhat.com> | |
31159 | ||
31160 | PR target/69969 | |
31161 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't | |
31162 | complain about -mallow-movmisalign without -mvsx if | |
31163 | TARGET_ALLOW_MOVMISALIGN was not set explicitly. | |
31164 | ||
31165 | 2016-02-26 Joel Sherrill <joel@rtems.org> | |
31166 | ||
31167 | * config.gcc: Add x86_64-*-rtems*. | |
31168 | * config/i386/rtems-64.h: New file. | |
31169 | ||
31170 | 2016-02-26 Joel Sherrill <joel@rtems.org> | |
31171 | ||
31172 | * config.gcc: Add aarch64-*-rtems*. | |
31173 | * config/aarch64/rtems.h: New file. | |
31174 | ||
31175 | 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org> | |
31176 | ||
31177 | PR target/69946 | |
31178 | * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm | |
31179 | shift amount using %h. Add comment. | |
31180 | ||
31181 | 2016-02-26 Richard Biener <rguenther@suse.de> | |
31182 | Jeff Law <law@redhat.com> | |
31183 | ||
31184 | PR tree-optimization/69740 | |
31185 | * cfghooks.c (remove_edge): Request loop fixups if we delete | |
31186 | an edge that might turn an irreducible loop into a natural | |
31187 | loop. | |
31188 | ||
31189 | 2016-02-26 Martin Jambor <mjambor@suse.cz> | |
31190 | ||
31191 | PR middle-end/69920 | |
31192 | * tree-sra.c (sra_modify_assign): Do not remove loads of | |
31193 | uninitialized aggregates to SSA_NAMEs. | |
31194 | ||
31195 | 2016-02-26 Richard Henderson <rth@redhat.com> | |
31196 | ||
31197 | PR target/69709 | |
31198 | * config/s390/s390.md (risbg and risbgn splitters): Allocate new | |
31199 | pseudo in case the target rtx matches the source of the left | |
31200 | shift. | |
31201 | ||
31202 | 2016-02-26 Martin Jambor <mjambor@suse.cz> | |
31203 | ||
31204 | PR hsa/69568 | |
31205 | * hsa.h (hsa_type_packed_p): Declare. | |
31206 | * hsa.c (hsa_type_packed_p): New function. | |
31207 | * hsa-gen.c (mem_type_for_type): Use unsigned type for packed | |
31208 | loads. | |
31209 | (gen_hsa_insns_for_store): Use hsa_type_packed_p. | |
31210 | * hsa-brig.c (emit_basic_insn): Likewise. | |
31211 | ||
31212 | 2016-02-26 Martin Jambor <mjambor@suse.cz> | |
31213 | ||
31214 | pr hsa/69674 | |
31215 | * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for | |
31216 | pointers. | |
31217 | (gen_hsa_addr): Allow integer constants in TMR_INDEX2. | |
31218 | ||
31219 | 2016-02-26 Martin Jambor <mjambor@suse.cz> | |
31220 | ||
31221 | * hsa.h (is_a_helper): New overload for hsa_op_immed for | |
31222 | hsa_op_with_type operands. | |
31223 | (hsa_unsigned_type_for_type): Declare. | |
31224 | * hsa.c (hsa_unsigned_type_for_type): New function. | |
31225 | * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type. | |
31226 | (gen_hsa_insns_for_operation_assignment): Satisfy constrains of | |
31227 | the finalizer. Do not emit extra move. | |
31228 | ||
31229 | 2016-02-26 Martin Jambor <mjambor@suse.cz> | |
31230 | ||
31231 | * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of | |
31232 | atomic operations in private segment. | |
31233 | ||
31234 | 2016-02-26 Martin Jambor <mjambor@suse.cz> | |
31235 | ||
31236 | * omp-low.c (grid_find_ungridifiable_statement): Store problematic | |
31237 | statements to wi->info. Also disallow omp simd constructs. | |
31238 | (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason | |
31239 | for not gridifying. Dump special string for omp_for. | |
31240 | ||
31241 | 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
31242 | ||
31243 | PR target/69245 | |
31244 | * config/aarch64/aarch64.c (aarch64_set_current_function): | |
31245 | Save/restore target globals when switching to | |
31246 | target_option_default_node. | |
31247 | ||
31248 | 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
31249 | ||
31250 | PR target/69613 | |
31251 | * config/aarch64/aarch64.c (aarch64_shift_truncation_mask): | |
31252 | Return 0 if !SHIFT_COUNT_TRUNCATED. | |
31253 | ||
31254 | 2016-02-26 Jakub Jelinek <jakub@redhat.com> | |
31255 | Eric Botcazou <ebotcazou@adacore.com> | |
31256 | ||
31257 | PR rtl-optimization/69891 | |
31258 | * dse.c (scan_insn): If we can't figure out memset arguments | |
31259 | or they are non-constant, call clear_rhs_from_active_local_stores. | |
31260 | ||
31261 | 2016-02-26 Martin Liska <mliska@suse.cz> | |
31262 | ||
31263 | * doc/extend.texi: Mention clog10, clog10f an clog10l | |
31264 | in Builtins section. | |
31265 | ||
31266 | 2016-02-26 Martin Liska <mliska@suse.cz> | |
31267 | ||
31268 | * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with | |
31269 | CHECKING_P. | |
31270 | (resolve_args_picking_1): Likewise. | |
31271 | * dwarf2out.h (struct GTY): Likewise. | |
31272 | ||
31273 | 2016-02-26 Martin Liska <mliska@suse.cz> | |
31274 | ||
31275 | * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro | |
31276 | with flag_checking. | |
31277 | * hsa-regalloc.c (linear_scan_regalloc): Likewise. | |
31278 | ||
31279 | 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de> | |
31280 | Martin Liska <mliska@suse.cz> | |
31281 | ||
31282 | * doc/install.texi: Mention --enable-valgrind-annotations. | |
31283 | ||
31284 | 2016-02-26 Richard Biener <rguenther@suse.de> | |
31285 | ||
31286 | PR tree-optimization/69551 | |
31287 | * tree-ssa-structalias.c (get_constraint_for_ssa_var): When | |
31288 | looking through aliases adjust DECL_PT_UID to refer to the | |
31289 | ultimate alias target. | |
31290 | ||
31291 | 2016-02-25 Martin Liska <mliska@suse.cz> | |
31292 | ||
31293 | PR middle-end/69919 | |
31294 | * alloc-pool.c (after_memory_report): New variable. | |
31295 | * alloc-pool.h (base_pool_allocator ::release): Do not use | |
31296 | the infrastructure if after_memory_report. | |
31297 | * toplev.c (toplev::main): Mark after memory report. | |
31298 | ||
31299 | 2016-02-25 Richard Biener <rguenther@suse.de> | |
31300 | ||
31301 | PR tree-optimization/48795 | |
31302 | * tree-vrp.c (check_array_ref): Use array_at_struct_end_p. | |
31303 | ||
31304 | 2016-02-25 Ilya Verbin <ilya.verbin@intel.com> | |
31305 | ||
31306 | PR driver/68463 | |
31307 | * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if | |
31308 | offloading is enabled and -fopenacc or -fopenmp is specified. | |
31309 | (CRTOFFLOADEND): Likewise. | |
31310 | (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN. | |
31311 | (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND. | |
31312 | * lto-wrapper.c (offloadbegin, offloadend): Remove static vars. | |
31313 | (offload_objects_file_name): New static var. | |
31314 | (tool_cleanup): Remove offload_objects_file_name file. | |
31315 | (find_offloadbeginend): Replace with ... | |
31316 | (find_crtoffloadtable): ... this. | |
31317 | (run_gcc): Remove offload_argc and offload_argv. | |
31318 | Get offload_objects_file_name from -foffload-objects=... option. | |
31319 | Read names of object files with offload from this file, pass them to | |
31320 | compile_images_for_offload_targets. Don't call find_offloadbeginend and | |
31321 | don't pass offloadbegin and offloadend to the linker. Don't pass | |
31322 | offload non-LTO files to the linker, because now they're not claimed. | |
31323 | ||
31324 | 2016-02-25 Jan Hubicka <hubicka@ucw.cz> | |
31325 | ||
31326 | PR ipa/69630 | |
31327 | * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE | |
31328 | on builtin_unreachable. | |
31329 | ||
31330 | 2016-02-25 Jakub Jelinek <jakub@redhat.com> | |
31331 | ||
31332 | PR rtl-optimization/69896 | |
31333 | * regcprop.c: Include cfgrtl.h. | |
31334 | (copyprop_hardreg_forward_1): If noop_p insn uses narrower | |
31335 | than remembered mode, either delete it (if noop_move_p), or | |
31336 | treat like copy_p but not noop_p instruction. | |
31337 | ||
31338 | 2016-02-24 Jakub Jelinek <jakub@redhat.com> | |
31339 | ||
31340 | PR debug/69705 | |
31341 | * dwarf2out.c (gen_variable_die): Work around buggy LTO | |
31342 | - allow NULL decl for Fortran DW_TAG_common_block variables. | |
31343 | ||
31344 | 2016-02-24 Jason Merrill <jason@redhat.com> | |
31345 | ||
31346 | * common.opt (flifetime-dse): Add -flifetime-dse=1. | |
31347 | ||
31348 | 2016-02-24 Richard Biener <rguenther@suse.de> | |
31349 | Jakub Jelinek <jakub@redhat.com> | |
31350 | ||
31351 | PR middle-end/69760 | |
31352 | * tree-scalar-evolution.c (interpret_rhs_expr): Re-write | |
31353 | conditionally executed ops to well-defined overflow behavior. | |
31354 | ||
31355 | 2016-02-24 Jakub Jelinek <jakub@redhat.com> | |
31356 | ||
31357 | PR middle-end/69915 | |
31358 | * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST | |
31359 | elements. | |
31360 | ||
31361 | 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
31362 | ||
31363 | PR rtl-optimization/69886 | |
31364 | * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode | |
31365 | argument. Use it when checking validity of set instructions. | |
31366 | (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p. | |
31367 | (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p | |
31368 | callsite. | |
31369 | * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype. | |
31370 | * store-motion.c (find_moveable_store): Update | |
31371 | can_assign_to_reg_without_clobbers_p callsite. | |
31372 | ||
31373 | 2016-02-24 Richard Biener <rguenther@suse.de> | |
31374 | ||
31375 | PR middle-end/68963 | |
31376 | * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix | |
31377 | bogus check. | |
31378 | (record_nonwrapping_iv): Do not fall back to the low/high bound | |
31379 | for non-constant IV bases if the stmt is not always executed. | |
31380 | ||
31381 | 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
31382 | ||
31383 | * config/arm/arm-cores.def (cortex-a32): New entry. | |
31384 | * config/arm/arm-tables.opt: Regenerate. | |
31385 | * config/arm/arm-tune.md: Regenerate. | |
31386 | * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32. | |
31387 | * config/arm/t-aprofile: Handle mcpu=cortex-a32. | |
31388 | * doc/invoke.texi (ARM Options): Document cortex-a32 as value | |
31389 | for -mcpu and -mtune. | |
31390 | ||
31391 | 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
31392 | ||
31393 | PR target/69875 | |
31394 | * config/arm/arm.h (TARGET_HAVE_LPAE): Define. | |
31395 | * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value. | |
31396 | * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern. | |
31397 | (atomic_loaddi_1): Delete. | |
31398 | (atomic_loaddi): Rewrite expander using the above changes. | |
31399 | ||
31400 | 2016-02-24 Jakub Jelinek <jakub@redhat.com> | |
31401 | ||
31402 | PR c/69918 | |
31403 | * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from | |
31404 | 2 to 3. | |
31405 | ||
31406 | 2016-02-24 Jakub Jelinek <jakub@redhat.com> | |
31407 | Richard Biener <rguenth@suse.de> | |
31408 | ||
31409 | PR middle-end/69909 | |
31410 | * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid | |
31411 | set_mem_attributes if tem is SSA_NAME which got expanded | |
31412 | as a MEM. | |
31413 | ||
31414 | 2016-02-24 Richard Biener <rguenther@suse.de> | |
31415 | ||
31416 | PR tree-optimization/69907 | |
31417 | * tree-vect-stmts.c (vectorizable_load): Check for gaps at the | |
31418 | end of permutations for BB vectorization. | |
31419 | ||
31420 | 2016-02-24 Christian Bruel <christian.bruel@st.com> | |
31421 | ||
31422 | * config/arm/arm-c.c (arm_option_override): Initialize | |
31423 | target_option_current_node. | |
31424 | * config/arm/arm.c (arm_pragma_target_parse): Replace | |
31425 | build_target_option_node call by target_option_current_node. | |
31426 | Set target_option_current_node. | |
31427 | Fix comments. | |
31428 | ||
31429 | 2016-02-23 David Edelsohn <dje.gcc@gmail.com> | |
31430 | ||
31431 | PR target/69810 | |
31432 | * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from | |
31433 | define_insn_and_split to define_insn. | |
31434 | (zero_extendqi<mode>2_dot2): Same. | |
31435 | (extendqi<mode>2_dot): Same. | |
31436 | (extendqi<mode>2_dot2): Same. | |
31437 | ||
31438 | 2016-02-23 Evandro Menezes <e.menezes@samsung.com> | |
31439 | ||
31440 | * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores | |
31441 | and add bypass for AES{D,E} and AESMC pairs. | |
31442 | * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E} | |
31443 | and AESMC pairs. | |
31444 | ||
31445 | 2016-02-23 Evandro Menezes <e.menezes@samsung.com> | |
31446 | ||
31447 | * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton | |
31448 | series for reciprocal square root in Exynos M1. | |
31449 | ||
31450 | 2016-02-23 Martin Sebor <msebor@redhat.com> | |
31451 | ||
31452 | PR c/69759 | |
31453 | * doc/extend.texi (Other Builtins): Document __builtin_alloca and | |
31454 | __builtin_alloca_with_align. | |
31455 | ||
31456 | 2016-02-23 Richard Henderson <rth@redhat.com> | |
31457 | ||
31458 | * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS. | |
31459 | (ix86_register_pragmas): Remove __seg_tls. | |
31460 | * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove. | |
31461 | * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it. | |
31462 | (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove. | |
31463 | (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove. | |
31464 | (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove. | |
31465 | * doc/extend.texi (__seg_tls): Remove item. | |
31466 | ||
31467 | 2016-02-23 Richard Biener <rguenther@suse.de> | |
31468 | ||
31469 | * alloc-pool.h (struct allocation_object): Make id member | |
31470 | conditional on CHECKING_P again. | |
31471 | (get_instance): Adjust. | |
31472 | (base_pool_allocator): Likewise. | |
31473 | ||
31474 | 2016-02-23 Thomas Schwinge <thomas@codesourcery.com> | |
31475 | ||
31476 | * tree-parloops.c (create_parallel_loop, gen_parallel_loop) | |
31477 | (parallelize_loops): In OpenACC kernels mode, set n_threads to | |
31478 | zero. | |
31479 | (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on | |
31480 | flag_openacc. | |
31481 | * tree-ssa-loop.c (gate_oacc_kernels): Likewise. | |
31482 | ||
31483 | 2016-02-23 Richard Biener <rguenther@suse.de> | |
31484 | ||
31485 | * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t. | |
31486 | * bitmap.h (struct bitmap_usage): Likewise. | |
31487 | (bitmap_move): Declare. | |
31488 | * bitmap.c (register_overhead): Take size_t argument. | |
31489 | (bitmap_move): New function. | |
31490 | * df-problems.c (df_rd_transfer_function): Use bitmap_move | |
31491 | to properly account overhead. | |
31492 | * tree.c (free_node): Use tree_size. | |
31493 | ||
31494 | 2016-02-23 Jakub Jelinek <jakub@redhat.com> | |
31495 | ||
31496 | PR c++/69902 | |
31497 | * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING | |
31498 | when inverting comparison. | |
31499 | ||
31500 | PR c/69900 | |
31501 | * common.opt (Wunreachable-code): Add Warning flag. | |
31502 | ||
31503 | 2016-02-23 Mark Wielaard <mjw@redhat.com> | |
31504 | Jakub Jelinek <jakub@redhat.com> | |
31505 | ||
31506 | PR c/69911 | |
31507 | * cgraphunit.c (check_global_declaration): Check main_input_filename | |
31508 | and DECL_SOURCE_FILE are not NULL. | |
31509 | ||
31510 | 2016-02-23 Martin Jambor <mjambor@suse.cz> | |
31511 | ||
31512 | PR tree-optimization/69666 | |
31513 | * tree-sra.c (sra_modify_assign): Do not attempt to create | |
31514 | default_def replacements for unscalarizable regions. | |
31515 | ||
31516 | 2016-02-20 Mark Wielaard <mjw@redhat.com> | |
31517 | ||
31518 | PR c/28901 | |
31519 | * cgraphunit.c (check_global_declaration): Check level of | |
31520 | warn_unused_const_variable and main_input_filename. | |
31521 | * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=. | |
31522 | (-Wunused-variable): For C implies -Wunused-const-variable=1. | |
31523 | (-Wunused-const-variable): Explain levels 1 and 2. | |
31524 | ||
31525 | 2016-02-22 Jakub Jelinek <jakub@redhat.com> | |
31526 | ||
31527 | PR target/69888 | |
31528 | * config/i386/i386.c (decide_alg): Ensure we don't recurse with | |
31529 | identical arguments. Formatting and spelling fixes. | |
31530 | ||
31531 | PR target/69885 | |
31532 | * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must | |
31533 | be specified. | |
31534 | ||
31535 | PR target/69894 | |
31536 | PR target/69895 | |
31537 | * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def | |
31538 | and m68k-devices.def. | |
31539 | * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def. | |
31540 | * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def. | |
31541 | ||
31542 | 2016-02-22 Cesar Philippidis <cesar@codesourcery.com> | |
31543 | ||
31544 | * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode | |
31545 | and HImode registers. | |
31546 | ||
31547 | 2016-02-22 Richard Biener <rguenther@suse.de> | |
31548 | ||
31549 | PR tree-optimization/69882 | |
31550 | * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly | |
31551 | preserve permutations present because of gaps. | |
31552 | (vect_supported_load_permutation_p): Always continue checking | |
31553 | permutations after vect_attempt_slp_rearrange_stmts. | |
31554 | ||
31555 | 2016-02-22 Bin Cheng <bin.cheng@arm.com> | |
31556 | ||
31557 | * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump | |
31558 | min_profitable_estimate, rather than min_profitable_iters. | |
31559 | ||
31560 | 2016-02-22 Jakub Jelinek <jakub@redhat.com> | |
31561 | ||
31562 | PR target/69885 | |
31563 | * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use | |
31564 | SImode for last match_operand. | |
31565 | ||
31566 | 2016-02-22 Martin Liska <mliska@suse.cz> | |
31567 | ||
31568 | * hsa-gen.c (gen_hsa_clrsb): In case of zero value, | |
31569 | return bitsize - 1 as the return value. | |
31570 | ||
31571 | 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org> | |
31572 | ||
31573 | PR target/69806 | |
31574 | PR target/54089 | |
31575 | * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p): | |
31576 | Handle negative shift counts. | |
31577 | * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use | |
31578 | force_reg on the shift constant. | |
31579 | (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d. | |
31580 | (lshrsi3_d): Handle negative shift counts. | |
31581 | ||
31582 | 2016-02-22 Richard Biener <rguenther@suse.de> | |
31583 | Tom de Vries <tom@codesourcery.com> | |
31584 | ||
31585 | * graph.c: Include dumpfile.h. | |
31586 | (print_graph_cfg): Split into three overloads. | |
31587 | * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn. | |
31588 | ||
31589 | 2016-02-22 Tom de Vries <tom@codesourcery.com> | |
31590 | ||
31591 | * gdbhooks.py (class DumpFn): Add and instantiate, adding command | |
31592 | dump-fn. | |
31593 | ||
31594 | 2016-02-22 Richard Biener <rguenther@suse.de> | |
31595 | ||
31596 | PR ipa/37448 | |
31597 | * ipa-inline-transform.c (inline_call): When not updating | |
31598 | overall summaries adjust self size by the growth estimate. | |
31599 | * ipa-inline.c (inline_to_all_callers_1): Add to the callers | |
31600 | hash-set, do not update overall summaries here. Renamed from ... | |
31601 | (inline_to_all_callers): ... this which is now wrapping the | |
31602 | above and performing delayed overall summary update. | |
31603 | (early_inline_small_functions): Delay updating of the overall | |
31604 | summary. | |
31605 | ||
31606 | 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de> | |
31607 | ||
31608 | * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize | |
31609 | variable. | |
31610 | ||
31611 | 2016-02-19 Jakub Jelinek <jakub@redhat.com> | |
31612 | ||
31613 | PR driver/69805 | |
31614 | * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use | |
31615 | :%* in %:gt() argument. | |
31616 | (greater_than_spec_func): Adjust for expecting only numbers, | |
31617 | if there are more than two numbers, compare the last two. | |
31618 | ||
31619 | 2016-02-19 Jonathan Wakely <jwakely@redhat.com> | |
31620 | ||
31621 | * doc/invoke.texi (C++ Dialect Options): Clarify interaction of | |
31622 | -Wnarrowing with -std. | |
31623 | ||
31624 | 2016-02-19 Jakub Jelinek <jakub@redhat.com> | |
31625 | ||
31626 | PR c++/69851 | |
31627 | * expr.c (store_field): Don't use bit-field path if exp is | |
31628 | COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is | |
31629 | different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize | |
31630 | and the assignment can be performed by bitwise copy. Formatting | |
31631 | fix. | |
31632 | ||
31633 | PR middle-end/69838 | |
31634 | * lra.c (lra_process_new_insns): If non-call exceptions are enabled, | |
31635 | call copy_reg_eh_region_note_forward on before and/or after sequences | |
31636 | and remove note from insn if it no longer can throw. | |
31637 | ||
31638 | PR target/69820 | |
31639 | * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode | |
31640 | if TARGET_AVX512BW. | |
31641 | ||
31642 | 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
31643 | ||
31644 | * config/s390/vector.md: Add missing commutative operand markers | |
31645 | to the patterns which qualify for one. | |
31646 | * config/s390/vx-builtins.md: Likewise. | |
31647 | ||
31648 | 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
31649 | ||
31650 | * config/s390/vector.md (VI, VI_QHS): Add single element vector | |
31651 | types to mode iterators. | |
31652 | (vec_double): ... and mode attribute. | |
31653 | * config/s390/vx-builtins.md (non_vec_int): Likewise. | |
31654 | ||
31655 | 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
31656 | ||
31657 | * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"): | |
31658 | Change the predicate of op2 from nonimmediate to general and let | |
31659 | reload fix it if necessary. | |
31660 | ||
31661 | 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
31662 | ||
31663 | * config/s390/vecintrin.h (vec_sub_u128): Define missing macro. | |
31664 | ||
31665 | 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
31666 | ||
31667 | * config/s390/s390.c (s390_expand_vcond): Use the compare operand | |
31668 | mode. | |
31669 | ||
31670 | 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
31671 | ||
31672 | * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype. | |
31673 | * config/s390/s390.c (s390_expand_vec_movstr): New function. | |
31674 | * config/s390/s390.md ("movstr<P:mode>"): Call | |
31675 | s390_expand_vec_movstr. | |
31676 | ||
31677 | 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
31678 | ||
31679 | * config/s390/s390.md: Add missing output modifier for operand 1 | |
31680 | to print it as address properly. | |
31681 | ||
31682 | 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
31683 | ||
31684 | * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*. | |
31685 | * config/s390/2964.md: New file. | |
31686 | * config/s390/s390.c (s390_get_sched_attrmask): Use the right set | |
31687 | of insn grouping attributes depending on the CPU level. | |
31688 | (s390_get_unit_mask): New function. | |
31689 | (s390_sched_score): Remove the OOO from the scheduling macros. | |
31690 | Add loop to calculate a score for the instruction mix. | |
31691 | (s390_sched_reorder): Likewise plus improve debug output. | |
31692 | (s390_sched_variable_issue): Rename macros as above. Calculate | |
31693 | the unit distances after actually scheduling an insn. Improve | |
31694 | debug output. | |
31695 | (s390_sched_init): Clear last_scheduled_unit_distance array. | |
31696 | * config/s390/s390.md: Include 2964.md. | |
31697 | ||
31698 | 2016-02-18 Jakub Jelinek <jakub@redhat.com> | |
31699 | ||
31700 | PR target/69671 | |
31701 | * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1, | |
31702 | *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1, | |
31703 | *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1, | |
31704 | *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1, | |
31705 | *avx512f_<code>v8div16qi2_mask_1): New insns. | |
31706 | ||
31707 | 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com> | |
31708 | ||
31709 | PR target/68404 | |
31710 | * config/rs6000/predicates.md (fusion_gpr_addis): Revert | |
31711 | 2016-02-09 change. | |
31712 | ||
31713 | * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove | |
31714 | earlyclobber from target. Use wF constraint for fused memory | |
31715 | address. | |
31716 | (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise. | |
31717 | ||
31718 | 2016-02-18 Jakub Jelinek <jakub@redhat.com> | |
31719 | Martin Liska <mliska@suse.cz> | |
31720 | ||
31721 | PR sanitizer/69863 | |
31722 | * cfgexpand.c (asan_sanitize_stack_p): New function. | |
31723 | (partition_stack_vars): Use the function. | |
31724 | (expand_stack_vars): Likewise. | |
31725 | (defer_stack_allocation): Likewise. | |
31726 | (expand_used_vars): Likewise. | |
31727 | ||
31728 | 2016-02-18 Richard Biener <rguenther@suse.de> | |
31729 | ||
31730 | PR middle-end/69553 | |
31731 | * fold-const.c (operand_equal_p): Properly compare offsets for | |
31732 | IMAGPART_EXPR and ARRAY_REF. | |
31733 | ||
31734 | 2016-02-18 Nick Clifton <nickc@redhat.com> | |
31735 | ||
31736 | PR target/62254 | |
31737 | PR target/69610 | |
31738 | * config/arm/arm.c (arm_option_override_internal): Disable | |
31739 | interworking if the target does not support thumb instructions. | |
31740 | (arm_reload_in_hi): Handle the case where a register to register | |
31741 | move needs reloading because there is no simple pattern to handle | |
31742 | it. | |
31743 | (arm_reload_out_hi): Likewise. | |
31744 | ||
31745 | 2016-02-18 Richard Biener <rguenther@suse.de> | |
31746 | ||
31747 | PR middle-end/69854 | |
31748 | * match.pd: Don't use fold_binary or fold_unary for folding | |
31749 | constants. | |
31750 | ||
31751 | 2016-02-17 Jakub Jelinek <jakub@redhat.com> | |
31752 | ||
31753 | PR c++/69850 | |
31754 | * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning | |
31755 | on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND. | |
31756 | * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't | |
31757 | warn on gimple_no_warning_p statements. | |
31758 | ||
31759 | 2016-02-17 Jonathan Wakely <jwakely@redhat.com> | |
31760 | ||
31761 | * doc/extend.texi (C++ Attributes): Correct description of | |
31762 | warn_unused type attribute. | |
31763 | ||
31764 | 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
31765 | ||
31766 | * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output | |
31767 | correct instruction. | |
31768 | ||
31769 | 2016-02-17 Richard Biener <rguenther@suse.de> | |
31770 | ||
31771 | PR rtl-optimization/69609 | |
31772 | * bb-reorder.c (struct bbro_basic_block_data): Add priority member. | |
31773 | (find_traces_1_round): When ending a trace update cached priority | |
31774 | of successors. | |
31775 | (bb_to_key): Use cached priority when available. | |
31776 | (copy_bb): Initialize cached priority. | |
31777 | (reorder_basic_blocks_software_trace_cache): Likewise. | |
31778 | ||
31779 | 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
31780 | ||
31781 | PR target/69161 | |
31782 | * config/aarch64/predicates.md (aarch64_comparison_operator_mode): | |
31783 | New predicate. | |
31784 | (aarch64_comparison_operator): Break overly long line into two. | |
31785 | (aarch64_comparison_operation): Likewise. | |
31786 | * config/aarch64/aarch64.md (cstorecc4): Use | |
31787 | aarch64_comparison_operator_mode instead of | |
31788 | aarch64_comparison_operator. | |
31789 | (cstore<mode>4): Likewise. | |
31790 | (aarch64_cstore<mode>): Likewise. | |
31791 | (*cstoresi_insn_uxtw): Likewise. | |
31792 | (cstore<mode>_neg): Likewise. | |
31793 | (*cstoresi_neg_uxtw): Likewise. | |
31794 | ||
31795 | 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
31796 | ||
31797 | PR target/69161 | |
31798 | * config/arm/predicates.md (arm_comparison_operator_mode): | |
31799 | New predicate. | |
31800 | * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode | |
31801 | instead of arm_comparison_operator. | |
31802 | (*mov_negscc): Likewise. | |
31803 | (*mov_notscc): Likewise. | |
31804 | * config/arm/thumb2.md (*thumb2_mov_scc): Likewise. | |
31805 | (*thumb2_mov_negscc): Likewise. | |
31806 | (*thumb2_mov_negscc_strict_it): Likewise. | |
31807 | (*thumb2_mov_notscc): Likewise. | |
31808 | (*thumb2_mov_notscc_strict_it): Likewise. | |
31809 | ||
31810 | 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com> | |
31811 | ||
31812 | * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): | |
31813 | Add missing return. | |
31814 | ||
31815 | 2016-02-17 Eric Botcazou <ebotcazou@adacore.com> | |
31816 | ||
31817 | * config/visium/visium.c (machine_libfunc_index): New enum. | |
31818 | (machine_libfuncs): New structure. | |
31819 | (visium_libfuncs): New static variable. | |
31820 | (TARGET_INIT_LIBFUNCS): Define to... | |
31821 | (visium_init_libfuncs): ...this. New function. | |
31822 | (expand_block_move_4): Use the appropriate libfunc. | |
31823 | (expand_block_move_2): Likewise. | |
31824 | (expand_block_move_1): Likewise. | |
31825 | (expand_block_set_4): Likewise. | |
31826 | (expand_block_set_2): Likewise. | |
31827 | (expand_block_set_1): Likewise. | |
31828 | (visium_trampoline_init): Likewise. | |
31829 | ||
31830 | 2016-02-17 Nick Clifton <nickc@redhat.com> | |
31831 | ||
31832 | * config/msp430/msp430.c (msp430_mcu_data): Sync with data from | |
31833 | TI's devices.csv file as of March 2016. | |
31834 | ||
31835 | 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
31836 | ||
31837 | PR Target/48344 | |
31838 | * opts-global.c (handle_common_deferred_options): Introduce and | |
31839 | initialize two global variables to remember command-line options | |
31840 | specifying a stack-limiting register. | |
31841 | * opts.h: Add extern declarations of the two new global variables. | |
31842 | * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx | |
31843 | variable based on the values of the two new global variables. | |
31844 | ||
31845 | 2016-02-16 Jakub Jelinek <jakub@redhat.com> | |
31846 | ||
31847 | PR c/69835 | |
31848 | * common.opt (Wnonnull-compare): New warning. | |
31849 | * doc/invoke.texi (-Wnonnull): Remove text about comparison | |
31850 | of arguments against NULL. | |
31851 | (-Wnonnull-compare): Document. | |
31852 | * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o. | |
31853 | * tree-pass.h (make_pass_warn_nonnull_compare): Declare. | |
31854 | * passes.def (pass_warn_nonnull_compare): Add. | |
31855 | * gimple-ssa-nonnull-compare.c: New file. | |
31856 | ||
31857 | 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com> | |
31858 | ||
31859 | * config/aarch64/aarch64.c (cortexa57_tunings): Remove | |
31860 | AARCH64_EXTRA_TUNE_RECIP_SQRT. | |
31861 | ||
31862 | 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com> | |
31863 | ||
31864 | * config/aarch64/aarch64.c (use_rsqrt_p): Always use software | |
31865 | reciprocal sqrt for -mlow-precision-recip-sqrt. | |
31866 | ||
31867 | 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com> | |
31868 | Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
31869 | ||
31870 | * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor, | |
31871 | always use lane loads to construct non-constant vectors. | |
31872 | ||
31873 | 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com> | |
31874 | ||
31875 | * config/aarch64/aarch64.md | |
31876 | (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register | |
31877 | constraints for operand 3. | |
31878 | (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise. | |
31879 | ||
31880 | 2016-02-16 Jakub Jelinek <jakub@redhat.com> | |
31881 | Richard Biener <rguenther@suse.de> | |
31882 | ||
31883 | PR tree-optimization/69820 | |
31884 | * tree-vect-patterns.c (type_conversion_p): Return false if | |
31885 | *orig_type is unsigned single precision or boolean. | |
31886 | (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern): | |
31887 | Formatting fix. | |
31888 | ||
31889 | 2016-02-16 Jakub Jelinek <jakub@redhat.com> | |
31890 | ||
31891 | PR rtl-optimization/69764 | |
31892 | PR rtl-optimization/69771 | |
31893 | * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT | |
31894 | op1 is valid for GET_MODE_INNER (mode) and force it into a reg. | |
31895 | ||
31896 | 2016-02-16 Richard Biener <rguenther@suse.de> | |
31897 | ||
31898 | PR tree-optimization/69776 | |
31899 | * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias | |
31900 | sets from caller. | |
31901 | (indirect_refs_may_alias_p): Likewise. | |
31902 | (refs_may_alias_p_1): Pass alias sets as from ao_ref. | |
31903 | * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set | |
31904 | according to tbaa_p. | |
31905 | * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag. | |
31906 | (optimize_stmt): For redundant store discovery do not allow tbaa. | |
31907 | ||
31908 | 2016-02-16 Bernd Schmidt <bschmidt@redhat.com> | |
31909 | ||
31910 | PR tree-optimization/69714 | |
31911 | * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change. | |
31912 | Return NULL if we have irrelevant high bytes on BIG_ENDIAN. | |
31913 | ||
31914 | 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com> | |
31915 | ||
31916 | * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes. | |
31917 | * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP) | |
31918 | (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define. | |
31919 | * config/arc/arc.c (arc_init): Check FPU options. | |
31920 | (get_arc_condition_code): Handle new CC_FPU* modes. | |
31921 | (arc_select_cc_mode): Likewise. | |
31922 | (arc_conditional_register_usage): Allow 64 bit datum into even-odd | |
31923 | register pair only. Allow access for ARCv2 accumulator. | |
31924 | (gen_compare_reg): Whenever we have FPU support use FPU compare | |
31925 | instructions. | |
31926 | (arc_reorg): Don't generate brcc insns when FPU compare | |
31927 | instructions are involved. | |
31928 | * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition. | |
31929 | (TARGET_OPTFPE): Add condition when ARC EM can use optimized | |
31930 | floating point emulation. | |
31931 | (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define. | |
31932 | (REVERSE_CONDITION): Add new CC_FPU* modes. | |
31933 | (TARGET_FP_SP_BASE): Define. | |
31934 | (TARGET_FP_DP_BASE): Likewise. | |
31935 | (TARGET_FP_SP_FUSED): Likewise. | |
31936 | (TARGET_FP_DP_FUSED): Likewise. | |
31937 | (TARGET_FP_SP_CONV): Likewise. | |
31938 | (TARGET_FP_DP_CONV): Likewise. | |
31939 | (TARGET_FP_SP_SQRT): Likewise. | |
31940 | (TARGET_FP_DP_SQRT): Likewise. | |
31941 | (TARGET_FP_DP_AX): Likewise. | |
31942 | * config/arc/arc.md (ARCV2_ACC): New constant. | |
31943 | (type): New fpu type attribute. | |
31944 | (SDF): Conditional iterator. | |
31945 | (cstore<mode>, cbranch<mode>): Change expand condition. | |
31946 | (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands, | |
31947 | handles FPU/FPX cases as well. | |
31948 | * config/arc/arc.opt (mfpu): New option. | |
31949 | * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx): | |
31950 | Renamed. | |
31951 | (adddf3, muldf3, subdf3): Removed. | |
31952 | * config/arc/predicates.md (proper_comparison_operator): Recognize | |
31953 | CC_FPU* modes. | |
31954 | * config/arc/fpu.md: New file. | |
31955 | * doc/invoke.texi (ARC Options): Document mfpu option. | |
31956 | ||
31957 | 2016-02-16 Richard Biener <rguenther@suse.de> | |
31958 | ||
31959 | PR rtl-optimization/69291 | |
31960 | * ifcvt.c (noce_try_store_flag_constants): Re-instantiate | |
31961 | noce_operand_ok check. | |
31962 | ||
31963 | 2016-02-16 Tom de Vries <tom@codesourcery.com> | |
31964 | ||
31965 | PR lto/67709 | |
31966 | * omp-low.c (simd_clone_create): Remove call to | |
31967 | symtab->call_cgraph_insertion_hooks. | |
31968 | ||
31969 | 2016-02-16 Jakub Jelinek <jakub@redhat.com> | |
31970 | ||
31971 | PR tree-optimization/69802 | |
31972 | * tree-ssa-reassoc.c (update_range_test): If op is | |
31973 | SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive | |
31974 | op == 1 test of precision 1 integral op, otherwise handle | |
31975 | that case as op itself. Fix up formatting. | |
31976 | (optimize_range_tests_to_bit_test, optimize_range_tests): Fix | |
31977 | up formatting. | |
31978 | ||
31979 | 2016-02-16 Richard Biener <rguenther@suse.de> | |
31980 | ||
31981 | PR tree-optimization/69586 | |
31982 | * tree-vrp.c (register_edge_assert_for_2): Handle all integral | |
31983 | types for conversion sources. | |
31984 | ||
31985 | 2016-02-16 Richard Biener <rguenther@suse.de> | |
31986 | ||
31987 | PR middle-end/69801 | |
31988 | * fold-const.c (operand_equal_p): For COND_EXPR zero operand | |
31989 | mask OEP_ADDRESS_OF. | |
31990 | ||
31991 | 2016-02-16 Alan Modra <amodra@gmail.com> | |
31992 | ||
31993 | PR target/68973 | |
31994 | * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter. | |
31995 | (p8_mtvsrd_df, p8_mtvsrd_sf): New. | |
31996 | (p8_mtvsrd_1, p8_mtvsrd_2): Delete. | |
31997 | (p8_mtvsrwz): New. | |
31998 | (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete. | |
31999 | (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF. | |
32000 | (p8_fmrgow_<mode>): Likewise. | |
32001 | (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above | |
32002 | changes. | |
32003 | (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint. | |
32004 | (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting | |
32005 | to use movdi_internal64. Remove op0_di. | |
32006 | * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode. | |
32007 | ||
32008 | 2016-02-15 Evandro Menezes <e.menezes@samsung.com> | |
32009 | ||
32010 | Add support for the FCCMP insn types | |
32011 | ||
32012 | * config/aarch64/aarch64.md (fccmp): Change insn type. | |
32013 | (fccmpe): Likewise. | |
32014 | * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types. | |
32015 | * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise. | |
32016 | * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise. | |
32017 | * config/arm/xgene1.md (xgene1_fcmp): Likewise. | |
32018 | * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation. | |
32019 | * config/arm/types.md (fccmps): Add new insn type. | |
32020 | (fccmpd): Likewise. | |
32021 | ||
32022 | 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
32023 | ||
32024 | * alias.c (get_alias_set): Fix a typo in comment. | |
32025 | ||
32026 | 2016-02-15 Richard Biener <rguenther@suse.de> | |
32027 | ||
32028 | PR tree-optimization/69595 | |
32029 | * match.pd: Complete range test simplification to true. | |
32030 | ||
32031 | 2016-02-15 Bernd Schmidt <bschmidt@redhat.com> | |
32032 | ||
32033 | PR rtl-optimization/69648 | |
32034 | * lra-constraints.c (update_ebb_live_info): Don't remove sets of | |
32035 | pic_offset_table_rtx. | |
32036 | ||
32037 | PR rtl-optimization/69752 | |
32038 | * ira.c (update_equiv_regs): When looking for more than a single SET, | |
32039 | also take other side effects into account. | |
32040 | ||
32041 | 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net> | |
32042 | ||
32043 | * config/s390/s390.c (s390_function_profiler): Add a new sequence | |
32044 | for z900+ CPUs in 31-bit mode. | |
32045 | ||
32046 | 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net> | |
32047 | ||
32048 | * common/config/s390/s390-common.c (s390_supports_split_stack): | |
32049 | New function. | |
32050 | (TARGET_SUPPORTS_SPLIT_STACK): New macro. | |
32051 | * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue. | |
32052 | * config/s390/s390.c (struct machine_function): New field | |
32053 | split_stack_varargs_pointer. | |
32054 | (s390_register_info): Mark r12 as clobbered if it'll be used as temp | |
32055 | in s390_emit_prologue. | |
32056 | (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack | |
32057 | vararg pointer. | |
32058 | (morestack_ref): New global. | |
32059 | (SPLIT_STACK_AVAILABLE): New macro. | |
32060 | (s390_expand_split_stack_prologue): New function. | |
32061 | (s390_live_on_entry): New function. | |
32062 | (s390_va_start): Use split-stack vararg pointer if appropriate. | |
32063 | (s390_asm_file_end): Emit the split-stack note sections. | |
32064 | (TARGET_EXTRA_LIVE_ON_ENTRY): New macro. | |
32065 | * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec. | |
32066 | (UNSPECV_SPLIT_STACK_CALL): New unspec. | |
32067 | (UNSPECV_SPLIT_STACK_DATA): New unspec. | |
32068 | (split_stack_prologue): New expand. | |
32069 | (split_stack_space_check): New expand. | |
32070 | (split_stack_data): New insn. | |
32071 | (split_stack_call): New expand. | |
32072 | (split_stack_call_*): New insn. | |
32073 | (split_stack_cond_call): New expand. | |
32074 | (split_stack_cond_call_*): New insn. | |
32075 | ||
32076 | 2016-02-15 Richard Biener <rguenther@suse.de> | |
32077 | ||
32078 | PR tree-optimization/69783 | |
32079 | * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): | |
32080 | Add trivially correct cases. | |
32081 | ||
32082 | 2016-02-15 Tom de Vries <tom@codesourcery.com> | |
32083 | ||
32084 | PR lto/69655 | |
32085 | * lto-cgraph.c (input_offload_tables): Add and handle bool parameter | |
32086 | do_force_output. | |
32087 | * lto-streamer.h (input_offload_tables): Add and handle bool parameter. | |
32088 | ||
32089 | 2016-02-15 Richard Biener <rguenther@suse.de> | |
32090 | ||
32091 | PR tree-optimization/69776 | |
32092 | * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype. | |
32093 | * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to | |
32094 | indicate whether we can use TBAA to disambiguate against stores. | |
32095 | Use alias-set zero if not. | |
32096 | (visit_reference_op_store): Do not use TBAA when looking up | |
32097 | redundant stores. | |
32098 | * tree-ssa-pre.c (compute_avail): Use TBAA here. | |
32099 | (eliminate_dom_walker::before_dom_children): But not when looking | |
32100 | up redundant stores. | |
32101 | ||
32102 | 2016-02-14 John David Anglin <danglin@gcc.gnu.org> | |
32103 | ||
32104 | * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New. | |
32105 | ||
32106 | 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com> | |
32107 | ||
32108 | * config/i386/znver1.md | |
32109 | (znver1_pop, znver1_pop_mem, | |
32110 | znver1_load_imov_double_store, | |
32111 | znver1_load_imov_direct_store, | |
32112 | znver1_load_imov_direct_load, | |
32113 | znver1_load_imov_double_load): Add new. | |
32114 | (znver1_insn, znver1_insn_load): Add icmov type. | |
32115 | (znver1_sseavx_fma, | |
32116 | znver1_sseavx_fma_load, | |
32117 | znver1_avx256_fma, | |
32118 | znver1_avx256_fma_load): Fix pipe usage. | |
32119 | ||
32120 | 2016-02-14 Alan Modra <amodra@gmail.com> | |
32121 | ||
32122 | PR target/68973 | |
32123 | * reload.c (find_reloads_address_1): For pre/post-inc/dec | |
32124 | with an invalid hard reg, reload just the reg not the entire | |
32125 | pre/post-inc/dec address expression. | |
32126 | ||
32127 | 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org> | |
32128 | ||
32129 | PR target/67260 | |
32130 | * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with | |
32131 | fixed R1_REG scratch reg. | |
32132 | (sibcall_value_pcrel_fdpic): Likewise. | |
32133 | ||
32134 | 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org> | |
32135 | ||
32136 | PR target/67636 | |
32137 | PR target/64345 | |
32138 | * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern. | |
32139 | ||
32140 | 2016-02-12 Walter Lee <walt@tilera.com> | |
32141 | ||
32142 | * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD. | |
32143 | * config/tilegx/t-tilegx: Likewise. | |
32144 | ||
32145 | 2016-02-12 David Malcolm <dmalcolm@redhat.com> | |
32146 | ||
32147 | PR other/69554 | |
32148 | * diagnostic-show-locus.c (struct line_span): New struct. | |
32149 | (layout::get_first_line): Delete. | |
32150 | (layout::get_last_line): Delete. | |
32151 | (layout::get_num_line_spans): New member function. | |
32152 | (layout::get_line_span): Likewise. | |
32153 | (layout::print_heading_for_line_span_index_p): Likewise. | |
32154 | (layout::get_expanded_location): Likewise. | |
32155 | (layout::calculate_line_spans): Likewise. | |
32156 | (layout::m_first_line): Delete. | |
32157 | (layout::m_last_line): Delete. | |
32158 | (layout::m_line_spans): New field. | |
32159 | (layout::layout): Update comment. Replace m_first_line and | |
32160 | m_last_line with m_line_spans, replacing their initialization | |
32161 | with a call to calculate_line_spans. | |
32162 | (diagnostic_show_locus): When printing source lines and | |
32163 | annotations, rather than looping over a single span | |
32164 | of lines, instead loop over each line_span within | |
32165 | the layout, with an inner loop over the lines within them. | |
32166 | Call the context's start_span callback when changing line spans. | |
32167 | * diagnostic.c (diagnostic_initialize): Initialize start_span. | |
32168 | (diagnostic_build_prefix): Break out the building of the location | |
32169 | part of the string into... | |
32170 | (diagnostic_get_location_text): ...this new function, rewriting | |
32171 | it from nested ternary expressions to a sequence of "if" | |
32172 | statements. | |
32173 | (default_diagnostic_start_span_fn): New function. | |
32174 | * diagnostic.h (diagnostic_start_span_fn): New typedef. | |
32175 | (diagnostic_context::start_span): New field. | |
32176 | (default_diagnostic_start_span_fn): New prototype. | |
32177 | ||
32178 | 2016-02-12 David Malcolm <dmalcolm@redhat.com> | |
32179 | ||
32180 | PR driver/69779 | |
32181 | * gcc.c (driver::finalize): Fix cleanup of "specs". | |
32182 | ||
32183 | 2016-02-12 David Malcolm <dmalcolm@redhat.com> | |
32184 | ||
32185 | PR driver/69265 | |
32186 | PR driver/69453 | |
32187 | * gcc.c (driver::driver): Initialize m_option_suggestions. | |
32188 | (driver::~driver): Clean up m_option_suggestions. | |
32189 | (suggest_option): Convert to... | |
32190 | (driver::suggest_option): ...this, and split out into | |
32191 | driver::build_option_suggestions and find_closest_string. | |
32192 | (driver::build_option_suggestions): New function, from | |
32193 | first half of suggest_option. Special-case | |
32194 | OPT_fsanitize_ and OPT_fsanitize_recover_, making use of | |
32195 | the sanitizer_opts array. For options of enum types, add the | |
32196 | various enum values to the candidate strings. | |
32197 | (driver::handle_unrecognized_options): Remove "const". | |
32198 | * gcc.h (driver::handle_unrecognized_options): Likewise. | |
32199 | (driver::build_option_suggestions): New decl. | |
32200 | (driver::suggest_option): New decl. | |
32201 | (driver::m_option_suggestions): New field. | |
32202 | * opts-common.c (add_misspelling_candidates): New function. | |
32203 | * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s | |
32204 | and make non-static. | |
32205 | * opts.h (sanitizer_opts): New array decl. | |
32206 | (add_misspelling_candidates): New function decl. | |
32207 | * spellcheck.c (find_closest_string): New function. | |
32208 | * spellcheck.h (find_closest_string): New function decl. | |
32209 | ||
32210 | 2016-02-12 Jakub Jelinek <jakub@redhat.com> | |
32211 | ||
32212 | PR rtl-optimization/69764 | |
32213 | PR rtl-optimization/69771 | |
32214 | * optabs.c (expand_binop_directly): For shift_optab_p, force | |
32215 | convert_modes with VOIDmode if xop1 has VOIDmode. | |
32216 | ||
32217 | 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com> | |
32218 | ||
32219 | PR target/69729 | |
32220 | * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args | |
32221 | to correctly determine instrumentation thunks. | |
32222 | ||
32223 | 2016-02-12 Jakub Jelinek <jakub@redhat.com> | |
32224 | ||
32225 | PR ipa/69241 | |
32226 | * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE | |
32227 | type by reference, force lhs on the call. | |
32228 | ||
32229 | PR ipa/68672 | |
32230 | * ipa-split.c (split_function): Don't compute/use main_part_return_p. | |
32231 | Compute retval and retbnd early in all cases if split_part_return_p | |
32232 | and return_bb is not EXIT. Remove all clobber stmts and reset | |
32233 | all debug stmts that refer to SSA_NAMEs defined in split part, | |
32234 | except if it is retval, in that case replace the old retval with the | |
32235 | lhs of the call to the split part. | |
32236 | ||
32237 | 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org> | |
32238 | ||
32239 | revert: | |
32240 | 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org> | |
32241 | ||
32242 | PR middle-end/66726 | |
32243 | * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt | |
32244 | whose result is used in PHI. | |
32245 | (maybe_optimize_range_tests): Likewise. | |
32246 | (final_range_test_p): Likweise. | |
32247 | ||
32248 | 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org> | |
32249 | ||
32250 | PR middle-end/66726 | |
32251 | * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt | |
32252 | whose result is used in PHI. | |
32253 | (maybe_optimize_range_tests): Likewise. | |
32254 | (final_range_test_p): Likweise. | |
32255 | ||
32256 | 2016-02-12 Jakub Jelinek <jakub@redhat.com> | |
32257 | ||
32258 | * cgraph.c: Spelling fixes - behaviour -> behavior and | |
32259 | neighbour -> neighbor. | |
32260 | * target.def: Likewise. | |
32261 | * sel-sched.c: Likewise. | |
32262 | * config/mips/mips.c: Likewise. | |
32263 | * config/arc/arc.md: Likewise. | |
32264 | * config/arm/cortex-a57.md: Likewise. | |
32265 | * config/arm/arm.c: Likewise. | |
32266 | * config/arm/neon.md: Likewise. | |
32267 | * config/arm/arm-c.c: Likewise. | |
32268 | * config/vms/vms-c.c: Likewise. | |
32269 | * config/s390/s390.c: Likewise. | |
32270 | * config/i386/znver1.md: Likewise. | |
32271 | * config/i386/i386.c: Likewise. | |
32272 | * config/ia64/hpux-unix2003.h: Likewise. | |
32273 | * config/msp430/msp430.md: Likewise. | |
32274 | * config/rx/rx.c: Likewise. | |
32275 | * config/rx/rx.md: Likewise. | |
32276 | * config/aarch64/aarch64-simd.md: Likewise. | |
32277 | * config/aarch64/aarch64.c: Likewise. | |
32278 | * config/nvptx/nvptx.c: Likewise. | |
32279 | * config/bfin/bfin.c: Likewise. | |
32280 | * config/cris/cris.opt: Likewise. | |
32281 | * config/rs6000/rs6000.c: Likewise. | |
32282 | * target.h: Likewise. | |
32283 | * spellcheck.c: Likewise. | |
32284 | * ira-build.c: Likewise. | |
32285 | * tree-inline.c: Likewise. | |
32286 | * builtins.c: Likewise. | |
32287 | * lra-constraints.c: Likewise. | |
32288 | * explow.c: Likewise. | |
32289 | * hwint.h: Likewise. | |
32290 | * targhooks.c: Likewise. | |
32291 | * tree-vect-data-refs.c: Likewise. | |
32292 | * expr.c: Likewise. | |
32293 | * doc/tm.texi: Likewise. | |
32294 | * doc/extend.texi: Likewise. | |
32295 | * doc/install.texi: Likewise. | |
32296 | * doc/md.texi: Likewise. | |
32297 | * tree-ssa-tail-merge.c: Likewise. | |
32298 | * sched-int.h: Likewise. | |
32299 | * match.pd: Likewise. | |
32300 | * sched-ebb.c: Likewise. | |
32301 | * target.def (omit_struct_return_reg): Likewise. | |
32302 | * gimple-ssa-isolate-paths.c: Likewise. | |
32303 | (find_implicit_erroneous_behaviour): Renamed to... | |
32304 | (find_implicit_erroneous_behavior): ... this. | |
32305 | (find_explicit_erroneous_behaviour): Renamed to... | |
32306 | (find_explicit_erroneous_behavior): ... this. | |
32307 | (gimple_ssa_isolate_erroneous_paths): Adjust caller. | |
32308 | ||
32309 | 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org> | |
32310 | ||
32311 | PR rtl-optimization/64682 | |
32312 | PR rtl-optimization/69567 | |
32313 | PR rtl-optimization/69737 | |
32314 | * combine.c (distribute_notes) <REG_DEAD>: If the register is set | |
32315 | in I2 as well, just lose it. | |
32316 | ||
32317 | 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
32318 | ||
32319 | * config/aarch64/aarch64.c (aarch64_last_printed_arch_string): | |
32320 | New variable. | |
32321 | (aarch64_last_printed_tune_string): Likewise. | |
32322 | (aarch64_declare_function_name): Only output .arch assembler | |
32323 | directive if it will be different from the previously output | |
32324 | directive. Same for .tune comment but only if -dA is set. | |
32325 | (aarch64_start_file): New function. | |
32326 | (TARGET_ASM_FILE_START): Define. | |
32327 | ||
32328 | 2016-02-11 David Malcolm <dmalcolm@redhat.com> | |
32329 | ||
32330 | PR plugins/69758 | |
32331 | * Makefile.in (PLUGIN_HEADERS): Add params.list. | |
32332 | ||
32333 | 2016-02-11 Jakub Jelinek <jakub@redhat.com> | |
32334 | ||
32335 | PR target/65313 | |
32336 | * tree-vect-slp.c (vect_schedule_slp_instance): Avoid | |
32337 | -Wmaybe-uninitialized warning. | |
32338 | ||
32339 | 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org> | |
32340 | ||
32341 | PR target/69713 | |
32342 | * config/sh/sh.md (casesi_worker_0): Add T_REG use. | |
32343 | ||
32344 | 2016-02-11 Richard Biener <rguenther@suse.de> | |
32345 | ||
32346 | PR rtl-optimization/69291 | |
32347 | * ifcvt.c (noce_try_store_flag_constants): Do not allow | |
32348 | subexpressions affected by changing the result. | |
32349 | ||
32350 | 2016-02-10 Vladimir Makarov <vmakarov@redhat.com> | |
32351 | ||
32352 | PR target/69148 | |
32353 | * lra-constraints.c (curr_insn_transform): Find in/out operands | |
32354 | for secondary memory moves. Update dups. | |
32355 | ||
32356 | 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com> | |
32357 | ||
32358 | PR tree-optimization/69652 | |
32359 | * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1 | |
32360 | to nested loop, did source re-formatting, skip debug statements, | |
32361 | add check on statement with volatile operand, remove dead scalar | |
32362 | statements. | |
32363 | ||
32364 | 2016-02-10 Jakub Jelinek <jakub@redhat.com> | |
32365 | Patrick Palka <ppalka@gcc.gnu.org> | |
32366 | ||
32367 | PR ipa/69241 | |
32368 | PR c++/69649 | |
32369 | * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn | |
32370 | calls if the return type is TREE_ADDRESSABLE. | |
32371 | * cgraphunit.c (cgraph_node::expand_thunk): Likewise. | |
32372 | * ipa-split.c (split_function): Fix doubled "we" in comment. | |
32373 | Use void return type for the split part even if | |
32374 | !split_point->split_part_set_retval. | |
32375 | ||
32376 | 2016-02-10 Bin Cheng <bin.cheng@arm.com> | |
32377 | ||
32378 | PR tree-optimization/68021 | |
32379 | * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if | |
32380 | when computing the value of biv cand by itself. | |
32381 | ||
32382 | 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com> | |
32383 | ||
32384 | * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion. | |
32385 | (cortexa57_tunings): Likewise. | |
32386 | (cortexa72_tunings): Likewise. | |
32387 | (arch_macro_fusion_pair_p): Add support for AES fusion. | |
32388 | * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry. | |
32389 | * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): | |
32390 | Allow virtual registers before reload so early scheduling works. | |
32391 | * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use | |
32392 | correct latency and pipeline. | |
32393 | (cortex_a57_crypto_complex): Likewise. | |
32394 | (cortex_a57_crypto_xor): Likewise. | |
32395 | (define_bypass): Add AES bypass. | |
32396 | ||
32397 | 2016-02-10 Richard Biener <rguenther@suse.de> | |
32398 | ||
32399 | PR tree-optimization/69726 | |
32400 | * passes.def: Add DCE pass before late uninit. | |
32401 | * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to | |
32402 | really fixup if-conversions job. | |
32403 | ||
32404 | 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com> | |
32405 | ||
32406 | * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion. | |
32407 | (arm_cortex_a57_tune): Likewise. | |
32408 | (aarch_macro_fusion_pair_p): Add support for AES fusion. | |
32409 | * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC. | |
32410 | ||
32411 | 2016-02-10 Eric Botcazou <ebotcazou@adacore.com> | |
32412 | ||
32413 | * timevar.def (TV_PHASE_DBGINFO): Delete. | |
32414 | (TV_PHASE_CHECK_DBGINFO): Likewise. | |
32415 | * varpool.c (varpool_node::assemble_decl): Do not change timevar. | |
32416 | ||
32417 | 2016-02-10 Richard Biener <rguenther@suse.de> | |
32418 | ||
32419 | PR tree-optimization/69719 | |
32420 | * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): | |
32421 | Adjust previous fix by ensuring that dr_a1 is left of dr_a2. | |
32422 | ||
32423 | 2016-02-09 Andrew Pinski <apinski@cavium.com> | |
32424 | ||
32425 | PR tree-opt/69282 | |
32426 | * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if | |
32427 | get_vcond_mask_icode returns false. | |
32428 | ||
32429 | 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com> | |
32430 | ||
32431 | PR target/68404 | |
32432 | * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing | |
32433 | an ADDIS that adds a pointer to a large constant that sets the | |
32434 | upper16 bits with a load operation. | |
32435 | ||
32436 | 2016-02-09 Charles Baylis <charles.baylis@linaro.org> | |
32437 | ||
32438 | PR target/68532 | |
32439 | * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane | |
32440 | order. | |
32441 | * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big | |
32442 | endian. | |
32443 | (vzipq_s16): Likewise. | |
32444 | (vzipq_s32): Likewise. | |
32445 | (vzipq_f32): Likewise. | |
32446 | (vzipq_u8): Likewise. | |
32447 | (vzipq_u16): Likewise. | |
32448 | (vzipq_u32): Likewise. | |
32449 | (vzipq_p8): Likewise. | |
32450 | (vzipq_p16): Likewise. | |
32451 | ||
32452 | 2016-02-09 Charles Baylis <charles.baylis@linaro.org> | |
32453 | ||
32454 | PR target/68532 | |
32455 | * config/arm/arm.c (neon_endian_lane_map): New function. | |
32456 | (neon_vector_pair_endian_lane_map): New function. | |
32457 | (arm_evpc_neon_vuzp): Allow for big endian lane order. | |
32458 | * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big | |
32459 | endian. | |
32460 | (vuzpq_s16): Likewise. | |
32461 | (vuzpq_s32): Likewise. | |
32462 | (vuzpq_f32): Likewise. | |
32463 | (vuzpq_u8): Likewise. | |
32464 | (vuzpq_u16): Likewise. | |
32465 | (vuzpq_u32): Likewise. | |
32466 | (vuzpq_p8): Likewise. | |
32467 | (vuzpq_p16): Likewise. | |
32468 | ||
32469 | 2016-02-11 Alexandre Oliva <aoliva@redhat.com> | |
32470 | ||
32471 | PR target/69634 | |
32472 | * regstat.c (regstat_bb_compute_calls_crossed): Disregard | |
32473 | debug insns. | |
32474 | ||
32475 | 2016-02-09 Uros Bizjak <ubizjak@gmail.com> | |
32476 | ||
32477 | * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to | |
32478 | truncate const_int operand 1 to QImode. | |
32479 | ||
32480 | 2016-02-09 Eric Botcazou <ebotcazou@adacore.com> | |
32481 | ||
32482 | * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument | |
32483 | corresponding to an abnormal edge. | |
32484 | ||
32485 | 2016-02-09 Tom de Vries <tom@codesourcery.com> | |
32486 | ||
32487 | PR tree-optimization/69599 | |
32488 | * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New | |
32489 | function. | |
32490 | (find_func_aliases_for_builtin_call, find_func_clobbers) | |
32491 | (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto | |
32492 | partition. | |
32493 | ||
32494 | 2016-02-09 Richard Biener <rguenther@suse.de> | |
32495 | ||
32496 | PR tree-optimization/69715 | |
32497 | * tree-ssa.c (execute_update_addresses_taken): Mark non-decl | |
32498 | LHS on calls as non-rewritable. | |
32499 | ||
32500 | 2016-02-09 Tom de Vries <tom@codesourcery.com> | |
32501 | ||
32502 | PR lto/69707 | |
32503 | * lto-wrapper.c (append_diag_options): New function. | |
32504 | (compile_offload_image): Call append_diag_options. | |
32505 | ||
32506 | 2016-02-08 Sandra Loosemore <sandra@codesourcery.com> | |
32507 | ||
32508 | PR other/69722 | |
32509 | * doc/extend.texi (Flag Output Operands): Correct sectioning. | |
32510 | Minor copy-edit to fix verb tenses. | |
32511 | ||
32512 | 2016-02-08 Jakub Jelinek <jakub@redhat.com> | |
32513 | ||
32514 | PR tree-optimization/69209 | |
32515 | * ipa-split.c (split_function): If split part is not | |
32516 | returning retval, retval has gimple type but is not | |
32517 | gimple value, force it into a SSA_NAME first. | |
32518 | ||
32519 | 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com> | |
32520 | ||
32521 | * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove | |
32522 | outdated section. | |
32523 | ||
32524 | 2016-02-08 Jason Merrill <jason@redhat.com> | |
32525 | ||
32526 | PR c++/69631 | |
32527 | * convert.c (convert_to_integer_1): Check dofold on truncation | |
32528 | distribution. | |
32529 | (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold) | |
32530 | (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold): | |
32531 | Rename from *_nofold. | |
32532 | * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold) | |
32533 | (convert_to_real_nofold, convert_to_complex_nofold): New inlines. | |
32534 | ||
32535 | 2016-02-08 Bernd Schmidt <bschmidt@redhat.com> | |
32536 | ||
32537 | PR target/60410 | |
32538 | * tree.c (build_common_tree_nodes): Remove short_double argument. | |
32539 | All callers changed. | |
32540 | * tree.h (build_common_tree_nodes): Adjust declaration. | |
32541 | * doc/invoke.texi (-fshort-double): Remove documentation. | |
32542 | * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, | |
32543 | MULTILIB_EXCEPTIONS): Remove -fshort-double variant. | |
32544 | * lto-wrapper.c (merge_and_complain, append_compiler_options) | |
32545 | (append_linker_options): Don't handle OPT_fshort_double. | |
32546 | ||
32547 | PR rtl-optimization/68730 | |
32548 | * lra-remat.c (insn_to_cand_activation): New static variable. | |
32549 | (lra_remat): Allocate and free it. | |
32550 | (create_cand): New arg activation. Initialize a field in | |
32551 | insn_to_cand_activation if it is nonnull. | |
32552 | (create_cands): Pass the activation insn to create_cand when making | |
32553 | a candidate involving an output reload. Reorganize code a little. | |
32554 | (do_remat): Keep track of active status of candidates in a separate | |
32555 | bitmap. | |
32556 | ||
32557 | 2016-02-08 Richard Biener <rguenther@suse.de> | |
32558 | ||
32559 | PR tree-optimization/69719 | |
32560 | * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): | |
32561 | Properly use absolute of the difference of the two offsets to | |
32562 | compare or adjust the segment length. | |
32563 | ||
32564 | 2016-02-08 Richard Biener <rguenther@suse.de> | |
32565 | Jeff Law <law@redhat.com> | |
32566 | ||
32567 | PR target/68273 | |
32568 | * tree-ssanames.c (make_ssa_name_fn): Always use unqualified | |
32569 | types for anonymous SSA names. | |
32570 | ||
32571 | 2016-02-08 Richard Biener <rguenther@suse.de> | |
32572 | ||
32573 | PR rtl-optimization/69274 | |
32574 | * ira.c (ira_setup_alts): Do not change recog_data.operand order. | |
32575 | ||
32576 | 2016-02-08 Jeff Law <law@redhat.com> | |
32577 | ||
32578 | PR tree-optimization/65917 | |
32579 | * tree-ssa-dom.c (record_temporary_equivalences): Record both | |
32580 | equivalences from if (x == y) style conditionals. | |
32581 | (loop_depth_of_name): Remove. | |
32582 | (record_equality): Remove loop depth check. | |
32583 | * tree-ssa-scopedtables.h (const_and_copies): Refine comments. | |
32584 | (const_and_copies::record_const_or_copy_raw): New member function. | |
32585 | * tree-ssa-scopedtables.c | |
32586 | (const_and_copies::record_const_or_copy_raw): New, factored out of | |
32587 | (const_and_copies::record_const_or_copy): Call new member function. | |
32588 | ||
32589 | 2016-02-05 Jeff Law <law@redhat.com> | |
32590 | ||
32591 | PR tree-optimization/68541 | |
32592 | * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h. | |
32593 | (count_stmts_in_block): New function. | |
32594 | (poor_ifcvt_candidate_code): Likewise. | |
32595 | (is_feasible_trace): Add some heuristics to determine when path | |
32596 | splitting is profitable. | |
32597 | (find_block_to_duplicate_for_splitting_paths): Make sure the graph | |
32598 | is a diamond with a single exit. | |
32599 | ||
32600 | 2016-02-05 Martin Sebor <msebor@redhat.com> | |
32601 | ||
32602 | PR c++/69662 | |
32603 | * doc/invoke.texi: Update -Wplacement-new to take an optional | |
32604 | argument. | |
32605 | ||
32606 | 2016-02-06 Richard Henderson <rth@redhat.com> | |
32607 | ||
32608 | PR c/69643 | |
32609 | * tree.c (tree_nop_conversion_p): Do not strip casts into or | |
32610 | out of non-standard address spaces. | |
32611 | ||
32612 | 2016-02-05 Jakub Jelinek <jakub@redhat.com> | |
32613 | ||
32614 | PR rtl-optimization/69691 | |
32615 | * lra-eliminations.c (move_plus_up): Don't add the addend twice. | |
32616 | ||
32617 | 2016-02-05 Pat Haugen <pthaugen@us.ibm.com> | |
32618 | ||
32619 | * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type. | |
32620 | * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise. | |
32621 | (*ieee128_mfvsrd_64bit): Likewise. | |
32622 | (*ieee128_mfvsrd_32bit): Likewise. | |
32623 | ||
32624 | 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com> | |
32625 | ||
32626 | PR target/69369 | |
32627 | Revert r232560: | |
32628 | 2016-01-19 Jan Hubicka <hubicka@ucw.cz> | |
32629 | ||
32630 | * cgraphunit.c (cgraph_node::reset): Clear thunk info and | |
32631 | instrumented_version. | |
32632 | ||
32633 | 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com> | |
32634 | ||
32635 | * doc/invoke.texi (Optimize Options): In table of --param options | |
32636 | rename second occurrence of tracer-min-branch-ratio to | |
32637 | tracer-min-branch-probability, rename | |
32638 | tracer-min-branch-ratio-feedback to | |
32639 | tracer-min-branch-probability-feedback and clarify description, | |
32640 | rename sched-spec-state-edge-prob-cutoff to | |
32641 | sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename | |
32642 | to selsched-insns-to-rename, rename lto-minpartition to | |
32643 | lto-min-partition, delete reorder-blocks-duplicate and | |
32644 | reorder-blocks-duplicate-feedback. | |
32645 | ||
32646 | 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
32647 | ||
32648 | * config/s390/s390.c (s390_register_info_set_ranges): Remove | |
32649 | superfluous loops. | |
32650 | ||
32651 | 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
32652 | ||
32653 | * doc/extend.texi: S/390: Correct some typos. | |
32654 | ||
32655 | 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
32656 | ||
32657 | * config/s390/s390.c (s390_emit_call): Add missing 64 bit check. | |
32658 | ||
32659 | 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
32660 | ||
32661 | PR target/69625 | |
32662 | * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines. | |
32663 | (s390_register_info_gprtofpr): Use new macros above. | |
32664 | (s390_register_info_stdarg_fpr): Adjust max_fpr to better match | |
32665 | its name. | |
32666 | (s390_register_info_stdarg_gpr): Adjust max_gpr to better match | |
32667 | its name. Adjust restore and save gpr ranges. | |
32668 | (s390_register_info_set_ranges): New function. | |
32669 | (s390_register_info): Use new macros above. Call | |
32670 | s390_register_info_set_ranges. | |
32671 | (s390_optimize_register_info): Likewise. | |
32672 | (s390_hard_regno_rename_ok): Use new macros. | |
32673 | (s390_hard_regno_scratch_ok): Likewise. | |
32674 | (s390_emit_epilogue): Likewise. | |
32675 | (s390_can_use_return_insn): Likewise. | |
32676 | (s390_optimize_prologue): Likewise. | |
32677 | * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants. | |
32678 | ||
32679 | 2016-02-05 Jakub Jelinek <jakub@redhat.com> | |
32680 | ||
32681 | PR bootstrap/69677 | |
32682 | * config/i386/i386.c (convert_scalars_to_vector): Readd stack | |
32683 | alignment fixes. | |
32684 | (ix86_option_override_internal): Disable TARGET_STV even for | |
32685 | -m{incoming,preferred}-stack-boundary=3. | |
32686 | ||
32687 | 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
32688 | ||
32689 | * config.gcc: Mark deprecated rtems targets as obsolete. | |
32690 | ||
32691 | 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org> | |
32692 | ||
32693 | PR rtl-optimization/64682 | |
32694 | PR rtl-optimization/69567 | |
32695 | * combine.c (distribute_notes) <REG_DEAD>: Place the death note | |
32696 | before I2 only if the register is both used and set in I2. | |
32697 | ||
32698 | 2016-02-04 DJ Delorie <dj@redhat.com> | |
32699 | ||
32700 | * config/msp430/msp430.c (msp430_start_function): Add function type. | |
32701 | ||
32702 | 2016-02-04 Jakub Jelinek <jakub@redhat.com> | |
32703 | ||
32704 | PR fortran/69368 | |
32705 | * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code. | |
32706 | ||
32707 | 2016-02-04 Uros Bizjak <ubizjak@gmail.com> | |
32708 | ||
32709 | PR rtl-optimization/69577 | |
32710 | Revert: | |
32711 | 2015-10-29 Richard Henderson <rth@redhat.com> | |
32712 | ||
32713 | PR target/68124 | |
32714 | PR rtl-opt/67609 | |
32715 | * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten | |
32716 | sse check to the exact conditions of PR 67609. | |
32717 | ||
32718 | 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com> | |
32719 | ||
32720 | PR target/69667 | |
32721 | * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint | |
32722 | instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are | |
32723 | not allowed into the traditional Altivec registers. | |
32724 | (movtd_64bit_nodm): Likewise. | |
32725 | (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise. | |
32726 | ||
32727 | 2016-02-04 David Malcolm <dmalcolm@redhat.com> | |
32728 | ||
32729 | * config/aarch64/cortex-a57-fma-steering.c | |
32730 | (aarch64_register_fma_steering): Remove "static" from arguments | |
32731 | to register_pass. | |
32732 | ||
32733 | 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com> | |
32734 | ||
32735 | PR target/69619 | |
32736 | * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1 | |
32737 | twice when complex. | |
32738 | ||
32739 | 2016-02-04 Mike Frysinger <vapier@gentoo.org> | |
32740 | ||
32741 | * doc/invoke.texi: Delete -mno-fma4. | |
32742 | ||
32743 | 2016-02-04 Richard Sandiford <richard.sandiford@arm.com> | |
32744 | ||
32745 | PR rtl-optimization/69577 | |
32746 | * reginfo.c (record_subregs_of_mode): Add a partial_def parameter. | |
32747 | (find_subregs_of_mode): Update accordingly. Iterate over partial | |
32748 | definitions. | |
32749 | ||
32750 | 2016-02-04 Alan Lawrence <alan.lawrence@arm.com> | |
32751 | ||
32752 | * config/arm/arm-protos.h (neon_reinterpret): Remove. | |
32753 | * config/arm/arm.c (neon_reinterpret): Remove. | |
32754 | * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi, | |
32755 | vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi, | |
32756 | vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di, | |
32757 | vreinterpretti): Remove. | |
32758 | * config/arm/neon.md (neon_vreinterpretv8qi<mode>, | |
32759 | neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>, | |
32760 | neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>, | |
32761 | neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>, | |
32762 | neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>, | |
32763 | neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove. | |
32764 | * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32, | |
32765 | vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64, | |
32766 | vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32, | |
32767 | vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32, | |
32768 | vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64, | |
32769 | vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8, | |
32770 | vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8, | |
32771 | vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8, | |
32772 | vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64, | |
32773 | vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16, | |
32774 | vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16, | |
32775 | vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16, | |
32776 | vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64, | |
32777 | vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32, | |
32778 | vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32, | |
32779 | vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32, | |
32780 | vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8, | |
32781 | vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8, | |
32782 | vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8, | |
32783 | vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64, | |
32784 | vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16, | |
32785 | vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16, | |
32786 | vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16, | |
32787 | vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64, | |
32788 | vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32, | |
32789 | vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32, | |
32790 | vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32, | |
32791 | vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64, | |
32792 | vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8, | |
32793 | vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8, | |
32794 | vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64, | |
32795 | vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8, | |
32796 | vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16, | |
32797 | vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16, | |
32798 | vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64, | |
32799 | vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16, | |
32800 | vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32, | |
32801 | vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32, | |
32802 | vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64, | |
32803 | vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32, | |
32804 | vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8, | |
32805 | vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64, | |
32806 | vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8, | |
32807 | vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8, | |
32808 | vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32, | |
32809 | vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64, | |
32810 | vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16, | |
32811 | vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16, | |
32812 | vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32, | |
32813 | vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64, | |
32814 | vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16, | |
32815 | vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16, | |
32816 | vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16, | |
32817 | vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64, | |
32818 | vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16, | |
32819 | vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16, | |
32820 | vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16, | |
32821 | vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64, | |
32822 | vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16, | |
32823 | vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16, | |
32824 | vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16, | |
32825 | vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64, | |
32826 | vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16, | |
32827 | vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16, | |
32828 | vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16, | |
32829 | vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128, | |
32830 | vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16, | |
32831 | vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16, | |
32832 | vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16, | |
32833 | vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128, | |
32834 | vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16, | |
32835 | vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16, | |
32836 | vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16, | |
32837 | vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128, | |
32838 | vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16, | |
32839 | vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16, | |
32840 | vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16, | |
32841 | vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128, | |
32842 | vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8, | |
32843 | vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16, | |
32844 | vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16, | |
32845 | vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64, | |
32846 | vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64, | |
32847 | vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8, | |
32848 | vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8, | |
32849 | vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64, | |
32850 | vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64, | |
32851 | vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32, | |
32852 | vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8, | |
32853 | vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64, | |
32854 | vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64, | |
32855 | vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32, | |
32856 | vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8, | |
32857 | vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64, | |
32858 | vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64, | |
32859 | vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32, | |
32860 | vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts. | |
32861 | ||
32862 | 2016-02-04 Martin Liska <mliska@suse.cz> | |
32863 | ||
32864 | PR sanitizer/69276 | |
32865 | * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls | |
32866 | that are gimple_store_p. | |
32867 | (maybe_instrument_call): Likewise. | |
32868 | ||
32869 | 2016-02-04 Bin Cheng <bin.cheng@arm.com> | |
32870 | ||
32871 | * config/aarch64/aarch64.c (aarch64_legitimize_address): Force | |
32872 | register scaling out of memory reference and comment why. | |
32873 | ||
32874 | 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
32875 | ||
32876 | PR target/65932 | |
32877 | PR target/67714 | |
32878 | * cse.c (cse_insn): Pass NULL to fold_rtx when initially | |
32879 | folding the source of a SET. | |
32880 | ||
32881 | 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
32882 | ||
32883 | PR target/65932 | |
32884 | PR target/67714 | |
32885 | * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract | |
32886 | the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx. | |
32887 | ||
32888 | 2016-02-04 Jim Wilson <jim.wilson@linaro.org> | |
32889 | ||
32890 | PR target/65932 | |
32891 | PR target/67714 | |
32892 | * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and | |
32893 | HImode. | |
32894 | ||
32895 | 2016-02-04 Christian Bruel <christian.bruel@st.com> | |
32896 | ||
32897 | * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo. | |
32898 | * config/arm/arm.c (arm_set_current_function): Likewise. | |
32899 | ||
32900 | 2016-02-04 Jakub Jelinek <jakub@redhat.com> | |
32901 | Ilya Enkovich <enkovich.gnu@gmail.com> | |
32902 | H.J. Lu <hongjiu.lu@intel.com> | |
32903 | ||
32904 | PR target/69454 | |
32905 | * config/i386/i386.c (convert_scalars_to_vector): Remove | |
32906 | stack alignment fixes. | |
32907 | (ix86_option_override_internal): Disable TARGET_STV if stack | |
32908 | might not be aligned enough. | |
32909 | (ix86_minimum_alignment): Assert that TARGET_STV is false. | |
32910 | ||
32911 | 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com> | |
32912 | ||
32913 | * config/i386/x86-tune.def: Disable default prefetching | |
32914 | for -march=znver1. | |
32915 | ||
32916 | 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com> | |
32917 | Vladimir Makarov <vmakarov@redhat.com> | |
32918 | ||
32919 | PR target/69461 | |
32920 | * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko | |
32921 | in validating fused toc addresses. | |
32922 | ||
32923 | 2016-02-03 Jakub Jelinek <jakub@redhat.com> | |
32924 | ||
32925 | PR c/69627 | |
32926 | * diagnostic-show-locus.c (layout::get_state_at_point): Don't read | |
32927 | range->m_caret fields if range->m_show_caret_p is false. | |
32928 | ||
32929 | PR target/69644 | |
32930 | * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): | |
32931 | Force oldval into register if it does not satisfy reg_or_short_operand | |
32932 | predicate. Fix up formatting. | |
32933 | ||
32934 | 2016-02-03 Vladimir Makarov <vmakarov@redhat.com> | |
32935 | Alexandre Oliva <aoliva@redhat.com> | |
32936 | ||
32937 | PR target/69461 | |
32938 | * lra-constraints.c (simplify_operand_subreg): Check additionally | |
32939 | address validity after potential reloading. | |
32940 | (process_address_1): Check insns validity. In case of failure do | |
32941 | nothing. | |
32942 | ||
32943 | 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com> | |
32944 | ||
32945 | PR target/69118 | |
32946 | * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"): | |
32947 | Fix target. | |
32948 | ||
32949 | 2016-02-02 Jakub Jelinek <jakub@redhat.com> | |
32950 | ||
32951 | * wide-int.cc (canonize_uhwi): New function. | |
32952 | (wi::divmod_internal): Use it. | |
32953 | ||
32954 | 2016-02-02 James Norris <jnorris@codesourcery.com> | |
32955 | ||
32956 | * gimplify.c (omp_notice_variable): Add usage check. | |
32957 | ||
32958 | 2016-02-02 Alexander Monakov <amonakov@ispras.ru> | |
32959 | ||
32960 | * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU | |
32961 | like LE, GE, LT, GT when emitting relational operator. | |
32962 | ||
32963 | 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com> | |
32964 | ||
32965 | * ira-costs.c (find_costs_and_classes): Add extra argument. | |
32966 | * target.def (ira_change_pseudo_allocno_class): Add parameter. | |
32967 | * targhooks.h (ira_change_pseudo_allocno_class): Likewise. | |
32968 | * targhooks.c (ira_change_pseudo_allocno_class): Likewise. | |
32969 | * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class) | |
32970 | Add best_class parameter, and return it if not ALL_REGS. | |
32971 | * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): | |
32972 | Add parameter. | |
32973 | * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): | |
32974 | Update target hook. | |
32975 | ||
32976 | 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com> | |
32977 | ||
32978 | * config/aarch64/aarch64.c | |
32979 | (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define. | |
32980 | (aarch64_ira_change_pseudo_allocno_class): New function. | |
32981 | ||
32982 | 2016-02-02 Uros Bizjak <ubizjak@gmail.com> | |
32983 | ||
32984 | PR target/67032 | |
32985 | * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves. | |
32986 | ||
32987 | 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> | |
32988 | ||
32989 | * config/avr/avr.c (avr_option_override): Set | |
32990 | PARAM_ALLOW_STORE_DATA_RACES to 1. | |
32991 | ||
32992 | 2016-02-02 Richard Biener <rguenther@suse.de> | |
32993 | ||
32994 | PR tree-optimization/69595 | |
32995 | * match.pd: Add range test simplifications to true/false. | |
32996 | ||
32997 | 2016-02-02 Thomas Schwinge <thomas@codesourcery.com> | |
32998 | ||
32999 | * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove. | |
33000 | * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START | |
33001 | instead. | |
33002 | ||
33003 | 2016-02-02 Richard Biener <rguenther@suse.de> | |
33004 | ||
33005 | PR tree-optimization/69606 | |
33006 | * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive | |
33007 | info on the result before moving a stmt. | |
33008 | ||
33009 | 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com> | |
33010 | ||
33011 | PR middle-end/68542 | |
33012 | * config/i386/i386.c (ix86_expand_branch): Add support for conditional | |
33013 | branch with vector comparison. | |
33014 | * config/i386/sse.md (VI48_AVX): New mode iterator. | |
33015 | (define_expand "cbranch<mode>4): Add support for conditional branch | |
33016 | with vector comparison. | |
33017 | * tree-vect-loop.c (optimize_mask_stores): New function. | |
33018 | * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize | |
33019 | has_mask_store field of vect_info. | |
33020 | * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for | |
33021 | vectorized loops having masked stores after vec_info destroy. | |
33022 | * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and | |
33023 | correspondent macros. | |
33024 | (optimize_mask_stores): Add prototype. | |
33025 | ||
33026 | 2016-02-02 Alan Modra <amodra@gmail.com> | |
33027 | ||
33028 | PR target/69548 | |
33029 | * config/rs6000/predicates.md (quad_int_reg_operand): Don't | |
33030 | allow subregs. | |
33031 | ||
33032 | 2016-02-02 Alan Modra <amodra@gmail.com> | |
33033 | ||
33034 | PR target/68662 | |
33035 | * config/rs6000/rs6000.c (need_toc_init): New var, set it | |
33036 | whenever toc_label_name used. | |
33037 | (rs6000_file_start): Don't set up toc section here, | |
33038 | (rs6000_output_function_epilogue): do so here instead, | |
33039 | (rs6000_xcoff_file_start): and here. | |
33040 | * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init. | |
33041 | (load_toc_aix_di): Likewise. | |
33042 | ||
33043 | 2016-02-01 Jakub Jelinek <jakub@redhat.com> | |
33044 | ||
33045 | PR rtl-optimization/69592 | |
33046 | * rtlanal.c (nonzero_bits_binary_arith_p): New inline function. | |
33047 | (cached_nonzero_bits): Use it instead of ARITHMETIC_P. | |
33048 | (num_sign_bit_copies_binary_arith_p): New inline function. | |
33049 | (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P. | |
33050 | ||
33051 | 2016-02-01 Jeff Law <law@redhat.com> | |
33052 | ||
33053 | PR tree-optimization/69580 | |
33054 | * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param. | |
33055 | * tree-ssa-threadbackward.c | |
33056 | (fsm_find_control_statement_thread_paths): Do not try to walk | |
33057 | through large PHI nodes. | |
33058 | ||
33059 | 2016-02-01 Jakub Jelinek <jakub@redhat.com> | |
33060 | ||
33061 | * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false | |
33062 | when count is incremented above limit, don't analyze further | |
33063 | insns afterwards. | |
33064 | ||
33065 | * omp-low.c (oacc_parse_default_dims): Avoid | |
33066 | -Wsign-compare warning, make sure value fits into int | |
33067 | rather than just unsigned int. | |
33068 | ||
33069 | 2016-02-01 Bin Cheng <bin.cheng@arm.com> | |
33070 | ||
33071 | PR tree-optimization/67921 | |
33072 | * fold-const.c (split_tree): New parameters. Convert pointer | |
33073 | type variable part to proper type before negating. | |
33074 | (fold_binary_loc): Pass new arguments to split_tree. | |
33075 | ||
33076 | 2016-02-01 Nathan Sidwell <nathan@codesourcery.com> | |
33077 | ||
33078 | * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New. | |
33079 | (nvptx_goacc_validate_dims): Extend to handle global defaults. | |
33080 | * target.def (OACC_VALIDATE_DIMS): Extend documentation. | |
33081 | * doc/tm.texti: Rebuilt. | |
33082 | * doc/invoke.texi (fopenacc-dim): Document. | |
33083 | * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case. | |
33084 | (append_compiler_options): Likewise. | |
33085 | * omp-low.c (oacc_default_dims, oacc_min_dims): New. | |
33086 | (oacc_parse_default_dims): New. | |
33087 | (oacc_validate_dims): Add USED arg. Select non-unity default when | |
33088 | possible. | |
33089 | (oacc_loop_fixed_partitions): Return mask of used partitions. | |
33090 | (oacc_loop_auto_partitions): Emit dump info. | |
33091 | (oacc_loop_partition): Return mask of used partitions. | |
33092 | (execute_oacc_device_lower): Parse default dimension arg. Adjust | |
33093 | loop partitioning and validation calls. | |
33094 | ||
33095 | 2016-02-01 Richard Biener <rguenther@suse.de> | |
33096 | ||
33097 | PR middle-end/69556 | |
33098 | * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use. | |
33099 | ||
33100 | 2016-02-01 Richard Biener <rguenther@suse.de> | |
33101 | ||
33102 | PR tree-optimization/69574 | |
33103 | * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead | |
33104 | of asserting return chrec_dont_know. | |
33105 | ||
33106 | 2016-02-01 Martin Liska <mliska@suse.cz> | |
33107 | ||
33108 | * mem-stats-traits.h: Add copyright header. | |
33109 | * mem-stats.h: Likewise. | |
33110 | ||
33111 | 2016-02-01 Richard Biener <rguenther@suse.de> | |
33112 | ||
33113 | PR tree-optimization/69579 | |
33114 | * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): | |
33115 | Do not propagate through abnormal PHI results. | |
33116 | ||
33117 | 2016-02-01 Eric Botcazou <ebotcazou@adacore.com> | |
33118 | ||
33119 | * postreload.c (reload_cse_simplify): Remove dead code. | |
33120 | ||
33121 | 2016-02-01 Jakub Jelinek <jakub@redhat.com> | |
33122 | ||
33123 | PR rtl-optimization/69570 | |
33124 | * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only | |
33125 | if there is more than one set, not if there is a single set. | |
33126 | ||
33127 | 2016-02-01 Richard Henderson <rth@redhat.com> | |
33128 | ||
33129 | PR rtl-opt/69535 | |
33130 | * combine.c (make_compound_operation): When looking through a | |
33131 | subreg, make sure to re-extend to the width of the outer mode. | |
33132 | ||
33133 | 2016-01-30 Jakub Jelinek <jakub@redhat.com> | |
33134 | ||
33135 | PR tree-optimization/69546 | |
33136 | * wide-int.cc (wi::divmod_internal): For unsigned division | |
33137 | where both operands fit into uhwi, if o1 is 1 and o0 has | |
33138 | msb set, if divident_prec is larger than bits per hwi, | |
33139 | clear another quotient word and return 2 instead of 1. | |
33140 | Similarly for remainder with msb in HWI set, if dividend_prec | |
33141 | is larger than bits per hwi. | |
33142 | ||
33143 | 2016-01-29 Martin Jambor <mjambor@suse.cz> | |
33144 | ||
33145 | * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK. | |
33146 | Use short lowercase names. | |
33147 | (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support | |
33148 | MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with | |
33149 | acq_rel one. Protect warning agains segfaults if | |
33150 | get_memory_order_name returns NULL. | |
33151 | (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST | |
33152 | with release semantics. Do not warn if get_memory_order already did. | |
33153 | (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire | |
33154 | semantics. Fix check for relaxed or acquire semantics. Do not warn | |
33155 | if get_memory_order already did. | |
33156 | ||
33157 | 2016-01-29 Sebastian Pop <s.pop@samsung.com> | |
33158 | ||
33159 | * doc/install.texi: Document that isl-0.16 is supported. | |
33160 | ||
33161 | 2016-01-29 Vladimir Makarov <vmakarov@redhat.com> | |
33162 | ||
33163 | PR target/69299 | |
33164 | * config/i386/constraints.md (Bm): Describe as special memory | |
33165 | constraint. | |
33166 | * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it. | |
33167 | * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT. | |
33168 | * genpreds.c (struct constraint_data): Add is_special_memory. | |
33169 | (have_special_memory_constraints, special_memory_start): New | |
33170 | static vars. | |
33171 | (special_memory_end): Ditto. | |
33172 | (add_constraint): Add new arg is_special_memory. Add code to | |
33173 | process its true value. Update have_special_memory_constraints. | |
33174 | (process_define_constraint): Pass the new arg. | |
33175 | (process_define_register_constraint): Ditto. | |
33176 | (choose_enum_order): Process special memory. | |
33177 | (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and | |
33178 | function insn_extra_special_memory_constraint. | |
33179 | (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT. | |
33180 | * gensupport.c (process_rtx): Process | |
33181 | DEFINE_SPECIAL_MEMORY_CONSTRAINT. | |
33182 | * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY. | |
33183 | * ira-lives.c (single_reg_class): Use | |
33184 | insn_extra_special_memory_constraint. | |
33185 | * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY. | |
33186 | * lra-constraints.c (process_alt_operands): Ditto. | |
33187 | (curr_insn_transform): Use insn_extra_special_memory_constraint. | |
33188 | * recog.c (asm_operand_ok, preprocess_constraints): Process | |
33189 | CT_SPECIAL_MEMORY. | |
33190 | * reload.c (find_reloads): Ditto. | |
33191 | * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New. | |
33192 | * stmt.c (parse_input_constraint): Use | |
33193 | insn_extra_special_memory_constraint. | |
33194 | ||
33195 | 2016-01-29 H.J. Lu <hongjiu.lu@intel.com> | |
33196 | ||
33197 | PR target/69530 | |
33198 | * lra-splill.c (lra_final_code_change): Revert r229087 by | |
33199 | removing all sub-registers. | |
33200 | ||
33201 | 2016-01-29 Steve Ellcey <sellcey@imgtec.com> | |
33202 | ||
33203 | PR target/65604 | |
33204 | * config/mips/mips.c (mips_output_division): Check flag_delayed_branch. | |
33205 | ||
33206 | 2016-01-29 Jakub Jelinek <jakub@redhat.com> | |
33207 | ||
33208 | PR target/69551 | |
33209 | * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For | |
33210 | SSE1, copy target into the temporary reg first before recursing | |
33211 | on it. | |
33212 | ||
33213 | 2016-01-29 H.J. Lu <hongjiu.lu@intel.com> | |
33214 | ||
33215 | * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm | |
33216 | with vm. | |
33217 | ||
33218 | 2016-01-29 Jonathan Wakely <jwakely@redhat.com> | |
33219 | ||
33220 | * ginclude/stdarg.h: Test __cplusplus instead of | |
33221 | __GXX_EXPERIMENTAL_CXX0X__. | |
33222 | ||
33223 | 2016-01-29 Richard Biener <rguenther@suse.de> | |
33224 | ||
33225 | PR tree-optimization/69547 | |
33226 | * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): | |
33227 | Do not mark clobbers necessary. | |
33228 | (mark_all_reaching_defs_necessary_1): Likewise. | |
33229 | ||
33230 | 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
33231 | ||
33232 | * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format | |
33233 | declaration name with %qs and print it in both error messages. | |
33234 | Also fix indentation. | |
33235 | ||
33236 | 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
33237 | ||
33238 | PR other/69006 | |
33239 | * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove | |
33240 | trailing blank line from error message. | |
33241 | ||
33242 | 2016-01-29 Jonathan Wakely <jwakely@redhat.com> | |
33243 | ||
33244 | PR c++/69462 | |
33245 | * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG | |
33246 | for C++-11. | |
33247 | ||
33248 | 2016-01-29 Richard Biener <rguenther@suse.de> | |
33249 | ||
33250 | PR middle-end/69537 | |
33251 | * match.pd: Allow all integral types when simplifying a | |
33252 | widening or sign-changing conversion. | |
33253 | ||
33254 | 2016-01-28 Sebastian Pop <s.pop@samsung.com> | |
33255 | ||
33256 | * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert | |
33257 | back to setting codegen_error to fail codegen. | |
33258 | ||
33259 | 2016-01-28 Uros Bizjak <ubizjak@gmail.com> | |
33260 | ||
33261 | PR target/69459 | |
33262 | * config/i386/constraints.md (C): Only accept constant zero operand. | |
33263 | (BC): New constraint. | |
33264 | * config/i386/sse.md (*mov<mode>_internal): Use BC constraint | |
33265 | instead of C constraint. | |
33266 | * doc/md.texi (Machine Constraints): Update description | |
33267 | of C constraint. | |
33268 | ||
33269 | 2016-01-28 Steve Ellcey <sellcey@imgtec.com> | |
33270 | ||
33271 | PR target/68400 | |
33272 | * config/mips/mips.c (and_operands_ok): Add MIPS16 check. | |
33273 | ||
33274 | 2016-01-28 Jakub Jelinek <jakub@redhat.com> | |
33275 | ||
33276 | PR middle-end/69542 | |
33277 | * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider | |
33278 | non-debug insns. | |
33279 | ||
33280 | 2016-01-28 Pat Haugen <pthaugen@us.ibm.com> | |
33281 | ||
33282 | * config/rs6000/rs6000.c (output_cbranch): Don't statically predict | |
33283 | branches if using guessed profile. | |
33284 | ||
33285 | 2016-01-28 H.J. Lu <hongjiu.lu@intel.com> | |
33286 | ||
33287 | * graphite-optimize-isl.c (optimize_isl): Fix dump. | |
33288 | ||
33289 | 2016-01-28 Richard Henderson <rth@redhat.com> | |
33290 | ||
33291 | PR target/69305 | |
33292 | * config/aarch64/aarch64-modes.def (CC_Cmode): New | |
33293 | * config/aarch64/aarch64-protos.h: Update. | |
33294 | * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New. | |
33295 | (aarch64_select_cc_mode): Add check for use of CC_Cmode. | |
33296 | (aarch64_get_condition_code_1): Handle CC_Cmode. | |
33297 | * config/aarch64/aarch64.md (addti3): Use adddi3_compareC. | |
33298 | (*add<mode>3_compareC_cconly_imm): New. | |
33299 | (*add<mode>3_compareC_cconly): New. | |
33300 | (*add<mode>3_compareC_imm): New. | |
33301 | (add<mode>3_compareC): New. | |
33302 | (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand | |
33303 | to be first. Use aarch64_carry_operation. | |
33304 | (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove. | |
33305 | (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove. | |
33306 | (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove. | |
33307 | (subti3): Use subdi3_compare1. | |
33308 | (*sub<mode>3_compare0): Rename from sub<mode>3_compare0. | |
33309 | (sub<mode>3_compare1): New. | |
33310 | (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New. | |
33311 | (*sub<mode>3_carryin): Use aarch64_borrow_operation. | |
33312 | (*subsi3_carryin_uxtw): Likewise. | |
33313 | (*ngc<mode>, *ngcsi_uxtw): Likewise. | |
33314 | (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New. | |
33315 | * config/aarch64/iterators.md (DWI): New. | |
33316 | * config/aarch64/predicates.md (aarch64_carry_operation): New. | |
33317 | (aarch64_borrow_operation): New. | |
33318 | ||
33319 | 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com> | |
33320 | ||
33321 | * graphite-optimize-isl.c (optimize_isl): Print a different debug | |
33322 | message when isl does not return a valid schedule. | |
33323 | ||
33324 | 2016-01-28 Sebastian Pop <s.pop@samsung.com> | |
33325 | ||
33326 | * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple): | |
33327 | Remove comments from class declarations: they are already in the code | |
33328 | close by the defs. | |
33329 | ||
33330 | 2016-01-28 Sebastian Pop <s.pop@samsung.com> | |
33331 | ||
33332 | * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call | |
33333 | codegen_error_p. | |
33334 | (ternary_op_to_tree): Same. | |
33335 | (unary_op_to_tree): Same. | |
33336 | (nary_op_to_tree): Same. | |
33337 | (gcc_expression_from_isl_expr_op): Same. | |
33338 | (gcc_expression_from_isl_expression): Same. | |
33339 | (graphite_create_new_loop): Same. | |
33340 | (graphite_create_new_loop_guard): Same. | |
33341 | (build_iv_mapping): Same. | |
33342 | (graphite_create_new_guard): Same. | |
33343 | (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same. | |
33344 | (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same. | |
33345 | ||
33346 | 2016-01-28 Sebastian Pop <s.pop@samsung.com> | |
33347 | ||
33348 | * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert | |
33349 | instead of setting codegen_error to fail codegen. | |
33350 | ||
33351 | 2016-01-28 Jason Merrill <jason@redhat.com> | |
33352 | ||
33353 | * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED. | |
33354 | ||
33355 | 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com> | |
33356 | ||
33357 | * config/aarch64/aarch64.c (aarch64_if_then_else_costs): | |
33358 | Remove CONST_INT_P check in CCMP cost calculation. | |
33359 | ||
33360 | 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com> | |
33361 | ||
33362 | * config/aarch64/aarch64.c (generic_vector_cost): | |
33363 | Set vec_permute_cost. | |
33364 | (cortexa57_vector_cost): Likewise. | |
33365 | (exynosm1_vector_cost): Likewise. | |
33366 | (xgene1_vector_cost): Likewise. | |
33367 | (aarch64_builtin_vectorization_cost): Use vec_permute_cost. | |
33368 | * config/aarch64/aarch64-protos.h (cpu_vector_cost): | |
33369 | Add vec_permute_cost entry. | |
33370 | ||
33371 | 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com> | |
33372 | ||
33373 | * config/aarch64/aarch64.md (ccmp<mode>): Disassemble | |
33374 | immediate as %1. | |
33375 | (add<mode>3_compare0): Likewise. | |
33376 | (addsi3_compare0_uxtw): Likewise. | |
33377 | (add<mode>3nr_compare0): Likewise. | |
33378 | (compare_neg<mode>): Likewise. | |
33379 | (<optab><mode>3): Likewise. | |
33380 | ||
33381 | 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com> | |
33382 | ||
33383 | * tree-vect-stmts.c (vectorizable_comparison): Add | |
33384 | NULL check for vectype. | |
33385 | ||
33386 | 2016-01-28 Richard Biener <rguenther@suse.de> | |
33387 | ||
33388 | PR tree-optimization/69466 | |
33389 | * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges): | |
33390 | Account for PHIs we couldn't duplicate. | |
33391 | ||
33392 | 2016-01-28 Martin Liska <mliska@suse.cz> | |
33393 | ||
33394 | PR pch/68758 | |
33395 | * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro | |
33396 | instead of ENABLE_VALGRIND_CHECKING. | |
33397 | ||
33398 | 2016-01-27 Richard Henderson <rth@redhat.com> | |
33399 | ||
33400 | PR rtl-opt/69447 | |
33401 | * lra-remat.c (subreg_regs): New. | |
33402 | (dump_candidates_and_remat_bb_data): Dump it. | |
33403 | (operand_to_remat): Reject if operand in subreg_regs. | |
33404 | (set_bb_regs): Collect subreg_regs. | |
33405 | (lra_remat): Init and free subreg_regs. Compute | |
33406 | calculate_local_reg_remat_bb_data before create_cands. | |
33407 | ||
33408 | 2016-01-27 H.J. Lu <hongjiu.lu@intel.com> | |
33409 | ||
33410 | PR target/68986 | |
33411 | * config/i386/i386.c (ix86_update_stack_boundary): Don't | |
33412 | change stack_alignment_needed for __tls_get_addr call. | |
33413 | ||
33414 | 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org> | |
33415 | ||
33416 | * config/rs6000/rs6000.c (print_operand): Rollback 's' removal. | |
33417 | ||
33418 | 2016-01-27 Jeff Law <law@redhat.com> | |
33419 | ||
33420 | PR tree-optimization/68398 | |
33421 | PR tree-optimization/69196 | |
33422 | * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter. | |
33423 | (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise. | |
33424 | * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths): | |
33425 | Only count PHIs in the last block in the path. The others will | |
33426 | const/copy propagate away. Add heuristic to allow more irreducible | |
33427 | subloops to be created when it is likely profitable to do so. | |
33428 | ||
33429 | * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths): | |
33430 | Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL | |
33431 | check from within the loop. Use gsi_next_nondebug rather than gsi_next. | |
33432 | ||
33433 | 2016-01-27 Jakub Jelinek <jakub@redhat.com> | |
33434 | ||
33435 | PR lto/69254 | |
33436 | * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and | |
33437 | END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB. | |
33438 | * asan.c (DEF_BUILTIN_STUB): Temporarily define. | |
33439 | * tree-streamer-in.c: Include asan.h. | |
33440 | (streamer_get_builtin_tree): For builtins in sanitizer | |
33441 | range call initialize_sanitizer_builtins and retry. | |
33442 | ||
33443 | 2016-01-27 Ian Lance Taylor <iant@google.com> | |
33444 | ||
33445 | * common.opt (fkeep-gc-roots-live): New undocumented option. | |
33446 | * tree-ssa-loop-ivopts.c (add_candidate_1): If | |
33447 | -fkeep-gc-roots-live, skip pointers. | |
33448 | (add_iv_candidate_for_biv): Handle add_candidate_1 returning | |
33449 | NULL. | |
33450 | ||
33451 | 2016-01-27 Uros Bizjak <ubizjak@gmail.com> | |
33452 | ||
33453 | PR target/69512 | |
33454 | * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern. | |
33455 | (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND. | |
33456 | ||
33457 | 2016-01-27 Thomas Klausner <wiz@NetBSD.org> | |
33458 | ||
33459 | PR target/68380 | |
33460 | * configure.ac: NetBSD provides SSP in its C library. | |
33461 | * configure: Updated. | |
33462 | ||
33463 | 2016-01-27 Richard Biener <rguenther@suse.de> | |
33464 | ||
33465 | PR tree-optimization/69166 | |
33466 | * tree-vect-loop.c (vect_is_simple_reduction): Always check | |
33467 | reduction code for commutativity / associativity. | |
33468 | ||
33469 | 2016-01-27 Martin Jambor <mjambor@suse.cz> | |
33470 | ||
33471 | PR tree-optimization/69355 | |
33472 | * tree-sra.c (analyze_access_subtree): Correct hole detection when | |
33473 | total_scalarization fails. | |
33474 | ||
33475 | 2016-01-27 David Edelsohn <dje.gcc@gmail.com> | |
33476 | ||
33477 | * config/rs6000/driver-rs6000.c (detect_processor_aix): Add | |
33478 | power9. | |
33479 | ||
33480 | 2016-01-27 Christian Bruel <christian.bruel@st.com> | |
33481 | ||
33482 | PR target/69245 | |
33483 | * config/arm/arm-c.c (arm_pragma_target_parse): Add comments. | |
33484 | Move arm_reset_previous_fndecl and set_target_option_current_node in | |
33485 | the conditional part. Call save_restore_target_globals. | |
33486 | * config/arm/arm.c (arm_set_current_function): | |
33487 | Refactor to better support #pragma target and attribute mix. | |
33488 | Call save_restore_target_globals. | |
33489 | * config/arm/arm-protos.h (save_restore_target_globals): New function. | |
33490 | ||
33491 | 2016-01-27 Martin Liska <mliska@suse.cz> | |
33492 | ||
33493 | * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR | |
33494 | reference for an HSA kernel and its host function. | |
33495 | ||
33496 | 2016-01-27 Jakub Jelinek <jakub@redhat.com> | |
33497 | ||
33498 | PR tree-optimization/69399 | |
33499 | * wide-int.h (wi::lrshift): For larger precisions, only | |
33500 | use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT. | |
33501 | ||
33502 | 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com> | |
33503 | ||
33504 | * config/arc/predicates.md (proper_comparison_operator): Reject | |
33505 | constant-constant comparison. | |
33506 | ||
33507 | 2016-01-26 Tom de Vries <tom@codesourcery.com> | |
33508 | ||
33509 | PR tree-optimization/69110 | |
33510 | * tree-data-ref.c (initialize_data_dependence_relation): Handle | |
33511 | DR_NUM_DIMENSIONS == 0. | |
33512 | ||
33513 | 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com> | |
33514 | Sebastian Pop <s.pop@samsung.com> | |
33515 | ||
33516 | * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle | |
33517 | isl_ast_op_cond and isl_ast_op_select. | |
33518 | (gcc_expression_from_isl_expr_op): Same. | |
33519 | ||
33520 | 2016-01-26 Jason Merrill <jason@redhat.com> | |
33521 | ||
33522 | PR c++/68782 | |
33523 | * tree.c (recompute_constructor_flags): Split out from | |
33524 | build_constructor. | |
33525 | (verify_constructor_flags): New. | |
33526 | * tree.h: Declare them. | |
33527 | ||
33528 | 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org> | |
33529 | ||
33530 | PR rtl-optimization/69217 | |
33531 | * var-tracking.c (tracked_record_parameter_p): Don't segfault if there | |
33532 | are no TYPE_FIELDS set for the record type. | |
33533 | ||
33534 | 2016-01-26 Jakub Jelinek <jakub@redhat.com> | |
33535 | ||
33536 | PR target/68662 | |
33537 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize | |
33538 | toc_label_name unconditionally. | |
33539 | (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for | |
33540 | SYMBOL_REF string. Use toc_label_name instead of constructing | |
33541 | LCTOC1. | |
33542 | (rs6000_elf_declare_function_name): Use toc_label_name instead of | |
33543 | constructing LCTOC1. | |
33544 | ||
33545 | 2016-01-26 Martin Sebor <msebor@redhat.com> | |
33546 | ||
33547 | PR other/69477 | |
33548 | * doc/extend.texi (Common Type Attributes): Move text that talks about | |
33549 | attribute packed from attribute aligned to the section discussing | |
33550 | the former attribute for clarity. | |
33551 | ||
33552 | 2016-01-26 Richard Henderson <rth@redhat.com> | |
33553 | ||
33554 | PR middle-end/60908 | |
33555 | * trans-mem.c (tm_region_init): Mark entry block as visited. | |
33556 | ||
33557 | 2016-01-26 David Malcolm <dmalcolm@redhat.com> | |
33558 | ||
33559 | PR other/69006 | |
33560 | * diagnostic-show-locus.c (layout::print_source_line): Replace | |
33561 | call to pp_newline with call to layout::print_newline. | |
33562 | (layout::print_annotation_line): Likewise. | |
33563 | (layout::move_to_column): Likewise. | |
33564 | (layout::print_any_fixits): After printing any fixits, print a | |
33565 | trailing newline, if necessary. | |
33566 | (layout::print_newline): New method, resetting any colorization | |
33567 | before a newline. | |
33568 | (diagnostic_show_locus): Move the pp_newline to before the | |
33569 | early bailout. Remove dummy block enclosing the layout instance. | |
33570 | * diagnostic.c (default_diagnostic_finalizer): Replace invocation | |
33571 | of pp_newline_and_flush with pp_flush. | |
33572 | (diagnostic_append_note): Delete use of pp_newline. | |
33573 | (diagnostic_append_note_at_rich_loc): Delete. | |
33574 | * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete. | |
33575 | * pretty-print.h (output_buffer_append_r): Reset buff->line_length | |
33576 | when newline characters are added to the buffer. | |
33577 | ||
33578 | 2016-01-26 Michael Matz <matz@suse.de> | |
33579 | ||
33580 | * configure.ac (ac_cv_std_swap_in_utility): New test. | |
33581 | * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well. | |
33582 | * configure: Regenerate. | |
33583 | * config.in: Regenerate. | |
33584 | ||
33585 | 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com> | |
33586 | ||
33587 | * config/arc/arc.md (cstoresi4): Force operand into register. | |
33588 | (arcset<code>): Fix predicate. | |
33589 | (arcsetltu): Likewise. | |
33590 | (arcsetgeu): Likewise. | |
33591 | (arcsethi): Likewise. | |
33592 | (arcsetls): Likewise. | |
33593 | ||
33594 | 2016-01-26 Jakub Jelinek <jakub@redhat.com> | |
33595 | ||
33596 | PR tree-optimization/69483 | |
33597 | * gimple-fold.c (canonicalize_constructor_val): Return NULL | |
33598 | if base has error_mark_node type. | |
33599 | ||
33600 | 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org> | |
33601 | ||
33602 | PR target/68620 | |
33603 | * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors. | |
33604 | * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq): | |
33605 | New helper macros. | |
33606 | (vget_lane_f16): Handle big-endian. | |
33607 | (vgetq_lane_f16): Likewise. | |
33608 | (vset_lane_f16): Likewise. | |
33609 | (vsetq_lane_f16): Likewise. | |
33610 | * config/arm/iterators.md (VQXMOV): Add V8HF. | |
33611 | (VDQ): Add V4HF and V8HF. | |
33612 | (V_reg): Handle V4HF and V8HF. | |
33613 | (Is_float_mode): Likewise. | |
33614 | * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf, | |
33615 | neon_vdup_nv8hf): New patterns. | |
33616 | (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>): | |
33617 | Use VD_LANE iterator. | |
33618 | (neon_vld1_dup<mode>): Use VQ2 iterator. | |
33619 | ||
33620 | 2016-01-26 Nathan Sidwell <nathan@acm.org> | |
33621 | ||
33622 | * omp-low.h (oacc_fn_attrib_kernels_p): Declare. | |
33623 | (set_oacc_fn_attrib): Add IS_KERNEL arg. | |
33624 | * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg. | |
33625 | (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New. | |
33626 | (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib. | |
33627 | (oacc_validate_dims): Add LEVEL arg, don't return level. | |
33628 | (new_oacc_loop_routine): Use oacc_fn_attrib_level, not | |
33629 | oacc_validate_dims. | |
33630 | (execute_oacc_device_lower): Adjust, add more dump output. | |
33631 | * tree-ssa-loop.c (gate_oacc_kernels): Use | |
33632 | oacc_fn_attrib_kernels_p. | |
33633 | * tree-parloops.c (create_parallel_loop): Adjust | |
33634 | set_oacc_fn_attrib call. | |
33635 | ||
33636 | 2016-01-26 Jakub Jelinek <jakub@redhat.com> | |
33637 | ||
33638 | PR lto/69254 | |
33639 | * lto-wrapper.c (merge_and_complain): Handle -fcilkplus. | |
33640 | (append_compiler_options): Handle -fcilkplus. | |
33641 | (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}. | |
33642 | ||
33643 | 2016-01-26 Nick Clifton <nickc@redhat.com> | |
33644 | ||
33645 | PR target/66655 | |
33646 | * config/i386/winnt.c (i386_pe_binds_local_p): If a function has | |
33647 | been marked as DECL_ONE_ONLY but we do not the means to make it | |
33648 | so, then do not allow it to bind locally. | |
33649 | ||
33650 | 2016-01-26 Jakub Jelinek <jakub@redhat.com> | |
33651 | ||
33652 | PR lto/69254 | |
33653 | * opts.h (parse_sanitizer_options): New prototype. | |
33654 | * opts.c (sanitizer_opts): New array. | |
33655 | (parse_sanitizer_options): New function. | |
33656 | (common_handle_option): Use parse_sanitizer_options. | |
33657 | ||
33658 | 2016-01-26 H.J. Lu <hongjiu.lu@intel.com> | |
33659 | ||
33660 | PR target/68986 | |
33661 | * config/i386/i386.c (ix86_compute_frame_layout): Move stack | |
33662 | alignment adjustment to ... | |
33663 | (ix86_update_stack_boundary): Here. Don't over-align stack for | |
33664 | __tls_get_addr. | |
33665 | (ix86_finalize_stack_realign_flags): Use stack_alignment_needed | |
33666 | if __tls_get_addr is called. | |
33667 | ||
33668 | 2016-01-26 Christian Bruel <christian.bruel@st.com> | |
33669 | ||
33670 | * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove. | |
33671 | ||
33672 | 2016-01-26 Eric Botcazou <ebotcazou@adacore.com> | |
33673 | ||
33674 | * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode. | |
33675 | ||
33676 | 2016-01-26 Richard Biener <rguenther@suse.de> | |
33677 | ||
33678 | PR middle-end/69467 | |
33679 | * match.pd: Guard X * CST CMP 0 pattern with single_use. | |
33680 | ||
33681 | 2016-01-26 Richard Biener <rguenther@suse.de> | |
33682 | ||
33683 | PR tree-optimization/69452 | |
33684 | * tree-ssa-loop-im.c (move_computations_dom_walker): Remove. | |
33685 | (move_computations_dom_walker::before_dom_children): Rename | |
33686 | to ... | |
33687 | (move_computations_worker): This. | |
33688 | (move_computations): Perform an RPO rather than a DOM walk. | |
33689 | ||
33690 | 2016-01-26 Jakub Jelinek <jakub@redhat.com> | |
33691 | ||
33692 | PR target/69442 | |
33693 | * combine.c (combine_instructions): For REG_EQUAL note with | |
33694 | SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST | |
33695 | to the underlying register. | |
33696 | * doc/rtl.texi (REG_EQUAL): Document the behavior of | |
33697 | REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT. | |
33698 | ||
33699 | 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com> | |
33700 | ||
33701 | PR target/67896 | |
33702 | * config/aarch64/aarch64-builtins.c | |
33703 | (aarch64_init_simd_builtin_types): Do not set structural | |
33704 | equality to __Poly{8,16,64,128}_t types. | |
33705 | ||
33706 | 2016-01-26 Richard Sandiford <richard.sandiford@arm.com> | |
33707 | ||
33708 | PR tree-optimization/69400 | |
33709 | * wide-int.cc (wi_pack): Take the precision as argument and | |
33710 | perform canonicalization here rather than in the callers. | |
33711 | Use the main loop to handle all full-width HWIs. Add a | |
33712 | zero HWI if in_len isn't a full result. | |
33713 | (wi::divmod_internal): Update accordingly. | |
33714 | (wi::mul_internal): Likewise. Simplify. | |
33715 | ||
33716 | 2016-01-25 Aditya Kumar <aditya.k7@samsung.com> | |
33717 | Sebastian Pop <s.pop@samsung.com> | |
33718 | ||
33719 | * graphite-poly.c (apply_poly_transforms): Simplify. | |
33720 | (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK. | |
33721 | (print_isl_map): Same. | |
33722 | (print_isl_union_map): Same. | |
33723 | (print_isl_schedule): New. | |
33724 | (debug_isl_schedule): New. | |
33725 | * graphite-dependences.c (scop_get_reads): Do not call | |
33726 | isl_union_map_add_map that is undocumented isl functionality. | |
33727 | (scop_get_must_writes): Same. | |
33728 | (scop_get_may_writes): Same. | |
33729 | (scop_get_original_schedule): Remove. | |
33730 | (scop_get_dependences): Do not call isl_union_map_compute_flow that | |
33731 | is deprecated in isl 0.15. Instead, use isl_union_access_* interface. | |
33732 | (compute_deps): Remove. | |
33733 | * graphite-isl-ast-to-gimple.c (print_schedule_ast): New. | |
33734 | (debug_schedule_ast): New. | |
33735 | (translate_isl_ast_to_gimple::scop_to_isl_ast): Call | |
33736 | set_separate_option. | |
33737 | (graphite_regenerate_ast_isl): Add dump. | |
33738 | (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code | |
33739 | from scop->transformed_schedule. | |
33740 | (graphite_regenerate_ast_isl): Add more dump. | |
33741 | * graphite-optimize-isl.c (optimize_isl): Set | |
33742 | scop->transformed_schedule. Check whether schedules are equal. | |
33743 | (apply_poly_transforms): Move here. | |
33744 | * graphite-poly.c (apply_poly_transforms): ... from here. | |
33745 | (free_poly_bb): Static. | |
33746 | (free_scop): Static. | |
33747 | (pbb_number_of_iterations_at_time): Remove. | |
33748 | (print_isl_ast): New. | |
33749 | (debug_isl_ast): New. | |
33750 | (debug_scop_pbb): New. | |
33751 | * graphite-scop-detection.c (print_edge): Move. | |
33752 | (print_sese): Move. | |
33753 | * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove. | |
33754 | (build_scop_scattering): Remove. | |
33755 | (create_pw_aff_from_tree): Assert instead of bailing out. | |
33756 | (add_condition_to_pbb): Remove unused code, do not fail. | |
33757 | (add_conditions_to_domain): Same. | |
33758 | (add_conditions_to_constraints): Remove. | |
33759 | (build_scop_context): New. | |
33760 | (add_iter_domain_dimension): New. | |
33761 | (build_iteration_domains): Initialize pbb->iterators. | |
33762 | Call add_conditions_to_domain. | |
33763 | (nested_in): New. | |
33764 | (loop_at): New. | |
33765 | (index_outermost_in_loop): New. | |
33766 | (index_pbb_in_loop): New. | |
33767 | (outermost_pbb_in): New. | |
33768 | (add_in_sequence): New. | |
33769 | (add_outer_projection): New. | |
33770 | (outer_projection_mupa): New. | |
33771 | (add_loop_schedule): New. | |
33772 | (build_schedule_pbb): New. | |
33773 | (build_schedule_loop): New. | |
33774 | (embed_in_surrounding_loops): New. | |
33775 | (build_schedule_loop_nest): New. | |
33776 | (build_original_schedule): New. | |
33777 | (build_poly_scop): Call build_original_schedule. | |
33778 | * graphite.h: Declare print_isl_schedule and debug_isl_schedule. | |
33779 | (free_poly_dr): Remove. | |
33780 | (struct poly_bb): Add iterators. Remove schedule, transformed, saved. | |
33781 | (free_poly_bb): Remove. | |
33782 | (debug_loop_vec): Remove. | |
33783 | (print_isl_ast): Declare. | |
33784 | (debug_isl_ast): Declare. | |
33785 | (scop_do_interchange): Remove. | |
33786 | (scop_do_strip_mine): Remove. | |
33787 | (scop_do_block): Remove. | |
33788 | (flatten_all_loops): Remove. | |
33789 | (optimize_isl): Remove. | |
33790 | (pbb_number_of_iterations_at_time): Remove. | |
33791 | (debug_scop_pbb): Declare. | |
33792 | (print_schedule_ast): Declare. | |
33793 | (debug_schedule_ast): Declare. | |
33794 | (struct scop): Remove schedule. Add original_schedule, | |
33795 | transformed_schedule. | |
33796 | (free_gimple_poly_bb): Remove. | |
33797 | (print_generated_program): Remove. | |
33798 | (debug_generated_program): Remove. | |
33799 | (unify_scattering_dimensions): Remove. | |
33800 | * sese.c (print_edge): ... here. | |
33801 | (print_sese): ... here. | |
33802 | (debug_edge): ... here. | |
33803 | (debug_sese): ... here. | |
33804 | * sese.h (print_edge): Declare. | |
33805 | (print_sese): Declare. | |
33806 | (dump_edge): Declare. | |
33807 | (dump_sese): Declare. | |
33808 | ||
33809 | 2016-01-25 Aditya Kumar <aditya.k7@samsung.com> | |
33810 | Sebastian Pop <s.pop@samsung.com> | |
33811 | ||
33812 | * Makefile.in: Set ISLVER in site.exp. | |
33813 | ||
33814 | 2016-01-25 Jakub Jelinek <jakub@redhat.com> | |
33815 | ||
33816 | * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set | |
33817 | DECL_VALUE_EXPR of new_var even for the non-array case. Look | |
33818 | through DECL_VALUE_EXPR for expansion. | |
33819 | ||
33820 | 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
33821 | ||
33822 | * config/mips/mips.c (mips_compute_frame_info): Skip re-computing | |
33823 | the frame info after reload completed. | |
33824 | ||
33825 | 2016-01-25 Jeff Law <law@redhat.com> | |
33826 | ||
33827 | PR tree-optimization/69196 | |
33828 | PR tree-optimization/68398 | |
33829 | * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from | |
33830 | tree-ssa-threadupdate.c. | |
33831 | (determine_bb_domination_status): Prototype | |
33832 | * tree-ssa-threadupdate.c (enum bb_dom_status): Remove | |
33833 | (determine_bb_domination_status): No longer static. | |
33834 | (valid_jump_thread_path): Remove code to detect characteristics | |
33835 | of the jump thread path not associated with correctness. | |
33836 | * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths): | |
33837 | Correct test for thread path length. Count PHIs for real operands as | |
33838 | statements that need to be copied. Do not count ASSERT_EXPRs. | |
33839 | Look at all the blocks in the thread path. Compute and selectively | |
33840 | filter thread paths based on threading through the latch, threading | |
33841 | a multiway branch or crossing a multiway branch. | |
33842 | ||
33843 | 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
33844 | ||
33845 | * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add | |
33846 | decl with __attribute__ ((unused)) annotation. | |
33847 | ||
33848 | 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com> | |
33849 | ||
33850 | PR target/69421 | |
33851 | * tree-vect-stmts.c (vectorizable_condition): Check vectype | |
33852 | of operands is compatible with a statement vectype. | |
33853 | ||
33854 | 2016-01-25 Eric Botcazou <ebotcazou@adacore.com> | |
33855 | ||
33856 | * doc/extend.texi (scalar_storage_order type attribute): Fix typo and | |
33857 | improve wording for mixed storage order support. | |
33858 | ||
33859 | 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com> | |
33860 | ||
33861 | * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic. | |
33862 | (vcvt_u64_f64): Likewise. | |
33863 | (vcvta_s64_f64): Likewise. | |
33864 | (vcvta_u64_f64): Likewise. | |
33865 | (vcvtm_s64_f64): Likewise. | |
33866 | (vcvtm_u64_f64): Likewise. | |
33867 | (vcvtn_s64_f64): Likewise. | |
33868 | (vcvtn_u64_f64): Likewise. | |
33869 | (vcvtp_s64_f64): Likewise. | |
33870 | (vcvtp_u64_f64): Likewise. | |
33871 | ||
33872 | 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com> | |
33873 | ||
33874 | * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define. | |
33875 | (arc_init): Check validity mll64 option. | |
33876 | (arc_save_restore): Use double load/store instruction. | |
33877 | (arc_expand_movmem): Likewise. | |
33878 | (arc_split_move): Don't split if we have double load/store | |
33879 | instructions. Returns a boolean. | |
33880 | (arc_process_double_reg_moves): Change function to return boolean | |
33881 | instead of a sequence of instructions. | |
33882 | (arc_dwarf_register_span): New function. | |
33883 | * config/arc/arc-protos.h (arc_split_move): Change prototype. | |
33884 | * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__. | |
33885 | * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions. | |
33886 | (*movdf_insn): Likewise. | |
33887 | * config/arc/arc.opt (mll64): New option. | |
33888 | * config/arc/predicates.md (even_register_operand): New predicate. | |
33889 | * doc/invoke.texi (ARC Options): Add mll64 documentation. | |
33890 | ||
33891 | 2016-01-25 Richard Biener <rguenther@suse.de> | |
33892 | ||
33893 | PR lto/69393 | |
33894 | * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS. | |
33895 | * tree-streamer-out.c (pack_ts_base_value_fields): Stream | |
33896 | DECL_NAMELESS. | |
33897 | * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise. | |
33898 | ||
33899 | 2016-01-25 Richard Biener <rguenther@suse.de> | |
33900 | ||
33901 | PR tree-optimization/69376 | |
33902 | * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p | |
33903 | flag. | |
33904 | (VN_INFO_ANTI_RANGE_P): New inline. | |
33905 | (VN_INFO_RANGE_TYPE): Likewise. | |
33906 | * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy | |
33907 | SSA_NAME_ANTI_RANGE_P. | |
33908 | (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P. | |
33909 | * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): | |
33910 | Properly query VN_INFO_RANGE_TYPE. | |
33911 | ||
33912 | 2016-01-25 Nick Clifton <nickc@redhat.com> | |
33913 | ||
33914 | PR target/66655 | |
33915 | * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition. | |
33916 | ||
33917 | 2016-01-23 Tom de Vries <tom@codesourcery.com> | |
33918 | ||
33919 | PR tree-optimization/69426 | |
33920 | * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of | |
33921 | removed clobber. | |
33922 | ||
33923 | 2016-01-23 Jakub Jelinek <jakub@redhat.com> | |
33924 | ||
33925 | * tree-ssanames.c (release_free_names_and_compact_live_names): Replace | |
33926 | "the the" with "the" in the comments. | |
33927 | * ipa-devirt.c (build_type_inheritance_graph, | |
33928 | update_type_inheritance_graph): Likewise. | |
33929 | * tree.c (build_function_type_list_1): Likewise. | |
33930 | * cfgloopmanip.c (scale_loop_profile): Likewise. | |
33931 | * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise. | |
33932 | * gimple-ssa-split-paths.c | |
33933 | (find_block_to_duplicate_for_splitting_paths): Likewise. | |
33934 | * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise. | |
33935 | * expr.c (convert_move): Likewise. | |
33936 | * var-tracking.c (vt_stack_adjustments): Likewise. | |
33937 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. | |
33938 | * tree-vrp.c (test_for_singularity): Likewise. | |
33939 | ||
33940 | * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR | |
33941 | directly instead of building a temporary tree. | |
33942 | ||
33943 | PR bootstrap/69434 | |
33944 | * genrecog.c: Define INCLUDE_ALGORITHM before including system.h, | |
33945 | remove <algorithm> include. | |
33946 | ||
33947 | 2016-01-22 Jakub Jelinek <jakub@redhat.com> | |
33948 | ||
33949 | PR target/69432 | |
33950 | * config/i386/i386.c: Include dojump.h. | |
33951 | (expand_small_movmem_or_setmem, | |
33952 | expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling | |
33953 | fixes. | |
33954 | (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early | |
33955 | if dynamic_check != -1. | |
33956 | ||
33957 | 2016-01-21 Jeff Law <law@redhat.com> | |
33958 | ||
33959 | PR middle-end/69347 | |
33960 | * tree-ssa-dom.c (back_propagate_equivalences): Factored out of | |
33961 | record_temporary_equivalences. Rewritten to avoid unnecessary calls | |
33962 | into dominated_by_p. | |
33963 | (cprop_into_successor_phis): Avoid unnecessary tests. | |
33964 | ||
33965 | 2016-01-22 Richard Henderson <rth@redhat.com> | |
33966 | ||
33967 | PR target/69416 | |
33968 | * config/aarch64/aarch64.md (UNSPEC_NZCV): New. | |
33969 | (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it. | |
33970 | ||
33971 | 2016-01-22 Michael Matz <matz@suse.de> | |
33972 | ||
33973 | * system.h (string, algorithm): Include only conditionally. | |
33974 | (new): Include always under C++. | |
33975 | * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM. | |
33976 | * final.c (toplevel): Ditto. | |
33977 | * ipa-chkp.c (toplevel): Define INCLUDE_STRING. | |
33978 | * genconditions.c (write_header): Make gencondmd.c define | |
33979 | INCLUDE_STRING. | |
33980 | * mem-stats.h (mem_usage::print_dash_line): Don't use std::string. | |
33981 | ||
33982 | * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING. | |
33983 | * common/config/aarch64/aarch64-common.c (toplevel): Ditto. | |
33984 | ||
33985 | 2016-01-22 Christian Bruel <christian.bruel@st.com> | |
33986 | ||
33987 | PR target/68674 | |
33988 | * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed. | |
33989 | ||
33990 | 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33991 | ||
33992 | PR target/69403 | |
33993 | * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to | |
33994 | define_insn_and_split. Ensure operands[1] and operands[0] do not | |
33995 | get assigned the same register. | |
33996 | ||
33997 | 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org> | |
33998 | ||
33999 | * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr. | |
34000 | ||
34001 | 2016-01-22 Christian Bruel <christian.bruel@st.com> | |
34002 | ||
34003 | * config/arm/arm-c.c (arm_pragma_target_parse): | |
34004 | Remove warn_builtin_macro_redefined overwrite. | |
34005 | ||
34006 | 2016-01-22 Eric Botcazou <ebotcazou@adacore.com> | |
34007 | ||
34008 | * ipa-inline.c (can_inline_edge_p): Back out overzealous check on | |
34009 | flag_non_call_exceptions compatibility. | |
34010 | ||
34011 | 2016-01-22 Jakub Jelinek <jakub@redhat.com> | |
34012 | ||
34013 | PR debug/66668 | |
34014 | * dwarf2out.c (add_child_die_after): New function. | |
34015 | (dwarf_qual_info_t): New type. | |
34016 | (dwarf_qual_info): New variable. | |
34017 | (qualified_die_p): New function. | |
34018 | (modified_type_die): For -fdebug-types-section, ensure | |
34019 | canonical order of qualifiers. Put qualified DIEs adjacent | |
34020 | to the corresponding non-qualified type DIE and search there | |
34021 | for existing qualified DIEs. | |
34022 | ||
34023 | 2016-01-22 Eric Botcazou <ebotcazou@adacore.com> | |
34024 | ||
34025 | * doc/extend.texi (scalar_storage_order type attribute): Document | |
34026 | restriction on type punning and aliasing, and remove future tense. | |
34027 | ||
34028 | 2016-01-21 Roman Zhuykov <zhroma@ispras.ru> | |
34029 | ||
34030 | PR target/69252 | |
34031 | * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new | |
34032 | first stage. | |
34033 | ||
34034 | 2016-01-21 Jeff Law <law@redhat.com> | |
34035 | ||
34036 | PR middle-end/69347 | |
34037 | * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid | |
34038 | useless call to record_temporary_equivalences. | |
34039 | * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just | |
34040 | allocate 10 slots in the bb_path vector and let it grow as needed. | |
34041 | (fsm_find_control_statement_thread_paths): Similarly for the next_path | |
34042 | vector. | |
34043 | ||
34044 | 2016-01-21 David Edelsohn <dje.gcc@gmail.com> | |
34045 | ||
34046 | * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive): | |
34047 | Detangle. | |
34048 | * configure: Regenerate. | |
34049 | ||
34050 | 2016-01-21 Pat Haugen <pthaugen@us.ibm.com> | |
34051 | ||
34052 | * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9. | |
34053 | * config/rs6000/driver-rs6000.c (struct asm_names): Likewise. | |
34054 | ||
34055 | 2016-01-21 Bernd Schmidt <bschmidt@redhat.com> | |
34056 | ||
34057 | PR middle-end/66178 | |
34058 | * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't | |
34059 | drop EXPAND_INITIALIZER. | |
34060 | * rtl.h (contains_symbolic_reference_p): Declare. | |
34061 | * rtlanal.c (contains_symbolic_reference_p): New function. | |
34062 | * simplify-rtx.c (simplify_binary_operation_1): Don't turn | |
34063 | a subtraction into a NOT if symbolic constants are involved. | |
34064 | ||
34065 | 2016-01-21 Anton Blanchard <anton@samba.org> | |
34066 | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
34067 | ||
34068 | PR target/63354 | |
34069 | * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New | |
34070 | #define. | |
34071 | * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New | |
34072 | function. | |
34073 | ||
34074 | 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com> | |
34075 | ||
34076 | * config/microblaze/microblaze.c | |
34077 | (get_branch_target): New. | |
34078 | (insert_wic_for_ilb_runout): New. | |
34079 | (insert_wic): New. | |
34080 | (microblaze_machine_dependent_reorg): New. | |
34081 | (TARGET_MACHINE_DEPENDENT_REORG): Define macro. | |
34082 | * config/microblaze/microblaze.md | |
34083 | (UNSPEC_IPREFETCH): Define. | |
34084 | (iprefetch): New pattern | |
34085 | * config/microblaze/microblaze.opt | |
34086 | (mxl-prefetch): New flag. | |
34087 | ||
34088 | 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com> | |
34089 | ||
34090 | * config/microblaze/microblaze.h | |
34091 | (FIXED_REGISTERS): Update in macro. | |
34092 | (CALL_USED_REGISTERS): Update in macro. | |
34093 | ||
34094 | 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com> | |
34095 | ||
34096 | PR rtl-optimization/68920 | |
34097 | * ifcvt.c (cond_move_process_if_block): Limit number of conditional | |
34098 | moves. | |
34099 | ||
34100 | 2016-01-21 Vladimir Makarov <vmakarov@redhat.com> | |
34101 | ||
34102 | PR rtl-optimization/68990 | |
34103 | * lra-coalesce.c (lra_coalesce): Invalidate value for the result | |
34104 | pseudo instead of inheritance ones. | |
34105 | ||
34106 | 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
34107 | Nick Clifton <nickc@redhat.com> | |
34108 | ||
34109 | PR target/69129 | |
34110 | PR target/69012 | |
34111 | * config/mips/mips.c (mips_compute_frame_info): Initialise | |
34112 | args_size and hard_frame_pointer_offset fields of the frame | |
34113 | structure before calling mips_global_pointer. | |
34114 | ||
34115 | 2016-01-21 David Edelsohn <dje.gcc@gmail.com> | |
34116 | ||
34117 | * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section | |
34118 | label reference. | |
34119 | * configure: Regenerate. | |
34120 | ||
34121 | 2016-01-21 Richard Biener <rguenther@suse.de> | |
34122 | ||
34123 | * graphite-optimize-isl.c (get_schedule_map): Fix typo. | |
34124 | ||
34125 | 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net> | |
34126 | ||
34127 | * config/s390/s390.c (s390_asm_declare_function_size): Add code | |
34128 | to actually emit the .size directive. | |
34129 | ||
34130 | 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com> | |
34131 | Jakub Jelinek <jakub@redhat.com> | |
34132 | ||
34133 | PR target/69187 | |
34134 | PR target/65624 | |
34135 | * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase | |
34136 | args array size by one to avoid buffer overflow. | |
34137 | ||
34138 | 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net> | |
34139 | ||
34140 | * config/s390/s390.md (pool_section_start): Use switch_to_section | |
34141 | to select proper read-only data section instead of hardcoding | |
34142 | .rodata. | |
34143 | (pool_section_end): Use switch_to_section to match the above. | |
34144 | ||
34145 | 2016-01-21 Richard Biener <rguenther@suse.de> | |
34146 | ||
34147 | PR tree-optimization/69378 | |
34148 | * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function. | |
34149 | (set_ssa_val_to): Use it for dominance checks taking into | |
34150 | account not executable edges. | |
34151 | ||
34152 | 2016-01-21 Jakub Jelinek <jakub@redhat.com> | |
34153 | ||
34154 | PR c++/69355 | |
34155 | * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode) | |
34156 | for bitsize instead of GET_MODE_PRECISION (mode). | |
34157 | ||
34158 | 2016-01-20 Martin Sebor <msebor@redhat.com> | |
34159 | ||
34160 | PR c/52291 | |
34161 | * extend.texi (__sync Builtins): Clarify the semantics of | |
34162 | __sync_fetch_and_OP built-ins on pointers. | |
34163 | (__atomic Builtins): Same. | |
34164 | ||
34165 | 2016-01-21 Aditya Kumar <aditya.k7@samsung.com> | |
34166 | Sebastian Pop <s.pop@samsung.com> | |
34167 | ||
34168 | * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New. | |
34169 | (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool. | |
34170 | (is_valid_rename): Same. | |
34171 | (translate_isl_ast_to_gimple::get_rename): Same. | |
34172 | (translate_isl_ast_to_gimple::rename_all_uses): Same. | |
34173 | (translate_isl_ast_to_gimple::rename_uses): Same. | |
34174 | (get_new_name): Check for close_phi nodes. | |
34175 | (copy_loop_phi_args): Use phi_node_kind. | |
34176 | (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same. | |
34177 | (translate_isl_ast_to_gimple::copy_cond_phi_args): Same. | |
34178 | ||
34179 | 2016-01-21 Aditya Kumar <aditya.k7@samsung.com> | |
34180 | Sebastian Pop <s.pop@samsung.com> | |
34181 | ||
34182 | Revert commit r229783. | |
34183 | * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id): | |
34184 | Remove use of parameter_rename_map. | |
34185 | (copy_def): Remove. | |
34186 | (copy_internal_parameters): Remove. | |
34187 | (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters. | |
34188 | * sese.c (new_sese_info): Do not initialize parameter_rename_map. | |
34189 | (free_sese_info): Do not free parameter_rename_map. | |
34190 | (set_rename): Do not use parameter_rename_map. | |
34191 | (rename_uses): Update call to set_rename. | |
34192 | (graphite_copy_stmts_from_block): Do not use parameter_rename_map. | |
34193 | * sese.h (parameter_rename_map_t): Remove. | |
34194 | (struct sese_info_t): Remove field parameter_rename_map. | |
34195 | ||
34196 | 2016-01-21 Aditya Kumar <aditya.k7@samsung.com> | |
34197 | Sebastian Pop <s.pop@samsung.com> | |
34198 | ||
34199 | * graphite-isl-ast-to-gimple.c: Fix comment. | |
34200 | * graphite-scop-detection.c (defined_in_loop_p): New. | |
34201 | (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA | |
34202 | names defined in loop. | |
34203 | ||
34204 | 2016-01-21 Aditya Kumar <aditya.k7@samsung.com> | |
34205 | Sebastian Pop <s.pop@samsung.com> | |
34206 | ||
34207 | * graphite-scop-detection.c (scop_detection::harmful_loop_in_region): | |
34208 | Discard unstructured if-then-else regions. | |
34209 | ||
34210 | 2016-01-21 Aditya Kumar <aditya.k7@samsung.com> | |
34211 | Sebastian Pop <s.pop@samsung.com> | |
34212 | ||
34213 | * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove. | |
34214 | (cleanup_loop_iter_dom): Remove. | |
34215 | (build_loop_iteration_domains): Remove. | |
34216 | (build_scop_context): Remove. | |
34217 | (build_scop_iteration_domain): Remove. | |
34218 | (add_loop_constraints): New. | |
34219 | (build_iteration_domains): New. | |
34220 | (build_poly_scop): Call build_iteration_domains. | |
34221 | ||
34222 | 2016-01-21 Aditya Kumar <aditya.k7@samsung.com> | |
34223 | Sebastian Pop <s.pop@samsung.com> | |
34224 | ||
34225 | * graphite-scop-detection.c | |
34226 | (scop_detection::harmful_loop_in_region): Free dom and loops. | |
34227 | (scop_detection::loop_body_is_valid_scop): Free bbs. | |
34228 | ||
34229 | 2016-01-21 Aditya Kumar <aditya.k7@samsung.com> | |
34230 | Sebastian Pop <s.pop@samsung.com> | |
34231 | ||
34232 | * graphite-scop-detection.c (record_loop_in_sese): New. | |
34233 | (gather_bbs::before_dom_children): Call record_loop_in_sese. | |
34234 | (build_scops): Remove call to build_sese_loop_nests. | |
34235 | * sese.c (sese_record_loop): Remove. | |
34236 | (build_sese_loop_nests): Remove. | |
34237 | (new_sese_info): Remove region->loops. | |
34238 | (free_sese_info): Same. | |
34239 | * sese.h (sese_contains_loop): Same. | |
34240 | (build_sese_loop_nests): Remove. | |
34241 | (sese_contains_loop): Remove. | |
34242 | ||
34243 | 2016-01-21 Aditya Kumar <aditya.k7@samsung.com> | |
34244 | Sebastian Pop <s.pop@samsung.com> | |
34245 | ||
34246 | * graphite-scop-detection.c (loop_is_valid_scop): Renamed | |
34247 | loop_is_valid_in_scop. | |
34248 | (scop_detection::harmful_stmt_in_region): Renamed | |
34249 | harmful_loop_in_region. | |
34250 | Call loop_is_valid_in_scop. | |
34251 | ||
34252 | 2016-01-21 Aditya Kumar <aditya.k7@samsung.com> | |
34253 | Sebastian Pop <s.pop@samsung.com> | |
34254 | ||
34255 | * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle | |
34256 | isl_ast_node_mark. | |
34257 | ||
34258 | 2016-01-21 Aditya Kumar <aditya.k7@samsung.com> | |
34259 | Sebastian Pop <s.pop@samsung.com> | |
34260 | ||
34261 | * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION. | |
34262 | * graphite.h (struct poly_bb): Remove field is_reduction. | |
34263 | (PBB_IS_REDUCTION): Remove. | |
34264 | ||
34265 | 2016-01-21 Aditya Kumar <aditya.k7@samsung.com> | |
34266 | Sebastian Pop <s.pop@samsung.com> | |
34267 | ||
34268 | * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce. | |
34269 | (add_pdr_constraints): Same. | |
34270 | (scop_get_reads): Same. | |
34271 | (scop_get_must_writes): Same. | |
34272 | (scop_get_may_writes): Same. | |
34273 | (scop_get_original_schedule): Same. | |
34274 | (extend_schedule): Same. | |
34275 | (apply_schedule_on_deps): Same. | |
34276 | (carries_deps): Same. | |
34277 | (compute_deps): Same. | |
34278 | (scop_get_dependences): Same. | |
34279 | * graphite-isl-ast-to-gimple.c | |
34280 | (translate_isl_ast_to_gimple::generate_isl_schedule): Same. | |
34281 | * graphite-optimize-isl.c (get_schedule_for_band): Same. | |
34282 | (get_schedule_for_band_list): Same. | |
34283 | (get_schedule_map): Same. | |
34284 | (apply_schedule_map_to_scop): Same. | |
34285 | * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same. | |
34286 | (build_loop_iteration_domains): Same. | |
34287 | (add_condition_to_pbb): Same. | |
34288 | (add_param_constraints): Same. | |
34289 | (pdr_add_memory_accesses): Same. | |
34290 | (pdr_add_data_dimensions): Same. | |
34291 | ||
34292 | 2016-01-20 Sandra Loosemore <sandra@codesourcery.com> | |
34293 | ||
34294 | * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking | |
34295 | requirements. | |
34296 | ||
34297 | 2016-01-20 Sandra Loosemore <sandra@codesourcery.com> | |
34298 | ||
34299 | * common.opt (feliminate-dwarf2-dups): Replace references to | |
34300 | "DWARF 2" with just "DWARF". | |
34301 | * config/ia64/ia64.opt (mdwarf2-asm): Likewise. | |
34302 | * doc/extend.texi: Likewise. | |
34303 | * doc/cpp.texi: Likewise. | |
34304 | * doc/invoke.texi: Likewise. | |
34305 | (Option Summary): Add -gdwarf to list of Debugging Options. | |
34306 | (Debugging Options): Document -gdwarf. | |
34307 | * doc/contrib.texi: Spell "DWARF" like that. | |
34308 | ||
34309 | 2016-01-21 Jakub Jelinek <jakub@redhat.com> | |
34310 | ||
34311 | * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized | |
34312 | warning. Fix up formatting. | |
34313 | ||
34314 | PR middle-end/67653 | |
34315 | * gimplify.c (gimplify_asm_expr): Warn if it is too late to | |
34316 | attempt to mark memory input operand addressable and | |
34317 | call prepare_gimple_addressable in that case. Don't adjust | |
34318 | input_location for diagnostics, use error_at instead. | |
34319 | ||
34320 | 2016-01-20 Peter Bergner <bergner@vnet.ibm.com> | |
34321 | ||
34322 | * config/rs6000/ppc-auxv.h: New file. | |
34323 | * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin. | |
34324 | (cpu_is): Likewise. | |
34325 | (cpu_supports): Likewise. | |
34326 | * config/rs6000/rs6000.c: include "ppc-auxv.h". | |
34327 | (cpu_is_info): New variable. | |
34328 | (cpu_supports_info): Likewise. | |
34329 | (tcb_verification_symbol): Likewise. | |
34330 | (cpu_builtin_p): Likewise. | |
34331 | (cpu_expand_builtin): New function. | |
34332 | (rs6000_expand_ternop_builtin): Add support for CPU builtin functions. | |
34333 | (rs6000_init_builtins): Likewise. | |
34334 | (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol. | |
34335 | * config/rs6000/rs6000.h (TLS_REGNUM): New define. | |
34336 | * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test. | |
34337 | * configure: Regenerate. | |
34338 | * config.in: Likewise. | |
34339 | * doc/extend.texi (PowerPC Built-in Functions): Document | |
34340 | __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports. | |
34341 | ||
34342 | 2016-01-20 David Edelsohn <dje.gcc@gmail.com> | |
34343 | ||
34344 | PR target/68609 | |
34345 | * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt | |
34346 | domain check. | |
34347 | * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt | |
34348 | for V4SFmode. | |
34349 | ||
34350 | 2016-01-20 Richard Henderson <rth@redhat.com> | |
34351 | ||
34352 | PR bootstrap/69343 | |
34353 | PR bootstrap/69339 | |
34354 | PR tree-opt/68964 | |
34355 | Revert: | |
34356 | * tree.c (tm_define_builtin): New. | |
34357 | (find_tm_vector_type): New. | |
34358 | (build_tm_vector_builtins): New. | |
34359 | (build_common_builtin_nodes): Call it. | |
34360 | ||
34361 | 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org> | |
34362 | ||
34363 | * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry. | |
34364 | (arm_fp_ok): Likewise. | |
34365 | (arm_fp): Likewise. | |
34366 | (arm_crypto): Likewise. | |
34367 | ||
34368 | 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com> | |
34369 | Richard Biener <rguenther@suse.de> | |
34370 | ||
34371 | PR tree-optimization/69328 | |
34372 | * tree-vect-stmts.c (vect_is_simple_cond): Check compared | |
34373 | vectors have same number of elements. | |
34374 | (vectorizable_condition): Fix masked version recognition. | |
34375 | ||
34376 | 2016-01-20 Richard Biener <rguenther@suse.de> | |
34377 | ||
34378 | PR tree-optimization/69345 | |
34379 | * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function. | |
34380 | (VN_INFO_PTR_INFO): Likewise. | |
34381 | * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to | |
34382 | info when it is equal between non-dominating SSA names. | |
34383 | * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): | |
34384 | Make sure to look at original SSA infos. | |
34385 | ||
34386 | 2016-01-20 Jeff Law <law@redhat.com> | |
34387 | ||
34388 | PR target/25114 | |
34389 | * config/m68k/predicates.md (pow2_m1_operand): New predicate | |
34390 | extracted from ... | |
34391 | (reg_or_pow2_m1_operand): Call pow2_m1_operand. | |
34392 | (pc_or_label_operand): New predicate. | |
34393 | * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU | |
34394 | tests for small integers that are 2^n - 1. | |
34395 | ||
34396 | 2016-01-20 Jonathan Wakely <jwakely@redhat.com> | |
34397 | ||
34398 | * doc/invoke.texi (Options Summary): Add '.' after @xref. | |
34399 | ||
34400 | 2016-01-19 Jeff Law <law@redhat.com> | |
34401 | ||
34402 | PR middle-end/69347 | |
34403 | * tree-ssa-threadbackwards.c | |
34404 | (fsm_find_control_statement_thread_paths): Do not try to lookup | |
34405 | FSM paths for SSA_NAMEs appearing in abnormal PHIs. | |
34406 | ||
34407 | 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org> | |
34408 | ||
34409 | * doc/lto.texi: Remove text that says only Gold has linker plugin | |
34410 | support. | |
34411 | ||
34412 | 2016-01-19 Eric Botcazou <ebotcazou@adacore.com> | |
34413 | ||
34414 | * dwarf2out.c (need_endianity_attribute_p): New inline predicate. | |
34415 | (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to | |
34416 | the DIE accordingly. | |
34417 | (modified_type_die): Add REVERSE parameter and pass it recursively, | |
34418 | as well as to base_type_die. Adjust presence check accordingly. | |
34419 | (base_type_for_mode): Adjust call to modified_type_die. | |
34420 | (add_type_attribute): Add REVERSE parameter and pass it to | |
34421 | modified_type_die. | |
34422 | (generic_parameter_die): Adjust call to add_type_attribute. | |
34423 | (add_scalar_info): Likewise. | |
34424 | (add_subscript_info): Likewise. | |
34425 | (gen_array_type_die): Likewise. | |
34426 | (gen_descr_array_type_die): Likewise. | |
34427 | (gen_entry_point_die): Likewise. | |
34428 | (gen_enumeration_type_die): Likewise. | |
34429 | (gen_formal_parameter_die): Likewise. | |
34430 | (gen_subprogram_die): Likewise. | |
34431 | (gen_variable_die ): Likewise. | |
34432 | (gen_const_die): Likewise. | |
34433 | (gen_field_die): Likewise. | |
34434 | (gen_pointer_type_die): Likewise. | |
34435 | (gen_reference_type_die): Likewise. | |
34436 | (gen_ptr_to_mbr_type_die): Likewise. | |
34437 | (gen_inheritance_die): Likewise. | |
34438 | (gen_subroutine_type_die): Likewise. | |
34439 | (gen_typedef_die): Likewise. | |
34440 | (force_type_die): Adjust call to modified_type_die. | |
34441 | ||
34442 | 2016-01-19 Sandra Loosemore <sandra@codesourcery.com> | |
34443 | ||
34444 | * doc/standards.texi: Copy-editing for grammar, markup, and sentence | |
34445 | flow throughout the file. Fix broken link to Objective-C 2.0 | |
34446 | documentation. | |
34447 | * doc/invoke.texi: More copy-editing; fix numerous typos and spelling | |
34448 | errors. | |
34449 | ||
34450 | 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com> | |
34451 | ||
34452 | * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings. | |
34453 | ||
34454 | 2016-01-19 Jan Hubicka <hubicka@ucw.cz> | |
34455 | ||
34456 | PR ipa/66223 | |
34457 | * ipa-devirt.c (is_cxa_pure_virtual_p): New function. | |
34458 | (maybe_record_node): Record cxa_pure_virtual as the only possible | |
34459 | target if there are not ohter candidates. | |
34460 | (possible_polymorphic_call_target_p): Accept cxa_pure_virtual. | |
34461 | ||
34462 | 2016-01-19 Richard Biener <rguenther@suse.de> | |
34463 | ||
34464 | * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants. | |
34465 | (get_memory_order): Likewise. | |
34466 | ||
34467 | 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com> | |
34468 | ||
34469 | * tree-vect-stmts.c (vectorizable_store): Check | |
34470 | rhs vectype. | |
34471 | ||
34472 | 2016-01-19 David Malcolm <dmalcolm@redhat.com> | |
34473 | ||
34474 | PR jit/68446 | |
34475 | * gcc.c (driver::decode_argv): Add call to | |
34476 | init_opts_obstack before init_options_struct. | |
34477 | * opts.c (init_opts_obstack): Remove idempotency. | |
34478 | (init_options_struct): Replace call to init_opts_obstack | |
34479 | with a gcc_assert to verify that it has already been called. | |
34480 | * toplev.c (toplev::main): Add call to init_opts_obstack before | |
34481 | calls to init_options_struct. | |
34482 | (toplev::finalize): Move cleanup of opts_obstack next to | |
34483 | cleanup of save_decoded_options, clearing the latter, and | |
34484 | save_decoded_options_count. | |
34485 | ||
34486 | 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
34487 | ||
34488 | PR target/69135 | |
34489 | * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds" | |
34490 | attribute to unconditional. Remove %? from output template. | |
34491 | ||
34492 | 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com> | |
34493 | Jiong Wang <jiong.wang@arm.com> | |
34494 | ||
34495 | * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences | |
34496 | generated from different expand order. | |
34497 | ||
34498 | 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com> | |
34499 | ||
34500 | * /config/aarch64/aarch64.c (aarch64_if_then_else_costs): | |
34501 | Add support for CCMP costing. | |
34502 | ||
34503 | 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com> | |
34504 | ||
34505 | * ccmp.c (ccmp_candidate_p): Remove integer-only restriction. | |
34506 | * config/aarch64/aarch64.md (fccmp<mode>): New pattern. | |
34507 | (fccmpe<mode>): Likewise. | |
34508 | (fcmp): Rename to fcmp and globalize pattern. | |
34509 | (fcmpe): Likewise. | |
34510 | * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support. | |
34511 | (aarch64_gen_ccmp_next): Add FP support. | |
34512 | ||
34513 | 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com> | |
34514 | ||
34515 | * target.def (gen_ccmp_first): Update documentation. | |
34516 | (gen_ccmp_next): Likewise. | |
34517 | * doc/tm.texi (gen_ccmp_first): Update documentation. | |
34518 | (gen_ccmp_next): Likewise. | |
34519 | * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of | |
34520 | expand_ccmp_expr_1. Improve comments. | |
34521 | * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp. | |
34522 | (ccmp_ior<mode>): Remove pattern. | |
34523 | (cmp<mode>): Remove expand. | |
34524 | (cmp): Globalize pattern. | |
34525 | (cstorecc4): Use cc_register. | |
34526 | (mov<mode>cc): Remove ccmp_cc_register check. | |
34527 | * config/aarch64/aarch64.c (aarch64_get_condition_code_1): | |
34528 | Simplify after removal of CC_DNE/* modes. | |
34529 | (aarch64_ccmp_mode_to_code): Remove. | |
34530 | (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases. | |
34531 | In 'k' case use integer as condition. | |
34532 | (aarch64_nzcv_codes): Remove inverted cases. | |
34533 | (aarch64_code_to_ccmode): Remove. | |
34534 | (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct | |
34535 | comparison with CC register to be used in folowing CCMP/branch/CSEL. | |
34536 | (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP | |
34537 | pattern. Return the comparison with CC register. Invert conditions | |
34538 | when bitcode is OR. | |
34539 | * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes. | |
34540 | * config/aarch64/predicates.md (ccmp_cc_register): Remove. | |
34541 | ||
34542 | 2016-01-19 Jan Hubicka <hubicka@ucw.cz> | |
34543 | ||
34544 | * cgraphunit.c (cgraph_node::reset): Clear thunk info and | |
34545 | instrumented_version. | |
34546 | ||
34547 | 2016-01-19 Richard Biener <rguenther@suse.de> | |
34548 | ||
34549 | PR tree-optimization/69336 | |
34550 | * tree-ssa-scopedtables.c (avail_expr_hash): Handle all | |
34551 | handled components with get_ref_base_and_extent. | |
34552 | (equal_mem_array_ref_p): Adjust. | |
34553 | ||
34554 | 2016-01-19 Jakub Jelinek <jakub@redhat.com> | |
34555 | ||
34556 | PR debug/65779 | |
34557 | * shrink-wrap.c: Include valtrack.h. | |
34558 | (move_insn_for_shrink_wrap): Add DEBUG argument. If | |
34559 | MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs | |
34560 | in between insn and where it will be moved to. Call | |
34561 | dead_debug_insert_temp. | |
34562 | (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init | |
34563 | first and dead_debug_local_finish at the end. | |
34564 | For uses and defs bitmap, handle all regs in between REGNO and | |
34565 | END_REGNO, not just the first one. | |
34566 | ||
34567 | 2016-01-19 Richard Biener <rguenther@suse.de> | |
34568 | ||
34569 | PR tree-optimization/69352 | |
34570 | * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1. | |
34571 | (equal_mem_array_ref_p): Constrain size and max size properly. | |
34572 | Compare the reverse flag. | |
34573 | ||
34574 | 2016-01-19 Bernd Schmidt <bschmidt@redhat.com> | |
34575 | ||
34576 | * ira.c (ira): Update regstat data if we deleted insns. | |
34577 | ||
34578 | 2016-01-19 Jakub Jelinek <jakub@redhat.com> | |
34579 | ||
34580 | PR rtl-optimization/68955 | |
34581 | PR rtl-optimization/64557 | |
34582 | * dse.c (record_store, check_mem_read_rtx): Don't call get_addr | |
34583 | here. Fix up formatting. | |
34584 | * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P. | |
34585 | ||
34586 | 2016-01-19 Jan Hubicka <hubicka@ucw.cz> | |
34587 | ||
34588 | PR lto/69133 | |
34589 | * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple | |
34590 | assume that the node has body. | |
34591 | * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p | |
34592 | check. | |
34593 | ||
34594 | 2016-01-19 Jan Hubicka <hubicka@ucw.cz> | |
34595 | ||
34596 | * lto-streamer-out.c (lto_output): Do not stream instrumentation | |
34597 | thunks. | |
34598 | ||
34599 | 2016-01-19 Jan Hubicka <hubicka@ucw.cz> | |
34600 | ||
34601 | * symtab.c (symtab_node::asm_name): Do not call printable name directly. | |
34602 | (symtab_node::name): Report name as unnamed if DECL_NAME is not set. | |
34603 | ||
34604 | 2016-01-19 Martin Jambor <mjambor@suse.cz> | |
34605 | Martin Liska <mliska@suse.cz> | |
34606 | Michael Matz <matz@suse.de> | |
34607 | ||
34608 | * Makefile.in (OBJS): Add new source files. | |
34609 | (GTFILES): Add hsa.c. | |
34610 | * common.opt (disable_hsa): New variable. | |
34611 | (-Whsa): New warning. | |
34612 | * config.in (ENABLE_HSA): New. | |
34613 | * configure.ac: Treat hsa differently from other accelerators. | |
34614 | (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to | |
34615 | $enable_offloading. | |
34616 | (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa. | |
34617 | * doc/install.texi (Configuration): Document --with-hsa-runtime, | |
34618 | --with-hsa-runtime-include, --with-hsa-runtime-lib and | |
34619 | --with-hsa-kmt-lib. | |
34620 | * doc/invoke.texi (-Whsa): Document. | |
34621 | (hsa-gen-debug-stores): Likewise. | |
34622 | * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt | |
34623 | to invoke offload compiler for hsa acclerator. | |
34624 | * opts.c (common_handle_option): Determine whether HSA offloading | |
34625 | should be performed. | |
34626 | * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter. | |
34627 | * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New. | |
34628 | (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed. | |
34629 | (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New. | |
34630 | * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY. | |
34631 | * gimple-pretty-print.c (dump_gimple_omp_for): Also handle | |
34632 | GF_OMP_FOR_KIND_GRID_LOOP. | |
34633 | (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY. | |
34634 | (pp_gimple_stmt_1): Likewise. | |
34635 | * gimple-walk.c (walk_gimple_stmt): Likewise. | |
34636 | * gimple.c (gimple_build_omp_grid_body): New function. | |
34637 | (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY. | |
34638 | * gimple.def (GIMPLE_OMP_GRID_BODY): New. | |
34639 | * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY, | |
34640 | GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and | |
34641 | GF_OMP_TEAMS_GRID_PHONY. | |
34642 | (gimple_statement_omp_single_layout): Updated comments. | |
34643 | (gimple_build_omp_grid_body): New function. | |
34644 | (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY. | |
34645 | (gimple_omp_for_grid_phony): New function. | |
34646 | (gimple_omp_for_set_grid_phony): Likewise. | |
34647 | (gimple_omp_parallel_grid_phony): Likewise. | |
34648 | (gimple_omp_parallel_set_grid_phony): Likewise. | |
34649 | (gimple_omp_teams_grid_phony): Likewise. | |
34650 | (gimple_omp_teams_set_grid_phony): Likewise. | |
34651 | (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY. | |
34652 | * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New. | |
34653 | (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise. | |
34654 | (BUILT_IN_GOMP_TARGET): Updated type. | |
34655 | * omp-low.c: Include symbol-summary.h, hsa.h and params.h. | |
34656 | (adjust_for_condition): New function. | |
34657 | (get_omp_for_step_from_incr): Likewise. | |
34658 | (extract_omp_for_data): Moved parts to adjust_for_condition and | |
34659 | get_omp_for_step_from_incr. | |
34660 | (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY. | |
34661 | (fixup_child_record_type): Bail out if receiver_decl is NULL. | |
34662 | (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_. | |
34663 | (scan_omp_parallel): Do not create child functions for phony | |
34664 | constructs. | |
34665 | (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY. | |
34666 | (scan_omp_1_op): Checking assert we are not remapping to | |
34667 | ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY. | |
34668 | (parallel_needs_hsa_kernel_p): New function. | |
34669 | (expand_parallel_call): Register apprpriate parallel child | |
34670 | functions as HSA kernels. | |
34671 | (grid_launch_attributes_trees): New type. | |
34672 | (grid_attr_trees): New variable. | |
34673 | (grid_create_kernel_launch_attr_types): New function. | |
34674 | (grid_insert_store_range_dim): Likewise. | |
34675 | (grid_get_kernel_launch_attributes): Likewise. | |
34676 | (get_target_argument_identifier_1): Likewise. | |
34677 | (get_target_argument_identifier): Likewise. | |
34678 | (get_target_argument_value): Likewise. | |
34679 | (push_target_argument_according_to_value): Likewise. | |
34680 | (get_target_arguments): Likewise. | |
34681 | (expand_omp_target): Call get_target_arguments instead of looking | |
34682 | up for teams and thread limit. | |
34683 | (grid_expand_omp_for_loop): New function. | |
34684 | (grid_arg_decl_map): New type. | |
34685 | (grid_remap_kernel_arg_accesses): New function. | |
34686 | (grid_expand_target_kernel_body): New function. | |
34687 | (expand_omp): Call it. | |
34688 | (lower_omp_for): Do not emit phony constructs. | |
34689 | (lower_omp_taskreg): Do not emit phony constructs but create for them | |
34690 | a temporary variable receiver_decl. | |
34691 | (lower_omp_taskreg): Do not emit phony constructs. | |
34692 | (lower_omp_teams): Likewise. | |
34693 | (lower_omp_grid_body): New function. | |
34694 | (lower_omp_1): Call it. | |
34695 | (grid_reg_assignment_to_local_var_p): New function. | |
34696 | (grid_seq_only_contains_local_assignments): Likewise. | |
34697 | (grid_find_single_omp_among_assignments_1): Likewise. | |
34698 | (grid_find_single_omp_among_assignments): Likewise. | |
34699 | (grid_find_ungridifiable_statement): Likewise. | |
34700 | (grid_target_follows_gridifiable_pattern): Likewise. | |
34701 | (grid_remap_prebody_decls): Likewise. | |
34702 | (grid_copy_leading_local_assignments): Likewise. | |
34703 | (grid_process_kernel_body_copy): Likewise. | |
34704 | (grid_attempt_target_gridification): Likewise. | |
34705 | (grid_gridify_all_targets_stmt): Likewise. | |
34706 | (grid_gridify_all_targets): Likewise. | |
34707 | (execute_lower_omp): Call grid_gridify_all_targets. | |
34708 | (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY. | |
34709 | * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_. | |
34710 | (tree_omp_clause): Added union field dimension. | |
34711 | * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_. | |
34712 | * tree.c (omp_clause_num_ops): Added number of arguments of | |
34713 | OMP_CLAUSE__GRIDDIM_. | |
34714 | (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_. | |
34715 | (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_. | |
34716 | * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New. | |
34717 | (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise. | |
34718 | (OMP_CLAUSE_GRIDDIM_SIZE): Likewise. | |
34719 | (OMP_CLAUSE_GRIDDIM_GROUP): Likewise. | |
34720 | * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail. | |
34721 | * tree-pass.h (make_pass_gen_hsail): Declare. | |
34722 | (make_pass_ipa_hsa): Likewise. | |
34723 | * ipa-hsa.c: New file. | |
34724 | * lto-section-in.c (lto_section_name): Add hsa section name. | |
34725 | * lto-streamer.h (lto_section_type): Add hsa section. | |
34726 | * timevar.def (TV_IPA_HSA): New. | |
34727 | * hsa-brig-format.h: New file. | |
34728 | * hsa-brig.c: New file. | |
34729 | * hsa-dump.c: Likewise. | |
34730 | * hsa-gen.c: Likewise. | |
34731 | * hsa.c: Likewise. | |
34732 | * hsa.h: Likewise. | |
34733 | * toplev.c (compile_file): Call hsa_output_brig. | |
34734 | * hsa-regalloc.c: New file. | |
34735 | ||
34736 | 2016-01-18 Jeff Law <law@redhat.com> | |
34737 | ||
34738 | PR tree-optimization/69320 | |
34739 | * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean | |
34740 | ranged object, do nothing if the RHS constant is not [0..1]. | |
34741 | (optimize_stmt): Comparing a boolean ranged object against a | |
34742 | constant outside [0..1] results in a compile-time constant. | |
34743 | ||
34744 | * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary | |
34745 | test. | |
34746 | ||
34747 | 2016-01-18 Sandra Loosemore <sandra@codesourcery.com> | |
34748 | ||
34749 | * doc/invoke.texi (Invoking GCC): Add new section to menu. | |
34750 | (Option Summary): Update to reflect new section and moved options. | |
34751 | (C++ Dialect Options): Move -fstats to new section. | |
34752 | (Debugging Options): Move all dump, statistics, and other GCC | |
34753 | developer options to new section. Rewrite section introduction | |
34754 | and re-order remaining options to put the more basic ones first. | |
34755 | (Optimization Options): Move -fira-verbose and -flto-report* to | |
34756 | new section. | |
34757 | (Developer Options): New section incorporating moved options. | |
34758 | * doc/cppopts.texi (-dM): Update cross-reference. | |
34759 | ||
34760 | 2016-01-18 Richard Henderson <rth@redhat.com> | |
34761 | ||
34762 | PR target/69176 | |
34763 | * config/aarch64/aarch64.md (add<GPI>3): Move long immediate | |
34764 | operands to pseudo only if CSE is expected. Split long immediate | |
34765 | operands only after reload, and for the stack pointer. | |
34766 | (*add<GPI>3_pluslong): Remove. | |
34767 | (*addsi3_aarch64, *adddi3_aarch64): Merge into... | |
34768 | (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative. | |
34769 | (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative. | |
34770 | (*add<GPI>3 peepholes): New. | |
34771 | (*add<GPI>3 splitters): New. | |
34772 | * config/aarch64/constraints.md (Upl): New. | |
34773 | * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New. | |
34774 | ||
34775 | 2016-01-18 Richard Biener <rguenther@suse.de> | |
34776 | ||
34777 | PR tree-optimization/69297 | |
34778 | * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar | |
34779 | stmt at most once. | |
34780 | (vect_bb_vectorization_profitable_p): Clear visited flag again. | |
34781 | ||
34782 | 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com> | |
34783 | ||
34784 | PR middle-end/68542 | |
34785 | * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case | |
34786 | of mixind vector and scalar types. | |
34787 | (fold_relational_const): Add handling of vector | |
34788 | comparison with boolean result. | |
34789 | * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow | |
34790 | comparison of vector operands with boolean result for EQ/NE only. | |
34791 | (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison. | |
34792 | (verify_gimple_cond): Likewise. | |
34793 | * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on | |
34794 | valid type of VAL. | |
34795 | ||
34796 | 2016-01-18 Joseph Myers <joseph@codesourcery.com> | |
34797 | ||
34798 | * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require | |
34799 | !TARGET_OCTEON. | |
34800 | ||
34801 | 2016-01-18 Richard Biener <rguenther@suse.de> | |
34802 | ||
34803 | PR middle-end/69308 | |
34804 | * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND. | |
34805 | ||
34806 | 2016-01-18 Tom de Vries <tom@codesourcery.com> | |
34807 | ||
34808 | * passes.def: Add pass_parallelize_loops to pass_oacc_kernels. | |
34809 | ||
34810 | 2016-01-18 Tom de Vries <tom@codesourcery.com> | |
34811 | ||
34812 | * omp-low.c (set_oacc_fn_attrib): Make extern. | |
34813 | * omp-low.h (set_oacc_fn_attrib): Declare. | |
34814 | * tree-parloops.c (struct reduction_info): Add reduc_addr field. | |
34815 | (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL. | |
34816 | (create_parallel_loop, gen_parallel_loop, try_create_reduction_list): | |
34817 | Add and handle function parameter oacc_kernels_p. | |
34818 | (find_reduc_addr, get_omp_data_i_param): New function. | |
34819 | (ref_conflicts_with_region, oacc_entry_exit_ok_1) | |
34820 | (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function. | |
34821 | (parallelize_loops): Add and handle function parameter oacc_kernels_p. | |
34822 | Calculate dominance info. Skip loops that are not in a kernels region | |
34823 | in oacc_kernels_p mode. Skip inner loops of parallelized loops. | |
34824 | (pass_parallelize_loops::execute): Call parallelize_loops with | |
34825 | oacc_kernels_p argument. | |
34826 | (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param): | |
34827 | New member function. | |
34828 | (pass_parallelize_loops::bool oacc_kernels_p): New member var. | |
34829 | * passes.def: Add argument to pass_parallelize_loops instantation. | |
34830 | ||
34831 | 2016-01-18 Tom de Vries <tom@codesourcery.com> | |
34832 | ||
34833 | * tree-parloops.c (pass_parallelize_loops::execute): Allow | |
34834 | pass_parallelize_loops to be run outside the loop pipeline. | |
34835 | ||
34836 | 2016-01-18 Alan Lawrence <alan.lawrence@arm.com> | |
34837 | ||
34838 | * tree-scalar-evolution.c (follow_copies_to_constant): New. | |
34839 | (analyze_initial_condition, analyze_scalar_evolution_1): Call previous. | |
34840 | ||
34841 | 2016-01-18 Alan Lawrence <alan.lawrence@arm.com> | |
34842 | ||
34843 | PR target/63679 | |
34844 | * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF | |
34845 | using get_ref_base_and_extent. | |
34846 | (equal_mem_array_ref_p): New. | |
34847 | (hashable_expr_equal_p): Add call to previous. | |
34848 | ||
34849 | 2016-01-18 Alan Lawrence <alan.lawrence@arm.com> | |
34850 | ||
34851 | PR target/63679 | |
34852 | * tree-sra.c (disqualified_constants, constant_decl_p): New. | |
34853 | (sra_initialize): Allocate disqualified_constants. | |
34854 | (sra_deinitialize): Free disqualified_constants. | |
34855 | (disqualify_candidate): Update disqualified_constants when appropriate. | |
34856 | (create_access): Scan for constant-pool entries as we go along. | |
34857 | (scalarizable_type_p): Add check against type_contains_placeholder_p. | |
34858 | (maybe_add_sra_candidate): Allow constant-pool entries. | |
34859 | (load_assign_lhs_subreplacements): Bind debug for constant pool vars. | |
34860 | (initialize_constant_pool_replacements): New. | |
34861 | (sra_modify_assign): Avoid mangling assignments created by previous, | |
34862 | and don't generate writes into constant pool. | |
34863 | (sra_modify_function_body): Call initialize_constant_pool_replacements. | |
34864 | ||
34865 | 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com> | |
34866 | ||
34867 | * config/i386/i386.c (scalar_to_vector_candidate_p): Support | |
34868 | andnot instruction. | |
34869 | (scalar_chain::convert_op): Likewise. | |
34870 | * config/i386/i386.md (*andndi3_doubleword): New. | |
34871 | ||
34872 | 2016-01-18 Richard Biener <rguenther@suse.de> | |
34873 | ||
34874 | PR tree-optimization/69170 | |
34875 | * tree-vect-slp.c (vect_build_slp_tree): Verify we are not | |
34876 | building a vector from scalar results of a pattern stmt. | |
34877 | ||
34878 | 2016-01-18 Jakub Jelinek <jakub@redhat.com> | |
34879 | ||
34880 | * haifa-sched.c (autopref_multipass_init): Work around | |
34881 | -Wmaybe-uninitialized warning. | |
34882 | ||
34883 | 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
34884 | ||
34885 | * config/arm/arm.c (thumb1_reorg): Check that the comparison is | |
34886 | against the constant 0. | |
34887 | ||
34888 | 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
34889 | ||
34890 | PR tree-optimization/68799 | |
34891 | * gimple-ssa-strength-reduction.c (create_phi_basis): Directly | |
34892 | look up phi candidates in the statement-candidate map. | |
34893 | (phi_add_costs): Likewise. | |
34894 | (record_phi_increments): Likewise. | |
34895 | (phi_incr_cost): Likewise. | |
34896 | (ncd_with_phi): Likewise. | |
34897 | (all_phi_incrs_profitable): Likewise. | |
34898 | ||
34899 | 2016-01-17 Jakub Jelinek <jakub@redhat.com> | |
34900 | ||
34901 | * omp-low.c (mark_loops_in_oacc_kernels_region): Work around | |
34902 | -Wmaybe-uninitialized warning. | |
34903 | ||
34904 | 2016-01-16 Sandra Loosemore <sandra@codesourcery.com> | |
34905 | ||
34906 | * doc/invoke.texi (Invoking GCC): Add new section to menu. | |
34907 | (Option Summary): Update to reflect new section and moved options. | |
34908 | (C++ Dialect Options): Move -fvtable-verify and related options. | |
34909 | (Debugging Options): Move Sanitizer, Pointer Bounds Checker, | |
34910 | and profiling-related options. | |
34911 | (Optimization Options): Move profile generation options and | |
34912 | -fstack-protector and related options. | |
34913 | (Instrumentation Options): New section incorporating moved options. | |
34914 | (Code Generation Options): Move -finstrument-functions and | |
34915 | related options, -fstack-check, -fstack-limit*, and -fbounds-check. | |
34916 | ||
34917 | 2016-01-16 Tom de Vries <tom@codesourcery.com> | |
34918 | ||
34919 | * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops. | |
34920 | ||
34921 | 2016-01-16 Tom de Vries <tom@codesourcery.com> | |
34922 | ||
34923 | * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt. | |
34924 | ||
34925 | 2016-01-16 Richard Sandiford <richard.sandiford@arm.com> | |
34926 | ||
34927 | * hash-table.h (hash_table::empty): Turn into an inline wrapper | |
34928 | that checks whether the table is already empty. Rename the | |
34929 | original implementation to... | |
34930 | (hash_table::empty_slot): ...this new private function. | |
34931 | ||
34932 | 2016-01-15 David Malcolm <dmalcolm@redhat.com> | |
34933 | ||
34934 | PR diagnostic/68899 | |
34935 | * diagnostic-show-locus.c (layout::print_source_line): Move x | |
34936 | offset of line until after call to | |
34937 | get_line_width_without_trailing_whitespace. | |
34938 | ||
34939 | 2016-01-15 Jeff Law <law@redhat.com> | |
34940 | ||
34941 | PR tree-optimization/69270 | |
34942 | * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from | |
34943 | tree-ssa-dom.c. Improve test for [0..1] ranve from VRP. | |
34944 | * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove. | |
34945 | * tree-ssanames.h (ssa_name_has_boolean_range): Prototype. | |
34946 | * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use | |
34947 | ssa_name_has_boolean_range and constant_boolean_node. | |
34948 | ||
34949 | 2016-01-15 Vladimir Makarov <vmakarov@redhat.com> | |
34950 | ||
34951 | PR rtl-optimization/69030 | |
34952 | * lra-spills.c (remove_pseudos): Check nrefs and make the function | |
34953 | returning bool. | |
34954 | (spill_pseudos): Delete debug insn for dead pseudo. | |
34955 | (lra_spill): Initiate spill_hard_reg and slots memory separately. | |
34956 | ||
34957 | 2016-01-15 Jiong Wang <jiong.wang@arm.com> | |
34958 | ||
34959 | * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers): | |
34960 | New. | |
34961 | (TYPES_UNOPUS): Likewise. | |
34962 | * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct | |
34963 | builtin type, from UNOP to UNOPUS. | |
34964 | (lbtruncuv4sf): Likewise. | |
34965 | (lbtruncuv2df): Likewise. | |
34966 | (lrounduv2sf): Likewise. | |
34967 | (lrounduv4sf): Likewise. | |
34968 | (lrounduv2df): Likewise. | |
34969 | (lroundusf): Likewise. | |
34970 | (lroundusf): Likewise. | |
34971 | (lceiluv2sf): Likewise. | |
34972 | (lceiluv4sf): Likewise. | |
34973 | (lceiluv2df): Likewise. | |
34974 | (lceilusf): Likewise. | |
34975 | (lceiludf): Likewise. | |
34976 | (lflooruv2sf): Likewise. | |
34977 | (lflooruv4sf): Likewise. | |
34978 | (lflooruv2df): Likewise. | |
34979 | (lfloorusf): Likewise. | |
34980 | (lfloorudf): Likewise. | |
34981 | (lfrintnuv2sf): Likewise. | |
34982 | (lfrintnuv4sf): Likewise. | |
34983 | (lfrintnuv2df): Likewise. | |
34984 | (lfrintnusf): Likewise. | |
34985 | (lfrintnudf): Likewise. | |
34986 | * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type | |
34987 | conversion. | |
34988 | (vcvtq_u32_f32): Likewise. | |
34989 | (vcvtq_u64_f64): Likewise. | |
34990 | (vcvta_u32_f32): Likewise. | |
34991 | (vcvtaq_u32_f32): Likewise. | |
34992 | (vcvtaq_u64_f64): Likewise. | |
34993 | (vcvtm_u32_f32): Likewise. | |
34994 | (vcvtmq_u32_f32): Likewise. | |
34995 | (vcvtmq_u64_f64): Likewise. | |
34996 | (vcvtn_u32_f32): Likwise. | |
34997 | (vcvtnq_u32_f32): Likewise. | |
34998 | (vcvtnq_u64_f64): Likewise. | |
34999 | (vcvtp_u32_f32): Likewise. | |
35000 | (vcvtpq_u32_f32): Likewise. | |
35001 | (vcvtpq_u64_f64): Likewise. | |
35002 | (vcvtmd_u64_f64): Likewise. | |
35003 | (vcvtms_u32_f32): Likewise. | |
35004 | (vcvtad_u64_f64): Likewise. | |
35005 | (vcvtas_u32_f32): Likewise. | |
35006 | (vcvtnd_u64_f64): Likewise. | |
35007 | (vcvtns_u32_f32): Likewise. | |
35008 | (vcvtpd_u64_f64): Likewise. | |
35009 | (vcvtps_u32_f32): Likewise. | |
35010 | ||
35011 | 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35012 | ||
35013 | * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle | |
35014 | CSEL of zero_extended registers. | |
35015 | ||
35016 | 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35017 | ||
35018 | * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case): | |
35019 | Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate. | |
35020 | ||
35021 | 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35022 | ||
35023 | * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return | |
35024 | false when argument string is not found in the attributes table | |
35025 | at all. | |
35026 | ||
35027 | 2016-01-15 David Edelsohn <dje.gcc@gmail.com> | |
35028 | ||
35029 | PR target/68609 | |
35030 | * config/rs6000/rs6000.c (rs6000_emit_msub): Delete. | |
35031 | (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm | |
35032 | * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high | |
35033 | precision estimate. | |
35034 | ||
35035 | 2016-01-15 Richard Biener <rguenther@suse.de> | |
35036 | ||
35037 | PR tree-optimization/66856 | |
35038 | * tree-vect-loop.c (vect_transform_loop): Free SLP instances here. | |
35039 | * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count. | |
35040 | (vect_create_new_slp_node): Increment stmt reference count. | |
35041 | (vect_get_and_check_slp_defs): Make sure stmts are nor already in | |
35042 | an SLP tree before swapping operands. | |
35043 | (vect_build_slp_tree): Likewise. | |
35044 | (destroy_bb_vec_info): Free stmt info after SLP instances. | |
35045 | * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count. | |
35046 | * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field. | |
35047 | (STMT_VINFO_NUM_SLP_USES): New macro. | |
35048 | ||
35049 | 2016-01-15 Richard Biener <rguenther@suse.de> | |
35050 | ||
35051 | PR debug/69137 | |
35052 | * dwarf2out.c (add_linkage_name_raw): New function split out from ... | |
35053 | (add_linkage_name): ... here. | |
35054 | (gen_typedef_die): Use add_linkage_name_raw instead of | |
35055 | add_linkage_attr to delay DECL_ASSEMBLER_NAME computation | |
35056 | if necessary. | |
35057 | ||
35058 | 2016-01-15 Cesar Philippidis <cesar@codesourcery.com> | |
35059 | ||
35060 | * gimplify.c (oacc_default_clause): Decode reference and pointer | |
35061 | types for both kernels and parallel regions. | |
35062 | ||
35063 | 2016-01-15 Richard Sandiford <richard.sandiford@arm.com> | |
35064 | ||
35065 | PR middle-end/69246 | |
35066 | * calls.c (emit_call_1): Force n_popped to zero for sibcalls. | |
35067 | ||
35068 | 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com> | |
35069 | ||
35070 | * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo. | |
35071 | (convert_scalars_to_vector): Likewise. | |
35072 | ||
35073 | 2016-01-15 Jonathan Wakely <jwakely@redhat.com> | |
35074 | ||
35075 | * doc/extend.texi (Type Traits): Fix grammar. | |
35076 | ||
35077 | 2016-01-15 Martin Jambor <mjambor@suse.cz> | |
35078 | ||
35079 | * tree-inline.c (remap_decl): Use existing dclarations if | |
35080 | remapping a type and prevent_decl_creation_for_types. | |
35081 | (replace_locals_stmt): Do an initial remapping of non-VLA typed | |
35082 | decls first. Do real remapping with | |
35083 | prevent_decl_creation_for_types set. | |
35084 | * tree-inline.h (copy_body_data): New field | |
35085 | prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid | |
35086 | padding. | |
35087 | ||
35088 | 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
35089 | ||
35090 | * config/s390/s390.opt (mmvcle): More verbose help text. | |
35091 | ||
35092 | 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
35093 | ||
35094 | * config/s390/s390.opt: Add period to -mzvector option text. | |
35095 | ||
35096 | 2016-01-15 Richard Biener <rguenther@suse.de> | |
35097 | ||
35098 | PR tree-optimization/68961 | |
35099 | * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost | |
35100 | of invariants in stores again. | |
35101 | ||
35102 | 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
35103 | ||
35104 | * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib. | |
35105 | ||
35106 | 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com> | |
35107 | ||
35108 | * config/i386/i386.c (ix86_expand_branch): Don't split | |
35109 | DI mode xor instruction to SI mode. | |
35110 | ||
35111 | 2016-01-15 Jan Hubicka <hubicka@ucw.cz> | |
35112 | ||
35113 | PR ipa/68148 | |
35114 | * ipa-icf.c (sem_function::merge): Virtual functions may become | |
35115 | reachable even if they address is not taken and there are no | |
35116 | idrect calls. | |
35117 | ||
35118 | 2016-01-15 Jan Hubicka <hubicka@ucw.cz> | |
35119 | ||
35120 | * lto-streamer-out.c (subtract_estimated_size): New function. | |
35121 | (get_symbol_initial_value): Use it. | |
35122 | ||
35123 | 2016-01-15 Christian Bruel <christian.bruel@st.com> | |
35124 | ||
35125 | PR target/65837 | |
35126 | * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag. | |
35127 | (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins, | |
35128 | (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins. | |
35129 | use add_builtin_function_ext_scope instead of add_builtin_function. | |
35130 | (neon_set_p, neon_crypto_set_p): Remove. | |
35131 | (arm_init_builtins): Always call arm_init_neon_builtins and | |
35132 | arm_init_crypto_builtins. | |
35133 | (arm_expand_builtin): Check that builtins are allowed for the arch. | |
35134 | * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype. | |
35135 | * config/arm/arm.c (arm_valid_target_attribute_tree): Remove | |
35136 | arm_init_neon_builtins call. | |
35137 | ||
35138 | 2016-01-15 Richard Biener <rguenther@suse.de> | |
35139 | ||
35140 | PR tree-optimization/69117 | |
35141 | * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member. | |
35142 | * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info | |
35143 | of the leader conservatively. | |
35144 | (free_scc_vn): Restore original SSA name infos. | |
35145 | ||
35146 | 2016-01-14 Jeff Law <law@redhat.com> | |
35147 | ||
35148 | PR tree-optimization/69270 | |
35149 | * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a | |
35150 | single bit of precision, verify it's also unsigned. | |
35151 | (record_edge_info): Use constant_boolean_node rather than fold_convert | |
35152 | to convert boolean_true/boolean_false to the right type. | |
35153 | ||
35154 | 2016-01-14 Richard Henderson <rth@redhat.com> | |
35155 | ||
35156 | PR rtl-opt/69014 | |
35157 | * loop-doloop.c (record_reg_sets): New. | |
35158 | (doloop_optimize): Reject the transform if the sequence | |
35159 | clobbers registers live at the end of the loop block. | |
35160 | (doloop_optimize_loops): Enable df_live if needed. | |
35161 | ||
35162 | 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com> | |
35163 | ||
35164 | * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change. | |
35165 | * config/rs6000/rs6000.c: Likewise. | |
35166 | * config/rs6000/rs6000.h: Likewise. | |
35167 | * config/rs6000/rs6000.md: Likewise. | |
35168 | * doc/extend.texi: Likewsie. | |
35169 | ||
35170 | 2016-01-14 Jeff Law <law@redhat.com> | |
35171 | ||
35172 | * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment | |
35173 | typo. | |
35174 | ||
35175 | 2016-01-14 Richard Henderson <rth@redhat.com> | |
35176 | ||
35177 | PR c/69272 | |
35178 | PR tree-opt/68964 | |
35179 | * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size. | |
35180 | * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p | |
35181 | instead of builtin_decl_declared_p to test for declaration. | |
35182 | ||
35183 | 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com> | |
35184 | ||
35185 | * doc/loop.texi (Loop Analysis and Representation): Document | |
35186 | loop_depth function. | |
35187 | ||
35188 | 2016-01-14 Tom de Vries <tom@codesourcery.com> | |
35189 | ||
35190 | PR tree-optimization/68773 | |
35191 | * omp-low.c (expand_omp_target): Don't set force_output. | |
35192 | * varpool.c (varpool_node::get_create): Same. | |
35193 | * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and | |
35194 | offload_funcs with force_output. | |
35195 | ||
35196 | 2016-01-14 Jakub Jelinek <jakub@redhat.com> | |
35197 | ||
35198 | PR debug/69244 | |
35199 | * lra-eliminations.c (move_plus_up): Don't change anything if either | |
35200 | the outer or inner subreg mode is not MODE_INT. | |
35201 | * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is | |
35202 | integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards. | |
35203 | ||
35204 | 2016-01-14 Alan Lawrence <alan.lawrence@arm.com> | |
35205 | ||
35206 | * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m}, | |
35207 | reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m}, | |
35208 | reduc_uplus_@var{m}): Remove. | |
35209 | * expr.c (expand_expr_real_2): Remove expansion path for | |
35210 | reduc_[us](min|max|plus) optabs. | |
35211 | * optabs-tree.c (scalar_reduc_to_vector): Remove. | |
35212 | * optabs-tree.h (scalar_reduc_to_vector): Remove. | |
35213 | * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab, | |
35214 | reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove. | |
35215 | * tree-vect-loop.c (vectorizable_reduction): Remove test for | |
35216 | reduc_[us](min|max|plus) optabs. | |
35217 | ||
35218 | 2016-01-14 Alan Lawrence <alan.lawrence@arm.com> | |
35219 | ||
35220 | * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove. | |
35221 | (reduc_plus_scal_v2sf): New. | |
35222 | (reduc_smax_v2sf): Rename to... | |
35223 | (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract. | |
35224 | (reduc_smin_v2sf): Rename to... | |
35225 | (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract. | |
35226 | ||
35227 | 2016-01-14 Jan Hubicka <hubicka@ucw.cz> | |
35228 | ||
35229 | * alias.c (compare_base_symbol_refs): New function. | |
35230 | (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use | |
35231 | it. | |
35232 | ||
35233 | 2016-01-14 Jakub Jelinek <jakub@redhat.com> | |
35234 | ||
35235 | PR middle-end/68146 | |
35236 | PR tree-optimization/69155 | |
35237 | * tree-complex.c: Include cfganal.h. | |
35238 | (phis_to_revisit): New variable. | |
35239 | (extract_component): Add phiarg_p argument. Assert that returned | |
35240 | SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true. | |
35241 | (update_phi_components): Partly rewrite to use loop over real/imag | |
35242 | components instead of code duplication. If extract_component returns | |
35243 | SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or | |
35244 | create_tmp_reg into the PHI node instead, and mention the phi triplet | |
35245 | in phis_to_revisit. | |
35246 | (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded | |
35247 | in phis_to_revisit at the end. | |
35248 | ||
35249 | 2016-01-14 Richard Biener <rguenther@suse.de> | |
35250 | ||
35251 | PR tree-optimization/68060 | |
35252 | * tree-vect-loop.c (vect_is_simple_reduction): Check the | |
35253 | outer loop reduction is only used in the inner loop before | |
35254 | detecting a double reduction. | |
35255 | ||
35256 | 2016-01-14 Jakub Jelinek <jakub@redhat.com> | |
35257 | ||
35258 | PR target/68269 | |
35259 | * combine.c (expand_field_assignment): Punt if compute_mode is | |
35260 | unsupported scalar mode. | |
35261 | ||
35262 | 2016-01-14 Richard Biener <rguenther@suse.de> | |
35263 | ||
35264 | PR tree-optimization/66856 | |
35265 | * tree-vect-slp.c (vect_build_slp_tree): Refactor to build | |
35266 | SLP node only if it built successfully. | |
35267 | (vect_analyze_slp_instance): Adjust. | |
35268 | ||
35269 | 2016-01-14 Jeff Law <law@redhat.com> | |
35270 | ||
35271 | PR tree-optimization/69270 | |
35272 | * tree-ssa-dom.c (ssa_name_has_boolean_range): New function. | |
35273 | (record_edge_info): Use it. Convert boolean_{true,false}_node | |
35274 | to the type of op0. | |
35275 | ||
35276 | 2016-01-13 Jan Hubicka <hubicka@ucw.cz> | |
35277 | ||
35278 | PR ipa/66487 | |
35279 | * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): | |
35280 | use block_ultimate_origin | |
35281 | (noncall-stmt_may_be_vtbl_ptr_store): Likewise. | |
35282 | ||
35283 | 2016-01-13 Sandra Loosemore <sandra@codesourcery.com> | |
35284 | ||
35285 | * doc/invoke.texi (Submodel Options): Rename section to | |
35286 | "Machine-Dependent Options" to better reflect its content. | |
35287 | Rewrite introductory text to remove archaic CPU names. | |
35288 | Update references. | |
35289 | ||
35290 | 2016-01-13 Sandra Loosemore <sandra@codesourcery.com> | |
35291 | ||
35292 | * doc/invoke.texi (Code Gen Options): Move section up in file, | |
35293 | before target-specific options. Update menu and option summary | |
35294 | to reflect the new section ordering. | |
35295 | ||
35296 | 2016-01-13 Jonathan Wakely <jwakely@redhat.com> | |
35297 | ||
35298 | * doc/invoke.texi (C Dialect Options): Adjust -std default for C++. | |
35299 | (C++ Dialect Options): Add cross-reference to -std option. | |
35300 | * doc/standards.texi (C++ Language): Document C++14 support. | |
35301 | ||
35302 | 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com> | |
35303 | ||
35304 | * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support | |
35305 | for pack/unpack functions for __ibm128. | |
35306 | (PACK_IF): Likewise. | |
35307 | (UNPACK_IF): Likewise. | |
35308 | ||
35309 | * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add | |
35310 | support for __ibm128 pack/unpack functions. | |
35311 | (rs6000_invalid_builtin): Likewise. | |
35312 | (rs6000_init_builtins): Likewise. | |
35313 | (rs6000_opt_masks): Likewise. | |
35314 | ||
35315 | * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name. | |
35316 | (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack | |
35317 | functions | |
35318 | (RS6000_BTM_COMMON): Likewise. | |
35319 | ||
35320 | * config/rs6000/rs6000.md (f128_vsx): New mode attribute. | |
35321 | (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to | |
35322 | disallow __builtin_{pack,unpack}_longdouble if long double is IEEE | |
35323 | 128-bit floating point. Add support for the double values to be | |
35324 | in Altivec registers for TF/IF packing and unpacking, but restrict | |
35325 | TD packing sub-fields to be FPR registers. Don't allow overlapped | |
35326 | register support for packing. Allow pack inputs to be memory | |
35327 | locations. Don't build generator functions for unpack<mode>_dm | |
35328 | and unpack<mode>_nodm. | |
35329 | (unpack<mode>_dm): Likewise. | |
35330 | (unpack<mode>_nodm): Likewise. | |
35331 | (pack<mode>): Likewise. | |
35332 | ||
35333 | * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add | |
35334 | built-in functions to pack/unpack explicit __ibm128 values. | |
35335 | (__builtin_unpack_ibm128): Likewise. | |
35336 | ||
35337 | * doc/extend.texi (PowerPC Built-in Functions): Document | |
35338 | __builtin_pack_ibm128 and __builtin_unpack_ibm128. | |
35339 | ||
35340 | 2016-01-13 Bernd Schmidt <bschmidt@redhat.com> | |
35341 | ||
35342 | PR c/66208 | |
35343 | * c-common.c (check_function_nonnull): Remove unnecessary declaration. | |
35344 | Add new arg loc and pass it down as context. | |
35345 | (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer | |
35346 | to the location to use for the warning. | |
35347 | (check_function_arguments): New arg loc. All callers changed. Pass | |
35348 | it to check_function_nonnull. | |
35349 | * c-common.h (check_function_arguments): Adjust declaration. | |
35350 | ||
35351 | 2016-01-13 Jakub Jelinek <jakub@redhat.com> | |
35352 | ||
35353 | PR tree-optimization/69156 | |
35354 | * gimple.c (validate_type): Removed. | |
35355 | (gimple_builtin_call_types_compatible_p): Use | |
35356 | useless_type_conversion_p instead of validate_type. | |
35357 | * value-prof.c (gimple_stringop_fixed_value): Fold | |
35358 | icall_size to correct type. | |
35359 | ||
35360 | 2016-01-13 Jonathan Wakely <jwakely@redhat.com> | |
35361 | ||
35362 | * doc/extend.texi (__atomic Builtins): Clarify compare_exchange | |
35363 | effects. | |
35364 | ||
35365 | 2016-01-13 Richard Henderson <rth@redhat.com> | |
35366 | ||
35367 | PR tree-opt/68964 | |
35368 | * target.def (builtin_tm_load, builtin_tm_store): Remove. | |
35369 | * config/i386/i386.c (ix86_builtin_tm_load): Remove. | |
35370 | (ix86_builtin_tm_store): Remove. | |
35371 | (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove. | |
35372 | (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove. | |
35373 | * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove. | |
35374 | (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove. | |
35375 | * doc/tm.texi: Rebuild. | |
35376 | ||
35377 | * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New. | |
35378 | (BUILT_IN_TM_MEMCPY_RTWN): New. | |
35379 | * trans-mem.c (tm_log_emit_stmt): Rearrange code for better | |
35380 | fallback from vector to integer helpers. | |
35381 | (build_tm_load): Handle vector types directly, instead of | |
35382 | via target hook. | |
35383 | (build_tm_store): Likewise. | |
35384 | (expand_assign_tm): Prepare for register types not handled by | |
35385 | the above. Copy them to memory and use memcpy. | |
35386 | * tree.c (tm_define_builtin): New. | |
35387 | (find_tm_vector_type): New. | |
35388 | (build_tm_vector_builtins): New. | |
35389 | (build_common_builtin_nodes): Call it. | |
35390 | ||
35391 | 2016-01-13 Uros Bizjak <ubizjak@gmail.com> | |
35392 | ||
35393 | * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for | |
35394 | TARGET_SSE_MATH without TARGET_SSE2. Rewrite. | |
35395 | ||
35396 | 2016-01-13 Tom de Vries <tom@codesourcery.com> | |
35397 | ||
35398 | PR tree-optimization/69169 | |
35399 | * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle | |
35400 | handled_struct_type param. | |
35401 | (create_variable_info_for, intra_create_variable_infos): Call | |
35402 | create_variable_info_for_1 with extra arg. | |
35403 | ||
35404 | 2016-01-13 Yvan Roux <yvan.roux@linaro.org> | |
35405 | ||
35406 | * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a" | |
35407 | and "armv8.1-a+crc" entries. | |
35408 | ||
35409 | 2016-01-13 Alexander Fomin <alexander.fomin@intel.com> | |
35410 | ||
35411 | PR target/69228 | |
35412 | * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"): | |
35413 | Change first operand predicate from register_or_constm1_operand | |
35414 | to register_operand. | |
35415 | (define_expand "avx512pf_gatherpf<mode>df"): Likewise. | |
35416 | (define_expand "avx512pf_scatterpf<mode>sf"): Likewise. | |
35417 | (define_expand "avx512pf_scatterpf<mode>df"): Likewise. | |
35418 | (define_insn "*avx512pf_gatherpf<mode>sf"): Remove. | |
35419 | (define_insn "*avx512pf_gatherpf<mode>df"): Likewise. | |
35420 | (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise. | |
35421 | (define_insn "*avx512pf_scatterpf<mode>df"): Likewise. | |
35422 | * config/i386/i386.c (ix86_expand_builtin): Remove first operand | |
35423 | comparison with constm1_rtx from vec_prefetch_gen part. | |
35424 | ||
35425 | 2016-01-13 Richard Biener <rguenther@suse.de> | |
35426 | ||
35427 | PR tree-optimization/69013 | |
35428 | * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): | |
35429 | Exchange assert for a test. | |
35430 | ||
35431 | 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35432 | ||
35433 | PR target/69247 | |
35434 | * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg. | |
35435 | ||
35436 | 2016-01-13 Richard Biener <rguenther@suse.de> | |
35437 | ||
35438 | PR tree-optimization/69242 | |
35439 | * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus | |
35440 | assert with a check. | |
35441 | ||
35442 | 2016-01-13 Richard Biener <rguenther@suse.de> | |
35443 | ||
35444 | PR tree-optimization/69186 | |
35445 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): | |
35446 | Properly guard vect_update_misalignment_for_peel call. | |
35447 | ||
35448 | 2016-01-12 Jeff Law <law@redhat.com> | |
35449 | ||
35450 | PR tree-optimization/pr67755 | |
35451 | * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field | |
35452 | "need_profile_correction". | |
35453 | (thread_block_1): Initialize new field to false by default. If we | |
35454 | have multiple thread paths through a common joiner to different | |
35455 | final targets, then set new field to true. | |
35456 | (compute_path_counts): Only do count adjustment when it's really | |
35457 | needed. | |
35458 | ||
35459 | 2016-01-12 Sandra Loosemore <sandra@codesourcery.com> | |
35460 | ||
35461 | * doc/invoke.texi (Spec Files): Move section down in file, past | |
35462 | all command-line option descriptions. | |
35463 | ||
35464 | 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
35465 | ||
35466 | PR middle-end/54809 | |
35467 | * doc/gty.texi: Remove documentation of mark_hook. | |
35468 | * gengtype.c (struct write_types_data): Remove code to support | |
35469 | mark_hook attribute. | |
35470 | (walk_type): Likewise. | |
35471 | (write_func_for_structure): Likewise. | |
35472 | ||
35473 | 2016-01-12 Sandra Loosemore <sandra@codesourcery.com> | |
35474 | ||
35475 | * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to | |
35476 | Directory Options, and -specs= to Overall Options. | |
35477 | (Overall Options): Adjust similarly. Reorder to group related | |
35478 | options together. Make -specs= cross-reference the spec file details. | |
35479 | (Directory Options): Adjust similarly. | |
35480 | ||
35481 | 2016-01-12 Jeff Law <law@redhat.com> | |
35482 | ||
35483 | * tree-ssa-threadupdate.c: Various whitespace and typo fixes. | |
35484 | ||
35485 | 2016-01-12 Olivier Hainque <hainque@adacore.com> | |
35486 | ||
35487 | * gcc.c (spec_undefvar_allowed): New global. | |
35488 | (process_command): Set to true when running for --version or --help, | |
35489 | alone or together. | |
35490 | (getenv_spec_function): When the variable is not defined, use the | |
35491 | variable name as the variable value if we're allowed not to issue | |
35492 | a fatal error. | |
35493 | ||
35494 | 2016-01-12 Bin Cheng <bin.cheng@arm.com> | |
35495 | ||
35496 | PR tree-optimization/68911 | |
35497 | * tree-vrp.c (adjust_range_with_scev): Check overflow in range | |
35498 | information computed for expression "init + nit * step". | |
35499 | ||
35500 | 2016-01-12 Sandra Loosemore <sandra@codesourcery.com> | |
35501 | ||
35502 | * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information | |
35503 | about name of GCC executable. Remove deleted node from menu. | |
35504 | (Directory Options) <-B>: Remove cross-reference to deleted node. | |
35505 | (Target Options): Delete section. | |
35506 | ||
35507 | 2016-01-12 Christian Bruel <christian.bruel@st.com> | |
35508 | ||
35509 | PR target/69180 | |
35510 | * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL | |
35511 | for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX. | |
35512 | ||
35513 | 2016-01-12 Jakub Jelinek <jakub@redhat.com> | |
35514 | ||
35515 | PR target/69198 | |
35516 | * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure | |
35517 | aligned_mem is properly set for AVX512-VL floating point masked | |
35518 | stores. | |
35519 | ||
35520 | PR target/69175 | |
35521 | * ifcvt.c (cond_exec_process_if_block): When removing the last | |
35522 | insn from then_bb, remove also any possible barriers that follow it. | |
35523 | ||
35524 | 2016-01-12 H.J. Lu <hongjiu.lu@intel.com> | |
35525 | ||
35526 | PR target/68456 | |
35527 | PR target/69226 | |
35528 | * config/i386/iamcu.h (SIZE_TYPE): New macro. | |
35529 | (PTRDIFF_TYPE): Likewise. | |
35530 | (WCHAR_TYPE): Likewise. | |
35531 | (WCHAR_TYPE_SIZE): Likewise. | |
35532 | (STDINT_LONG32): Likewise. | |
35533 | ||
35534 | 2016-01-12 Richard Biener <rguenther@suse.de> | |
35535 | ||
35536 | PR tree-optimization/69053 | |
35537 | * tree-vect-loop.c (get_initial_def_for_reduction): Properly | |
35538 | convert initial value for cond reductions. | |
35539 | ||
35540 | 2016-01-12 Richard Biener <rguenther@suse.de> | |
35541 | ||
35542 | PR tree-optimization/69007 | |
35543 | * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move | |
35544 | widen_sum after dot_prod and sad. | |
35545 | ||
35546 | 2016-01-12 Richard Biener <rguenther@suse.de> | |
35547 | ||
35548 | PR tree-optimization/69168 | |
35549 | * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and | |
35550 | pattern stmt SLP type. | |
35551 | * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may | |
35552 | end up unused so cope with that case. | |
35553 | ||
35554 | 2016-01-12 Richard Biener <rguenther@suse.de> | |
35555 | ||
35556 | PR tree-optimization/69157 | |
35557 | * tree-vect-stmts.c (vectorizable_mask_load_store): Check | |
35558 | stmts def type only during analyze phase. | |
35559 | (vectorizable_call): Likewise. | |
35560 | (vectorizable_simd_clone_call): Likewise. | |
35561 | (vectorizable_conversion): Likewise. | |
35562 | (vectorizable_assignment): Likewise. | |
35563 | (vectorizable_shift): Likewise. | |
35564 | (vectorizable_operation): Likewise. | |
35565 | (vectorizable_store): Likewise. | |
35566 | (vectorizable_load): Likewise. | |
35567 | ||
35568 | 2016-01-12 Richard Biener <rguenther@suse.de> | |
35569 | ||
35570 | PR tree-optimization/69174 | |
35571 | * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical | |
35572 | space. | |
35573 | (vectorizable_load): Properly compute the number of loads needed | |
35574 | for permuted strided SLP loads and do not spuriously assign | |
35575 | to SLP_TREE_VEC_STMTS. | |
35576 | ||
35577 | 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi> | |
35578 | ||
35579 | * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2 | |
35580 | (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive | |
35581 | (MD_EXEC_PREFIX): Remove. | |
35582 | (MD_STARTFILE_PREFIX) Removee. | |
35583 | (FILE_NAME_ABSOLUTE_P): Remove. | |
35584 | (CPP_SPEC): Do not read macros from sys/version.h. | |
35585 | (LINK_COMMAND_SPEC): Remove. | |
35586 | (LOCAL_INCLUDE_DIR): Remove. | |
35587 | (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section | |
35588 | (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix. | |
35589 | (POST_LINK_SPEC): Define to invoke stubify after linker | |
35590 | (LIBSTDCXX): Remove define | |
35591 | (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map. | |
35592 | (DEFAULT_PCC_STRUCT_RETURN): Define to 1. | |
35593 | (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210. | |
35594 | (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message. | |
35595 | (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info. | |
35596 | (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove. | |
35597 | (i386_djgpp_asm_named_section): Add propotype of new procedure | |
35598 | ||
35599 | * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define. | |
35600 | (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h). | |
35601 | (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX | |
35602 | in config/i386/djgpp.h). | |
35603 | (STANDARD_STARTFILE_PREFIX_2): Define identical to | |
35604 | STANDARD_STARTFILE_PREFIX_1. | |
35605 | (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h). | |
35606 | (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal | |
35607 | installation errors. | |
35608 | (MAX_OFILE_ALIGNMENT): Define to 128. | |
35609 | (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h. | |
35610 | ||
35611 | * config/i386/djgpp.c: New file. Add implementation of | |
35612 | i386_djgpp_asm_named_section. | |
35613 | ||
35614 | * config/i386/djgpp.opt: Remove obsolete option -mbnu210. | |
35615 | ||
35616 | * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS. | |
35617 | Add rule for building djgpp.o. | |
35618 | ||
35619 | 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
35620 | ||
35621 | * config/rs6000/rs6000.c (v2df_reduction_p): New function. | |
35622 | (rtx_is_swappable_p): Reductions are swappable. | |
35623 | (insn_is_swappable_p): V2DF reductions are swappable. | |
35624 | ||
35625 | 2016-01-11 John David Anglin <danglin@gcc.gnu.org> | |
35626 | ||
35627 | * config/pa/pa.c (pa_emit_move_sequence): Handle floating point | |
35628 | reloads for other unsupported memory operands. | |
35629 | ||
35630 | 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org> | |
35631 | Jim Wilson <jim.wilson@linaro.org> | |
35632 | ||
35633 | PR target/69194 | |
35634 | * config/arm/arm-builtins.c (arm_expand_neon_args): Call | |
35635 | copy_to_mode_reg instead of force_reg. | |
35636 | ||
35637 | 2016-01-11 H.J. Lu <hongjiu.lu@intel.com> | |
35638 | ||
35639 | PR target/69225 | |
35640 | * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if | |
35641 | TARGET_80387 is true. | |
35642 | ||
35643 | 2016-01-11 Jakub Jelinek <jakub@redhat.com> | |
35644 | ||
35645 | PR target/69071 | |
35646 | * lra-eliminations.c (move_plus_up): Only move plus up | |
35647 | if subreg of the constant can be simplified into constant | |
35648 | and use the simplified subreg of the constant instead of | |
35649 | the original constant. | |
35650 | ||
35651 | * fold-const.c (fold_convertible_p): Don't return true | |
35652 | for conversion of VECTOR_TYPE to same sized integral type. | |
35653 | (fold_convert_loc): Fix up formatting. Fold conversion of | |
35654 | VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR | |
35655 | instead of NOP_EXPR. | |
35656 | ||
35657 | PR tree-optimization/69214 | |
35658 | * tree-vrp.c (simplify_cond_using_ranges): Don't propagate | |
35659 | innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI. | |
35660 | Formatting fix. | |
35661 | ||
35662 | PR tree-optimization/69207 | |
35663 | * tree-vect-slp.c (vect_get_constant_vectors): For | |
35664 | VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of | |
35665 | fold_convertible_p to vector_type's element type, and always | |
35666 | use VCE for non-VECTOR_BOOLEAN_TYPE_P. | |
35667 | ||
35668 | 2016-01-11 Richard Biener <rguenther@suse.de> | |
35669 | ||
35670 | PR tree-optimization/69173 | |
35671 | * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only | |
35672 | fixup the cycle if all stmts are in a pattern. | |
35673 | ||
35674 | 2016-01-11 Uros Bizjak <ubizjak@gmail.com> | |
35675 | ||
35676 | PR middle-end/68999 | |
35677 | * alias.c (base_alias_check): Move check for addresses with | |
35678 | alignment ANDs before the call for compare_base_decls. | |
35679 | (memrefs_conflict_p): Return -1 for different decls | |
35680 | that went through alignment adjustments. | |
35681 | ||
35682 | 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35683 | ||
35684 | PR rtl-optimization/68796 | |
35685 | * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern. | |
35686 | * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode | |
35687 | and QImode comparisons against zero with CC_NZmode. | |
35688 | * config/aarch64/iterators.md (short_mask): New mode_attr. | |
35689 | ||
35690 | 2016-01-11 H.J. Lu <hongjiu.lu@intel.com> | |
35691 | ||
35692 | * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf. | |
35693 | (<avx512>_store<mode>_mask): Likewise. | |
35694 | ||
35695 | 2016-01-11 Bernd Schmidt <bschmidt@redhat.com> | |
35696 | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35697 | ||
35698 | PR rtl-optimization/68841 | |
35699 | * ifcvt.c (struct noce_if_info): Add orig_x field. | |
35700 | (bbs_ok_for_cmove_arith): Add to_rename parameter. | |
35701 | Don't record conflicts on to_rename if it's present. | |
35702 | Allow memory destinations in sets. | |
35703 | (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple | |
35704 | blocks, passing orig_x to the checks. | |
35705 | (noce_process_if_block): Set if_info->orig_x appropriately. | |
35706 | ||
35707 | 2016-01-11 Tom de Vries <tom@codesourcery.com> | |
35708 | ||
35709 | PR tree-optimization/69069 | |
35710 | * tree-parloops.c (create_parallel_loop): Add missing phi args. | |
35711 | ||
35712 | 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com> | |
35713 | ||
35714 | PR rtl-optimization/68920 | |
35715 | * config/i386/i386.c (ix86_option_override_internal): Restrict number | |
35716 | of conditional moves for RTL if-conversion to 1 for | |
35717 | TARGET_ONE_IF_CONV_INSN. | |
35718 | * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros. | |
35719 | * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros. | |
35720 | * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new | |
35721 | parameter to restirct number of conditional moves for | |
35722 | RTL if-conversion. | |
35723 | * doc/invoke.texi (max-rtl-if-conversion-insns): Document it. | |
35724 | * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of | |
35725 | conditionl moves. | |
35726 | ||
35727 | 2016-01-11 Alexandre Oliva <aoliva@redhat.com> | |
35728 | ||
35729 | PR bootstrap/69123 | |
35730 | * var-tracking.c (drop_overlapping_mem_locs): Operate on all | |
35731 | onepart vars. Fix typo in comment. Fix reversed condition in | |
35732 | unshare test. | |
35733 | (dataflow_set_remove_mem_locs): Operate on all onepart vars. | |
35734 | ||
35735 | PR bootstrap/69123 | |
35736 | * var-tracking.c (dump_onepart_variable_differences): New. | |
35737 | (dataflow_set_different): If a detailed dump is requested, | |
35738 | delay early returns and dump differences between onepart | |
35739 | variables present before and after, and added variables. | |
35740 | ||
35741 | 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com> | |
35742 | ||
35743 | PR target/69010 | |
35744 | * expr.c (expand_expr_real_1): For boolean vector constants | |
35745 | with a scalar mode use const_scalar_mask_from_tree. | |
35746 | (const_scalar_mask_from_tree): New. | |
35747 | * optabs.c (expand_vec_cond_mask_expr): Use mask mode | |
35748 | assigned to a mask type to handle constants. | |
35749 | ||
35750 | 2016-01-11 Martin Jambor <mjambor@suse.cz> | |
35751 | ||
35752 | PR ipa/69044 | |
35753 | * ipa-cp.c (estimate_local_effects): Do not clone for removal of | |
35754 | useless parameters if we cannot change function signature. | |
35755 | ||
35756 | 2016-01-11 Martin Jambor <mjambor@suse.cz> | |
35757 | ||
35758 | PR ipa/66616 | |
35759 | * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature | |
35760 | flag. | |
35761 | ||
35762 | 2016-01-11 Tom de Vries <tom@codesourcery.com> | |
35763 | ||
35764 | PR tree-optimization/69109 | |
35765 | * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow | |
35766 | latch with phi. | |
35767 | ||
35768 | 2016-01-11 Tom de Vries <tom@codesourcery.com> | |
35769 | ||
35770 | PR tree-optimization/69108 | |
35771 | * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi | |
35772 | res is not used in a phi. | |
35773 | ||
35774 | 2016-01-11 Yury Gribov <y.gribov@samsung.com> | |
35775 | ||
35776 | PR 67425 | |
35777 | * common.opt (frandom-seed): Fix parameter name. | |
35778 | * doc/invoke.texi (frandom-seed): Ditto and describe parameter. | |
35779 | ||
35780 | 2016-01-11 Tom de Vries <tom@codesourcery.com> | |
35781 | ||
35782 | PR tree-optimization/69058 | |
35783 | * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp | |
35784 | not supported. | |
35785 | ||
35786 | 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com> | |
35787 | ||
35788 | * config/arc/arc.opt (mdiv-rem): Add period to the end. | |
35789 | (mcode-density): Likewise. | |
35790 | ||
35791 | 2016-01-10 Tom de Vries <tom@codesourcery.com> | |
35792 | ||
35793 | PR tree-optimization/69062 | |
35794 | * tree-parloops.c (loop_has_phi_with_address_arg): New function. | |
35795 | (parallelize_loops): Don't paralelize loop that has phi with address | |
35796 | arg. | |
35797 | ||
35798 | 2016-01-10 Tom de Vries <tom@codesourcery.com> | |
35799 | ||
35800 | PR tree-optimization/69039 | |
35801 | * tree-parloops.c (try_create_reduction_list): Only allow single exit | |
35802 | phi for reduction. | |
35803 | ||
35804 | 2016-01-09 John David Anglin <danglin@gcc.gnu.org> | |
35805 | ||
35806 | PR middle-end/68743 | |
35807 | * match.pd: Require target has function_c99_misc before doing | |
35808 | truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc. | |
35809 | ||
35810 | 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com> | |
35811 | ||
35812 | * configure.ac (isl_options_set_schedule_serialize_sccs): Also | |
35813 | use GMPINC. | |
35814 | * configure: Regenerate. | |
35815 | ||
35816 | 2016-01-09 Jakub Jelinek <jakub@redhat.com> | |
35817 | ||
35818 | PR middle-end/50865 | |
35819 | PR tree-optimization/69097 | |
35820 | * fold-const.h (expr_not_equal_to): New prototype. | |
35821 | * fold-const.c: Include stringpool.h and tree-ssanames.h. | |
35822 | (expr_not_equal_to): New function. | |
35823 | * match.pd (X % -Y is the same as X % Y): Don't optimize | |
35824 | unless X is known not to be equal to minimum or Y is known | |
35825 | not to be equal to -1. | |
35826 | * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument. | |
35827 | fold TRUNC_MOD_EXPR if the second argument is not a power of two. | |
35828 | (simplify_stmt_using_ranges): Adjust caller. | |
35829 | (vrp_finalize): Call set_value_range on SSA_NAMEs before calling | |
35830 | substitute_and_fold. | |
35831 | ||
35832 | 2016-01-09 Jan Hubicka <hubicka@ucw.cz> | |
35833 | ||
35834 | * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL | |
35835 | w/o DECL_NAME. | |
35836 | ||
35837 | 2016-01-08 Jakub Jelinek <jakub@redhat.com> | |
35838 | ||
35839 | PR tree-optimization/69167 | |
35840 | * gimple-fold.c (replace_stmt_with_simplification): Also punt if | |
35841 | new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of | |
35842 | ops[0] comparison. | |
35843 | * gimple-match-head.c (maybe_push_res_to_seq): Likewise. | |
35844 | ||
35845 | 2016-01-08 Alan Lawrence <alan.lawrence@arm.com> | |
35846 | Richard Biener <rguenther@suse.de> | |
35847 | ||
35848 | PR tree-optimization/68707 | |
35849 | * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP | |
35850 | instances that can be handled via vect_load_lanes. | |
35851 | ||
35852 | 2016-01-08 Uros Bizjak <ubizjak@gmail.com> | |
35853 | ||
35854 | * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2 | |
35855 | if we can't determine address equivalence. | |
35856 | * alias.c (compare_base_decl): Update for changed return value of | |
35857 | symtab_node::equal_address_to. | |
35858 | ||
35859 | 2016-01-08 Jason Merrill <jason@redhat.com> | |
35860 | ||
35861 | PR c++/68983 | |
35862 | PR c++/67557 | |
35863 | * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here. | |
35864 | * expr.c (store_field): Not here. | |
35865 | * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a | |
35866 | call with TREE_ADDRESSABLE type. | |
35867 | * tree-cfg.c (verify_gimple_call): Adjust. | |
35868 | ||
35869 | 2016-01-08 Olivier Hainque <hainque@adacore.com> | |
35870 | ||
35871 | * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with | |
35872 | libc_internal. | |
35873 | ||
35874 | 2016-01-08 Alan Lawrence <alan.lawrence@arm.com> | |
35875 | ||
35876 | * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to... | |
35877 | (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element. | |
35878 | (reduc_smin_v2sf): Rename to... | |
35879 | (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element. | |
35880 | (reduc_splus_v2sf): Rename to... | |
35881 | (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element. | |
35882 | ||
35883 | 2016-01-08 Jakub Jelinek <jakub@redhat.com> | |
35884 | ||
35885 | PR tree-optimization/69162 | |
35886 | * gimplify.c (gimplify_va_arg_expr): Encode original type of | |
35887 | valist argument in another argument. | |
35888 | (gimplify_modify_expr): Adjust for the above change. Cleanup. | |
35889 | * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument | |
35890 | to determine the va_list type, build a MEM_REF instead of | |
35891 | build_fold_indirect_ref. | |
35892 | ||
35893 | PR tree-optimization/69172 | |
35894 | * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to | |
35895 | gimple_build. | |
35896 | ||
35897 | 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
35898 | ||
35899 | PR tree-optimization/67781 | |
35900 | * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg | |
35901 | and cmpnop in two steps: first the ones not accessed in original | |
35902 | gimple expression in a endian independent way and then the ones not | |
35903 | accessed in the final result in an endian-specific way. | |
35904 | ||
35905 | 2016-01-08 Jakub Jelinek <jakub@redhat.com> | |
35906 | ||
35907 | PR tree-optimization/69083 | |
35908 | * tree-vect-slp.c (vect_get_constant_vectors): For | |
35909 | VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's | |
35910 | element type. If op is fold_convertible_p to vector_type's element | |
35911 | type, use NOP_EXPR instead of VCE. | |
35912 | ||
35913 | 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org> | |
35914 | ||
35915 | PR rtl-optimization/67778 | |
35916 | PR rtl-optimization/68634 | |
35917 | PR rtl-optimization/68909 | |
35918 | * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop | |
35919 | block from the stack until done with it. Remove a superfluous | |
35920 | bitmap set. Remove a superfluous bitmap test. | |
35921 | ||
35922 | 2016-01-07 Martin Sebor <msebor@redhat.com> | |
35923 | ||
35924 | PR c/68966 | |
35925 | * doc/extend.texi (__atomic Builtins, __sync Builtins): Document | |
35926 | constraint on the type of arguments. | |
35927 | ||
35928 | 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org> | |
35929 | ||
35930 | * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to | |
35931 | SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check | |
35932 | unaligned_access on the gcc_options set. | |
35933 | * config/arm/arm.c (arm_option_override_internal): Use | |
35934 | SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. | |
35935 | ||
35936 | 2016-01-07 Uros Bizjak <ubizjak@gmail.com> | |
35937 | ||
35938 | PR target/69140 | |
35939 | * config/i386/i386.c (ix86_frame_pointer_required): Enable | |
35940 | frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned. | |
35941 | ||
35942 | 2016-01-07 Uros Bizjak <ubizjak@gmail.com> | |
35943 | ||
35944 | Revert | |
35945 | 2016-01-06 Uros Bizjak <ubizjak@gmail.com> | |
35946 | ||
35947 | PR target/69140 | |
35948 | * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid | |
35949 | depending on frame_pointer_needed before remaining integer and SSE | |
35950 | registers are saved. | |
35951 | ||
35952 | 2016-01-07 Sandra Loosemore <sandra@codesourcery.com> | |
35953 | ||
35954 | PR 1078 | |
35955 | * doc/extend.texi (Nvidia PDX Function Attributes): New section. | |
35956 | ||
35957 | 2016-01-07 H.J. Lu <hongjiu.lu@intel.com> | |
35958 | ||
35959 | PR target/69171 | |
35960 | * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>): | |
35961 | Use the "xBm" constraint. | |
35962 | (float<sseintvecmodelower><mode>2<mask_name><round_name): | |
35963 | Likewise. | |
35964 | (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate. | |
35965 | (sse_cvtsi2ssq<round_name>): Likewise. | |
35966 | (sse_cvtss2si<round_name>): Likewise. | |
35967 | (sse_cvtss2siq<round_name>): Likewise. | |
35968 | (sse2_cvtsi2sdq<round_name>): Likewise. | |
35969 | (sse2_cvtsd2si<round_name>): Likewise. | |
35970 | (sse2_cvtsd2siq<round_name>): Likewise. | |
35971 | * config/i386/subst.md (round_nimm_scalar_predicate): New | |
35972 | predicate. | |
35973 | ||
35974 | 2015-12-15 Bernd Schmidt <bschmidt@redhat.com> | |
35975 | ||
35976 | PR middle-end/67639 | |
35977 | * varasm.c (make_decl_rtl): Mark invalid register vars as | |
35978 | DECL_EXTERNAL. | |
35979 | ||
35980 | PR rtl-optimization/66206 | |
35981 | * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx. | |
35982 | All callers changed. | |
35983 | ||
35984 | 2016-01-07 Jakub Jelinek <jakub@redhat.com> | |
35985 | ||
35986 | PR tree-optimization/69141 | |
35987 | * tree-ssa-pre.c: Include langhooks.h. | |
35988 | (eliminate_dom_walker::before_dom_children): Use | |
35989 | lang_hooks.decl_printable_name instead of | |
35990 | cgraph_node::get ()->name (). | |
35991 | ||
35992 | PR middle-end/68960 | |
35993 | * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy | |
35994 | it and DECL_ALIGN too. | |
35995 | ||
35996 | 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com> | |
35997 | ||
35998 | * config/mips/mips-ftypes.def: Sort to lexicographical order. | |
35999 | ||
36000 | 2016-01-06 Uros Bizjak <ubizjak@gmail.com> | |
36001 | ||
36002 | PR target/69140 | |
36003 | * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid | |
36004 | depending on frame_pointer_needed before remaining integer and SSE | |
36005 | registers are saved. | |
36006 | ||
36007 | 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
36008 | ||
36009 | * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M | |
36010 | mode iterator with VSX_M2. | |
36011 | (*p9_vecstore_<mode>): Likewise. | |
36012 | (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR. | |
36013 | (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise. | |
36014 | (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise. | |
36015 | (define_split for VSX_LE128 stores): Likewise. | |
36016 | (define_peephole2 for TImode LE swaps): Likewise. | |
36017 | (define_split for VSX_LE128 post-reload stores): Likewise. | |
36018 | ||
36019 | 2016-01-06 Marek Polacek <polacek@redhat.com> | |
36020 | ||
36021 | PR sanitizer/69099 | |
36022 | * convert.c (convert_to_integer_1): Adjust call to | |
36023 | ubsan_instrument_float_cast. Use NULL_TREE instead of NULL. | |
36024 | * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use | |
36025 | EXPR instead of ARG. | |
36026 | * ubsan.h (ubsan_instrument_float_cast): Adjust declaration. | |
36027 | ||
36028 | 2016-01-05 Sandra Loosemore <sandra@codesourcery.com> | |
36029 | ||
36030 | PR 1078 | |
36031 | * doc/extend.texi (RL78 Variable Attributes): New section. | |
36032 | ||
36033 | 2016-01-05 Marek Polacek <polacek@redhat.com> | |
36034 | ||
36035 | PR c/69104 | |
36036 | * builtins.c (get_memmodel): Use expansion point location rather than | |
36037 | the input location. Call warning_at rather than warning. | |
36038 | (expand_builtin_atomic_compare_exchange): Likewise. | |
36039 | (expand_builtin_atomic_load): Likewise. | |
36040 | (expand_builtin_atomic_store): Likewise. | |
36041 | (expand_builtin_atomic_clear): Likewise. | |
36042 | ||
36043 | 2016-01-05 H.J. Lu <hongjiu.lu@intel.com> | |
36044 | ||
36045 | PR target/68991 | |
36046 | * config/i386/i386.c (ix86_expand_vector_logical_operator): | |
36047 | Replace nonimmediate_operand with vector_operand. | |
36048 | * config/i386/predicates.md (vector_operand): New predicate. | |
36049 | (general_vector_operand): Replace nonimmediate_operand with | |
36050 | vector_operand. | |
36051 | * config/i386/sse.md: Replace nonimmediate_operand with | |
36052 | vector_operand and m constraint with Bm constraint on SSE | |
36053 | patterns with 16-byte memory operand. | |
36054 | * config/i386/subst.md (round_nimm_predicate): Replace | |
36055 | nonimmediate_operand with vector_operand. | |
36056 | (round_saeonly_nimm_predicate): Likewise. | |
36057 | (round_saeonly_nimm_scalar_predicate): New. | |
36058 | ||
36059 | 2016-01-05 H.J. Lu <hongjiu.lu@intel.com> | |
36060 | ||
36061 | PR target/68991 | |
36062 | * config/i386/constraints.md (Bm): New constraint. | |
36063 | * config/i386/predicates.md (vector_memory_operand): New | |
36064 | predicate. | |
36065 | * config/i386/sse.md: Replace xm with xBm in plusminus and | |
36066 | any_logic patterns. | |
36067 | ||
36068 | 2016-01-05 Sandra Loosemore <sandra@codesourcery.com> | |
36069 | ||
36070 | PR 1078 | |
36071 | * doc/extend.texi (V850 Function Attributes): New section. | |
36072 | (V850 Variable Attributes): New section. | |
36073 | ||
36074 | 2016-01-05 Sandra Loosemore <sandra@codesourcery.com> | |
36075 | ||
36076 | PR 1078 | |
36077 | * doc/extend.texi (MicroBlaze Function Attributes): Document | |
36078 | interrupt_handler and fast_interrupt attributes. | |
36079 | ||
36080 | 2016-01-05 Sergei Trofimovich <siarheit@google.com> | |
36081 | ||
36082 | PR other/60465 | |
36083 | * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64 | |
36084 | for local symbolic operands. | |
36085 | * config/ia64/predicates.md (local_symbolic_operand64): New | |
36086 | predicate. | |
36087 | ||
36088 | 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
36089 | ||
36090 | PR rtl-optimization/68651 | |
36091 | * combine.c (combine_simplify_rtx): Canonicalize x + x into | |
36092 | x << 1. | |
36093 | ||
36094 | 2016-01-05 Nathan Sidwell <nathan@acm.org> | |
36095 | ||
36096 | * alias.c (compare_base_decls): Use symtab_node::get. | |
36097 | ||
36098 | 2016-01-05 Nick Clifton <nickc@redhat.com> | |
36099 | ||
36100 | PR target/68770 | |
36101 | * ira-costs.c (copy_cost): Initialise the t_icode field of the | |
36102 | secondary_reload_info structure. | |
36103 | ||
36104 | PR target/66655 | |
36105 | * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak | |
36106 | decls if weak support is available. | |
36107 | ||
36108 | 2016-01-04 Martin Sebor <msebor@redhat.com> | |
36109 | ||
36110 | * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model. | |
36111 | ||
36112 | 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com> | |
36113 | ||
36114 | * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add | |
36115 | OPTION_MASK_P9_DFORM. | |
36116 | ||
36117 | * config/rs6000/constraints.md (wo constraint): New constraint for | |
36118 | ISA 3.0 (power9). | |
36119 | ||
36120 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support | |
36121 | for wo constraint. | |
36122 | (rs6000_init_hard_regno_mode_ok): Likewise. | |
36123 | ||
36124 | * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for | |
36125 | wo constraint. | |
36126 | ||
36127 | * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm | |
36128 | expanders not to have constraints. Add support for ISA 3.0 xxperm | |
36129 | instruction. Add support for fusing xxlor with xxperm. | |
36130 | (altivec_vperm_<mode>_internal): Likewise. | |
36131 | (altivec_vperm_v8hiv16qi): Likewise. | |
36132 | (altivec_vperm_<mode>v16q): Likewise. | |
36133 | (altivec_vperm_<mode>_uns): Likewise. | |
36134 | (vperm_v8hiv4si): Likewise. | |
36135 | (vperm_v16qiv8hi): Likewise. | |
36136 | ||
36137 | * doc/md.texi (RS/6000 constraints): Document wo constraint. | |
36138 | ||
36139 | 2016-01-04 Jakub Jelinek <jakub@redhat.com> | |
36140 | ||
36141 | Update copyright years. | |
36142 | ||
36143 | * gcc.c (process_command): Update copyright notice dates. | |
36144 | * gcov-dump.c (print_version): Ditto. | |
36145 | * gcov.c (print_version): Ditto. | |
36146 | * gcov-tool.c (print_version): Ditto. | |
36147 | * gengtype.c (create_file): Ditto. | |
36148 | * doc/cpp.texi: Bump @copying's copyright year. | |
36149 | * doc/cppinternals.texi: Ditto. | |
36150 | * doc/gcc.texi: Ditto. | |
36151 | * doc/gccint.texi: Ditto. | |
36152 | * doc/gcov.texi: Ditto. | |
36153 | * doc/install.texi: Ditto. | |
36154 | * doc/invoke.texi: Ditto. | |
36155 | ||
36156 | 2016-01-04 Eric Botcazou <ebotcazou@adacore.com> | |
36157 | ||
36158 | * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer | |
36159 | modes larger than TImode as TImode if NEON is not enabled. | |
36160 | ||
36161 | 2016-01-04 Eric Botcazou <ebotcazou@adacore.com> | |
36162 | ||
36163 | PR target/69100 | |
36164 | * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit | |
36165 | mode for %f0-%f31 only if TARGET_FPU. | |
36166 | ||
36167 | 2016-01-04 Eric Botcazou <ebotcazou@adacore.com> | |
36168 | ||
36169 | PR target/69072 | |
36170 | * config/sparc/sparc.c (scan_record_type): Take into account subfields | |
36171 | to compute the PACKED_P predicate. | |
36172 | (function_arg_record_value): Minor tweaks. | |
36173 | ||
36174 | 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
36175 | ||
36176 | * doc/install.texi (--with-multilib-list): Describe the meaning of the | |
36177 | option for arm*-*-* targets. | |
36178 | ||
36179 | 2016-01-03 Sandra Loosemore <sandra@codesourcery.com> | |
36180 | ||
36181 | * doc/extend.texi (Common Function Attributes): Move docs for | |
36182 | MSP430-specific attributes to.... | |
36183 | (MSP430 Function Attributes): ...here. Delete the redundant | |
36184 | entries and copy-edit the remaining text. | |
36185 | (MSP430 Variable Attributes): Use uniform format for index | |
36186 | entries and add a cross-reference to the corresponding function | |
36187 | attribute docs. | |
36188 | ||
36189 | 2016-01-03 Vladimír Čunát <vcunat@gmail.com> | |
36190 | ||
36191 | * doc/invoke.texi (RS/6000 and PowerPC Options): Fix | |
36192 | -finite-math typo. | |
36193 | (x86 Options): Likewise. | |
36194 | ||
36195 | 2016-01-01 Sandra Loosemore <sandra@codesourcery.com> | |
36196 | ||
36197 | PR 1078 | |
36198 | ||
36199 | * extend.texi (Common Function Attributes) <no_stack_limit>: New. | |
36200 | * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer | |
36201 | to corresponding attribute. | |
36202 | ||
36203 | 2016-01-01 Sandra Loosemore <sandra@codesourcery.com> | |
36204 | ||
36205 | * doc/extend.texi (Common Function Attributes) <noplt>: Move | |
36206 | to correct alphabetization of table. Copy-edit and correct | |
36207 | markup. | |
36208 | <stack_protect>: Likewise. | |
36209 | <target_clones>: Likewise. | |
36210 | <simd>: Likewise. | |
36211 | * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>: | |
36212 | Correct punctuation. | |
36213 | (Code Gen Options) <-fno-plt>: Copy-edit. | |
36214 | ||
36215 | 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
36216 | ||
36217 | PR target/68917 | |
36218 | * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of | |
36219 | SI values. Explicitly convert SI to DI and vice-versa. | |
36220 | ||
36221 | 2016-01-01 Jakub Jelinek <jakub@redhat.com> | |
36222 | ||
36223 | PR tree-optimization/69070 | |
36224 | * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test | |
36225 | REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST. | |
36226 | ||
36227 | PR sanitizer/69055 | |
36228 | * ubsan.c (ubsan_instrument_float_cast): Call | |
36229 | initialize_sanitizer_builtins. | |
36230 | ||
36231 | PR target/69015 | |
36232 | * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump). | |
36233 | \f | |
36234 | Copyright (C) 2016 Free Software Foundation, Inc. | |
36235 | ||
36236 | Copying and distribution of this file, with or without modification, | |
36237 | are permitted in any medium without royalty provided the copyright | |
36238 | notice and this notice are preserved. |